Erisvaldo Gadelha Saraiva JúniorFaculdade de Tecnologia de João Pessoa (FATEC-JP)Especialização em Desenvolvimento para Di...
Roteiro da Aula   TESTES         APLICAÇÕES                  WEB APPS                  MULTIMÍDIA            Testes, Aplic...
TESTES         Testes em Android
Estrutura de Testes                    A suíte de testes em Android é baseada no JUnit. Android provê                    e...
MonkeyRunner                    Ferramenta que provê uma API para Python que permite ao                    desenvolvedor e...
Exemplo de Programa em MonkeyRunner                    Código que conecta-se a um dispositivo, instala uma aplicação      ...
UI/Application Exerciser Monkey                    Programa que executa no emulador ou dispositivo e gera                 ...
Testes em Android com o ADT                    O projeto de testes deve ser criado pelo ADT.                          O   ...
Criando um projeto de TestesTestes em Android
Criando a classe do Caso de TesteTestes em Android
Exemplo de Classe de Teste                    • Construtor – Obrigatório. Requerido pelo Android Test                    F...
Exemplo de Classe de Teste                                          Construtor                                   Inicializ...
Executando o TesteTestes em Android
Testando uma Activity                                           Como testar?                    • ActivityInstrumentationT...
Testando um Content Provider                                         Como testar?                    • ProviderTestCase2 –...
Testando um Service                                          Como testar?                    • ServiceTestCase – Sua class...
Aplicações Multimídia          Aúdio, Vídeo e Câmera em Android
Core Media FormatsFormatos de Mídia Suportados   Formatos de mídia suportados por todos os dispositivos Android.
Reprodução e Gravação de Áudio e VídeoÁudio e Vídeo em Android                                Reprodução              Grav...
Reproduzindo Áudio de um Raw Resource                      Insere-se o arquivo na pasta res/raw, sendo possível localizá-l...
Reproduzindo Áudio de um Arquivo ou Stream                      Através do método setDataSource() do MediaPlayer, define-s...
Reproduzindo Áudio de um conteúdo JET                      JET é uma engine musical para criar reproduções de áudio       ...
Reproduzindo Áudio de um conteúdo JET                      Usa-se a ferramenta JetCreator (parte do Android SDK) para cria...
Reproduzindo Áudio de um conteúdo JET                      O Android SDK possui o exemplo JetBoy, um jogo que utiliza a   ...
Captura de Áudio em 10 passos                         Passo Descrição                         1.    Criar uma instância de...
Captura de Áudio em CódigoGravação de Áudio
MusicDroid – Parte I                Selecionar uma música no cartão de memória e executá-la.Exercício
MusicDroid – Parte II                    Executar a música em background (como serviço)Exercício
MusicDroid – Parte III                  Adicionar controles básicos para a música em execuçãoExercício
Component VideoViewReprodução de Vídeo
Câmera DemoCaptura de Vídeo                         FrameLayout
Web AppsTendência para combater a fragmentação do mundo mobile
Dois caminhosVisão Geral de Web Apps   Aplicação que roda no lado cliente vs Aplicação Web.                               ...
Dois caminhos                          No Android uma aplicação Web pode rodar dentro de uma                          apli...
Usando metadados para a ViewportDiferentes telas e Web Apps   A Viewport é a área na qual a página Web é desenhada.       ...
Usando metadados para a ViewportDiferentes telas e Web Apps
Usando metadados para a ViewportDiferentes telas e Web Apps
CSS de acordo com a resolução do dispositivoDiferentes telas e Web Apps
JavaScript de acordo com a resolução do dispositivoDiferentes telas e Web Apps
android.webkit.WebView                      Extensão de View que permite mostrar páginas Web como                      par...
JavaScript em uma WebView                      Caso a página que esteja sendo carregada na WebView tenha                  ...
Lidando com navegação de páginas                      Quando o usuário clica em um link no WebView, o                     ...
Histórico de Páginas                      Quando sobrescreve-se o método shouldOverrideUrlLoading()                      d...
Console log                     Visualizado no Browser e no LogCat é mostrado com a tag                     “browser”.Depu...
Console APIs em um WebView                     A partir do Android 2.2 (API Level 8), implementa-se um                    ...
As melhores práticas ao desenvolver Web AppsMelhores práticas (Web Apps)                               • Redirecionar disp...
What’s Your Message?OBRIGADO!
Upcoming SlideShare
Loading in …5
×

Android Aula 4

7,123
-1

Published on

Aula 4 de Android para a disciplina Tecnologias para Dispositivos Móveis da FATEC (João Pessoa - PB)

0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,123
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
471
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Android Aula 4

  1. 1. Erisvaldo Gadelha Saraiva JúniorFaculdade de Tecnologia de João Pessoa (FATEC-JP)Especialização em Desenvolvimento para Dispositivos MóveisDisciplina: Tecnologias para Dispositivos MóveisAndroid (Parte 4) E-mail: erisvaldojunior@gmail.com Site: http://erisvaldojunior.com Twitter: @erisvaldojunior
  2. 2. Roteiro da Aula TESTES APLICAÇÕES WEB APPS MULTIMÍDIA Testes, Aplicações Multimídia e Web Apps em Android
  3. 3. TESTES Testes em Android
  4. 4. Estrutura de Testes A suíte de testes em Android é baseada no JUnit. Android provê extensões do JUnit para testes de componentes específicos.Testes em Android
  5. 5. MonkeyRunner Ferramenta que provê uma API para Python que permite ao desenvolvedor escrever programas que controlam dispositivos Android ou emuladores externamente. • Controle de Múltiplos Dispositivos – Executar um ou maisTestes em Android testes em múltiplos dispositivos ou emuladores simultaneamente; • Testes Funcionais – O desenvolvedor provê entradas (teclado, touch, etc) e visualiza saídas por screenshots; • Testes de Regressão – verifica se uma aplicação está correta comparando com screenshots de referência; • Automação Extensível – Pode ser estendido para criar sistemas completos de controle de dispositivos Android.
  6. 6. Exemplo de Programa em MonkeyRunner Código que conecta-se a um dispositivo, instala uma aplicação Android, executa uma Activity, envia eventos de teclado para a mesma e armazena o retorno (screenshots).Testes em Android
  7. 7. UI/Application Exerciser Monkey Programa que executa no emulador ou dispositivo e gera entradas de usuário aleatórias (cliques, toques, gestos), além de eventos aleatórios de sistema. Ideal para Teste de Stress.Testes em Android SINTAXE EXEMPLO BÁSICO DE USO
  8. 8. Testes em Android com o ADT O projeto de testes deve ser criado pelo ADT. O InstrumentationTestRunner é o executor dos casos de teste. • Ao criar um projeto de testes pelo ADT, o plugin vincula a suíte deTestes em Android testes ao aplicativo de origem, inserindo automaticamente as informações necessários no arquivo de manifesto; • É possível importar as classes que estão sob teste rapidamente, permitindo sua inspeção; • Executa seus testes sem sair do Eclipse. O ADT roda sua aplicação e sua suíte de testes automaticamente, mostrando os resultados em telas separadas do Eclipse.
  9. 9. Criando um projeto de TestesTestes em Android
  10. 10. Criando a classe do Caso de TesteTestes em Android
  11. 11. Exemplo de Classe de Teste • Construtor – Obrigatório. Requerido pelo Android Test Framework; • setUp() – sobrescreve o setUp() do Junit. Inicializa oTestes em Android ambiente antes da execução dos testes; • testPreconditions() – define um pequeno teste que assegura que a aplicação iniciou corretamente; • testText() – Exemplo de teste unitário real para interfaces. Assegura que o que está sendo mostrado na tela é o mesmo que está contido nos recursos da aplicação (strings.xml).
  12. 12. Exemplo de Classe de Teste Construtor Inicialização de variáveisTestes em Android Pré-condições Código de teste
  13. 13. Executando o TesteTestes em Android
  14. 14. Testando uma Activity Como testar? • ActivityInstrumentationTestCase2 – Sua classe de testes de uma Activity deve estender essa classe; • ActivityUnitTestCase – Testa uma Activity isolada. UsadoTestes em Android para realizar testes unitários que não interagem com o Android (testes isolados). O que testar? • Validar entradas – verificar entradas aceitáveis em EditText e mensagens de erro mostradas para entradas inválidas; • Eventos de Ciclo de vida – retorno de eventos como onCreate() e onCick(); • Tamanhos de tela e resoluções – usar AVDs e realizar vários deploys para verificar o layout das Activities.
  15. 15. Testando um Content Provider Como testar? • ProviderTestCase2 – Sua classe de testes de um ContentProvider deve estender essa classe; • MockContentResolver – possibilita a criação de umaTestes em Android instância do provedor de conteúdo mas com dados de teste. O que testar? • Interações comuns do provedor de conteúdo – onCreate(), getType(), query(), insert(), delete() e update(); • URIs e Constantes – Testar todas as URIs e constantes oferecidas pelo provider.
  16. 16. Testando um Service Como testar? • ServiceTestCase – Sua classe de testes de um Service deve estender essa classe.Testes em Android O que testar? • Múltiplas chamadas a startService() – Testar se o serviço consegue ligar com múltiplas chamadas a startService(). Apenas a primeira invoca o onCreate(), mas todas chamam o onStartCommand(). • Parada do serviço – Testar se o serviço para de executar no momento correto.
  17. 17. Aplicações Multimídia Aúdio, Vídeo e Câmera em Android
  18. 18. Core Media FormatsFormatos de Mídia Suportados Formatos de mídia suportados por todos os dispositivos Android.
  19. 19. Reprodução e Gravação de Áudio e VídeoÁudio e Vídeo em Android Reprodução Gravação MediaPlayer MediaRecorder
  20. 20. Reproduzindo Áudio de um Raw Resource Insere-se o arquivo na pasta res/raw, sendo possível localizá-lo com a classe R gerada pelo Android. Iniciar a execuçãoReprodução de Áudio MediaPlayer mp = MediaPlayer.create(context, R.raw.nome_arquivo); mp.start(); Pausar e recomeçar Parar e recomeçar mp.pause(); mp.stop(); mp.start(); mp.reset(); mp.prepare(); mp.start();
  21. 21. Reproduzindo Áudio de um Arquivo ou Stream Através do método setDataSource() do MediaPlayer, define-se o caminho do arquivo (local) ou URL (web).Reprodução de Áudio Iniciar a execução MediaPlayer mp = new MediaPlayer(); mp.setDataSource(CAMINHO_ARQUIVO); mp.prepare(); mp.start();
  22. 22. Reproduzindo Áudio de um conteúdo JET JET é uma engine musical para criar reproduções de áudio interativas.Reprodução de Áudio Iniciar a execução JetPlayer myJet = JetPlayer.getJetPlayer(); byte segmentId = 0; myJet.loadJetFile(CAMINHO_ARQUIVO); // ex: “/sdcard/level1.jet” myJet.queueJetSegment(5, -1, 1, -1, 0, segmentId); myJet.play();
  23. 23. Reproduzindo Áudio de um conteúdo JET Usa-se a ferramenta JetCreator (parte do Android SDK) para criar reproduções de áudio interativas.Reprodução de Áudio
  24. 24. Reproduzindo Áudio de um conteúdo JET O Android SDK possui o exemplo JetBoy, um jogo que utiliza a engine JET para produzir sua trilha sonora e eventos.Reprodução de Áudio Trecho de código do JetBoy
  25. 25. Captura de Áudio em 10 passos Passo Descrição 1. Criar uma instância de MediaRecorder 2. Criar uma instância de ContentValues e colocar algumas propriedades padrão como TITLE, TIMESTAMPGravação de Áudio e MIME_TYPE 3. Usar ContentResolver para definir caminho do arquivo no qual os dados serão armazenados 4. Definir AudioSource 5. Definir OutputFormat 6. Definir AudioEncoder 7. Chamar o prepare() da instância do MediaRecorder 8. Iniciar a captura de áudio com start() 9. Finalizar a captura de áudio com stop() 10. Liberar a instância do MediaRecorder com release()
  26. 26. Captura de Áudio em CódigoGravação de Áudio
  27. 27. MusicDroid – Parte I Selecionar uma música no cartão de memória e executá-la.Exercício
  28. 28. MusicDroid – Parte II Executar a música em background (como serviço)Exercício
  29. 29. MusicDroid – Parte III Adicionar controles básicos para a música em execuçãoExercício
  30. 30. Component VideoViewReprodução de Vídeo
  31. 31. Câmera DemoCaptura de Vídeo FrameLayout
  32. 32. Web AppsTendência para combater a fragmentação do mundo mobile
  33. 33. Dois caminhosVisão Geral de Web Apps Aplicação que roda no lado cliente vs Aplicação Web. Basicamente, a diferença seria: Lado cliente Aplicação Web Android SDK Android Browser Instalar .apk no Sem instalação dispositivo
  34. 34. Dois caminhos No Android uma aplicação Web pode rodar dentro de uma aplicacão cliente.Visão Geral de Web Apps
  35. 35. Usando metadados para a ViewportDiferentes telas e Web Apps A Viewport é a área na qual a página Web é desenhada. Exemplo de configuração da viewport na Web App
  36. 36. Usando metadados para a ViewportDiferentes telas e Web Apps
  37. 37. Usando metadados para a ViewportDiferentes telas e Web Apps
  38. 38. CSS de acordo com a resolução do dispositivoDiferentes telas e Web Apps
  39. 39. JavaScript de acordo com a resolução do dispositivoDiferentes telas e Web Apps
  40. 40. android.webkit.WebView Extensão de View que permite mostrar páginas Web como parte do layout de uma Activity.Web Apps em WebView Adicionando uma WebView na sua aplicação main.xml MyActivity.java
  41. 41. JavaScript em uma WebView Caso a página que esteja sendo carregada na WebView tenha código JavaScript, o recurso precisa estar habilitado.Web Apps em WebView Associando código JavaScript a código Android
  42. 42. Lidando com navegação de páginas Quando o usuário clica em um link no WebView, o comportamento padrão é abrir o browser e acessá-lo.Web Apps em WebView Implementar shouldOverrideUrlLoading() de WebViewClient Criar uma instância de um novo WebViewClient
  43. 43. Histórico de Páginas Quando sobrescreve-se o método shouldOverrideUrlLoading() do WebView, automaticamente acumula-se um histórico de páginas visitadas.Web Apps em WebView Navega-se nesse histórico através dos métodos goBack() e goForward() do WebView. Verificar se o usuári o pressionou a tecla BACK para acessar a página anterior do histórico dentro do WebView da aplicação.
  44. 44. Console log Visualizado no Browser e no LogCat é mostrado com a tag “browser”.Depurando Web Apps
  45. 45. Console APIs em um WebView A partir do Android 2.2 (API Level 8), implementa-se um WebChromeClient e substitui-se o método onConsoleMessage() .Depurando Web Apps Dessa forma, apresenta-se o Log da maneira que desejar quanto às aplicações Web.
  46. 46. As melhores práticas ao desenvolver Web AppsMelhores práticas (Web Apps) • Redirecionar dispositivos móveis para uma versão dedicada de seu site – Obter “User Agent” do usuário que acessa e fornecê-lo a melhor experiência; • Usar DOCTYPE apropriado para dispositivos móveis; • Usar metadados de Viewport para redimensionar a página adequadamente; • Evitar mútliplas requisições de arquivos; • Usar layout vertical e linear.
  47. 47. What’s Your Message?OBRIGADO!
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×