SlideShare a Scribd company logo
1 of 47
Download to read offline
Erisvaldo Gadelha Saraiva Júnior


Faculdade de Tecnologia de João Pessoa (FATEC-JP)
Especialização em Desenvolvimento para Dispositivos Móveis
Disciplina: Tecnologias para Dispositivos Móveis

Android (Parte 4)
                                  E-mail: erisvaldojunior@gmail.com
                                     Site: http://erisvaldojunior.com
                                           Twitter: @erisvaldojunior
Roteiro da Aula


   TESTES         APLICAÇÕES                  WEB APPS
                  MULTIMÍDIA




            Testes, Aplicações Multimídia e Web Apps em Android
TESTES



         Testes em Android
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
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 mais
Testes 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.
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
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
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 de
Testes 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.
Criando um projeto de Testes
Testes em Android
Criando a classe do Caso de Teste
Testes em Android
Exemplo de Classe de Teste


                    • Construtor – Obrigatório. Requerido pelo Android Test
                    Framework;

                    • setUp() – sobrescreve o setUp() do Junit. Inicializa o
Testes 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).
Exemplo de Classe de Teste
                                          Construtor




                                   Inicialização de variáveis
Testes em Android




                                        Pré-condições




                                       Código de teste
Executando o Teste
Testes em Android
Testando uma Activity
                                           Como testar?
                    • ActivityInstrumentationTestCase2 – Sua classe de testes de
                    uma Activity deve estender essa classe;

                    • ActivityUnitTestCase – Testa uma Activity isolada. Usado
Testes 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.
Testando um Content Provider
                                         Como testar?
                    • ProviderTestCase2 – Sua classe de testes de um
                    ContentProvider deve estender essa classe;

                    • MockContentResolver – possibilita a criação de uma
Testes 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.
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.
Aplicações Multimídia



          Aúdio, Vídeo e Câmera em Android
Core Media Formats
Formatos 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              Gravação

                              MediaPlayer           MediaRecorder
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ção
Reproduçã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();
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();
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();
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
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
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, TIMESTAMP
Gravaçã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()
Captura de Áudio em Código
Gravaçã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ção
Exercício
Component VideoView
Reprodução de Vídeo
Câmera Demo
Captura de Vídeo




                         FrameLayout
Web Apps



Tendência para combater a fragmentação do mundo mobile
Dois caminhos
Visã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
Dois caminhos
                          No Android uma aplicação Web pode rodar dentro de uma
                          aplicacão cliente.
Visão Geral de Web Apps
Usando metadados para a Viewport
Diferentes telas e Web Apps   A Viewport é a área na qual a página Web é desenhada.




                                       Exemplo de configuração da viewport na Web App
Usando metadados para a Viewport
Diferentes telas e Web Apps
Usando metadados para a Viewport
Diferentes telas e Web Apps
CSS de acordo com a resolução do dispositivo
Diferentes telas e Web Apps
JavaScript de acordo com a resolução do dispositivo
Diferentes telas e Web Apps
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
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
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
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.
Console log
                     Visualizado no Browser e no LogCat é mostrado com a tag
                     “browser”.
Depurando Web Apps
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.
As melhores práticas ao desenvolver Web Apps
Melhores 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.
What’s Your Message?
OBRIGADO!

More Related Content

What's hot

Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2Jose Berardo
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidSidney Roberto
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - BásicoHugoDalevedove
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldMarcio Palheta
 
Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Horacio Diamante Mondlane
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Tchelinux
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de AndroidEdgar Eler
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Matheus Calegaro
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Afonso Machado
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Jose Berardo
 
Como montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento AndroidComo montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento AndroidWsdevs Desenvolvedores
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidRodolfo Faquin Della Justina
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneHenrique Perticarati
 
Tutorial de Instalação Eclipse + Android SDK
Tutorial de Instalação Eclipse + Android SDKTutorial de Instalação Eclipse + Android SDK
Tutorial de Instalação Eclipse + Android SDKRonildo Oliveira
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidRafael Sakurai
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para AndroidClaudio Pereira
 
Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Rudson Lima
 
Introdução ao android e plataforma android
Introdução ao android e plataforma androidIntrodução ao android e plataforma android
Introdução ao android e plataforma androidJuarez Junior
 

What's hot (20)

Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2
 
Tutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para AndroidTutorial - Como criar sua primeira app para Android
Tutorial - Como criar sua primeira app para Android
 
Programação Android - Básico
Programação Android - BásicoProgramação Android - Básico
Programação Android - Básico
 
Capítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorldCapítulo 01 - Fundamentos de Android e o HelloWorld
Capítulo 01 - Fundamentos de Android e o HelloWorld
 
Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03Apostila passo a passo como programar em android edição03
Apostila passo a passo como programar em android edição03
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
Desenvolvendo aplicações em Java para o Google Android - Ranieri de Souza Fer...
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de Android
 
Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2Introdução ao desenvolvimento de apps para Android - Dia 2/2
Introdução ao desenvolvimento de apps para Android - Dia 2/2
 
Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1Introdução ao android - siecomp 2015.1
Introdução ao android - siecomp 2015.1
 
Plataforma Android
Plataforma AndroidPlataforma Android
Plataforma Android
 
Curso de Google Android - Aula 1
Curso de Google Android - Aula 1Curso de Google Android - Aula 1
Curso de Google Android - Aula 1
 
Como montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento AndroidComo montar o ambiente de desenvolvimento Android
Como montar o ambiente de desenvolvimento Android
 
Da introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento AndroidDa introdução à prática no desenvolvimento Android
Da introdução à prática no desenvolvimento Android
 
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhoneEntenda porque seu aplicativo de Android não deve ser igual ao de iPhone
Entenda porque seu aplicativo de Android não deve ser igual ao de iPhone
 
Tutorial de Instalação Eclipse + Android SDK
Tutorial de Instalação Eclipse + Android SDKTutorial de Instalação Eclipse + Android SDK
Tutorial de Instalação Eclipse + Android SDK
 
SESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao AndroidSESTINFO 2011 Apresentacao Android
SESTINFO 2011 Apresentacao Android
 
Desenvolvendo para Android
Desenvolvendo para AndroidDesenvolvendo para Android
Desenvolvendo para Android
 
Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?
 
Introdução ao android e plataforma android
Introdução ao android e plataforma androidIntrodução ao android e plataforma android
Introdução ao android e plataforma android
 

Viewers also liked

Iniciando no mundo mobile - Programando para android
Iniciando no mundo mobile - Programando para androidIniciando no mundo mobile - Programando para android
Iniciando no mundo mobile - Programando para androidDiemesleno Souza Carvalho
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Erisvaldo Junior
 
Seminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidSeminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidWilliam Higino
 
Tutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
Tutorial para Desenvolvimento Mobile usando HTML CSS e JavascriptTutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
Tutorial para Desenvolvimento Mobile usando HTML CSS e JavascriptWillys Campos
 
Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)
Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)
Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)Anderson Sa
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - IntroduçãoJoao Johanes
 
Android - Frameworks de Persistência
Android - Frameworks de PersistênciaAndroid - Frameworks de Persistência
Android - Frameworks de PersistênciaÉdipo Souza
 
Persistencia de dados em aplicações Android
Persistencia de dados em aplicações AndroidPersistencia de dados em aplicações Android
Persistencia de dados em aplicações AndroidAntonio Marin Neto
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...Adriel Café
 
Desenvolvimento móvel com Google Android
Desenvolvimento móvel com Google AndroidDesenvolvimento móvel com Google Android
Desenvolvimento móvel com Google AndroidCaelum
 
Mecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidMecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidJavier Muñoz
 
Aula05 - Android - Persistência
Aula05 - Android - PersistênciaAula05 - Android - Persistência
Aula05 - Android - PersistênciaArthur Emanuel
 
Google Android - WTJatai
Google Android - WTJataiGoogle Android - WTJatai
Google Android - WTJataiCaelum
 
Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Fabio Spanhol
 
Um exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumniUm exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumniLuis Borges Gouveia
 
Acessando Banco de Dados com o Android
Acessando Banco de Dados com o AndroidAcessando Banco de Dados com o Android
Acessando Banco de Dados com o AndroidFernando Anselmo
 

Viewers also liked (20)

Iniciando no mundo mobile - Programando para android
Iniciando no mundo mobile - Programando para androidIniciando no mundo mobile - Programando para android
Iniciando no mundo mobile - Programando para android
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1
 
Android Aula 1
Android Aula 1Android Aula 1
Android Aula 1
 
Seminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para AndroidSeminário SD - Ambiente de Desenvolvimento para Android
Seminário SD - Ambiente de Desenvolvimento para Android
 
Tutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
Tutorial para Desenvolvimento Mobile usando HTML CSS e JavascriptTutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
Tutorial para Desenvolvimento Mobile usando HTML CSS e Javascript
 
Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)
Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)
Introdução ao Desenvolvimento de APP’s para Windows 8(C#,XAML)
 
2 Informix Introduction
2 Informix Introduction2 Informix Introduction
2 Informix Introduction
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - Introdução
 
Android - Frameworks de Persistência
Android - Frameworks de PersistênciaAndroid - Frameworks de Persistência
Android - Frameworks de Persistência
 
Persistencia de dados em aplicações Android
Persistencia de dados em aplicações AndroidPersistencia de dados em aplicações Android
Persistencia de dados em aplicações Android
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
 
Desenvolvimento móvel com Google Android
Desenvolvimento móvel com Google AndroidDesenvolvimento móvel com Google Android
Desenvolvimento móvel com Google Android
 
Mecanismos de Persistencia en Android
Mecanismos de Persistencia en AndroidMecanismos de Persistencia en Android
Mecanismos de Persistencia en Android
 
Aula05 - Android - Persistência
Aula05 - Android - PersistênciaAula05 - Android - Persistência
Aula05 - Android - Persistência
 
Google Android - WTJatai
Google Android - WTJataiGoogle Android - WTJatai
Google Android - WTJatai
 
Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010Gestão de Projetos com MS-Project 2010
Gestão de Projetos com MS-Project 2010
 
Um exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumniUm exemplo do uso do SQLite: uma base de dados para alumni
Um exemplo do uso do SQLite: uma base de dados para alumni
 
Linguagem c
Linguagem cLinguagem c
Linguagem c
 
Boas Práticas em Android
Boas Práticas em AndroidBoas Práticas em Android
Boas Práticas em Android
 
Acessando Banco de Dados com o Android
Acessando Banco de Dados com o AndroidAcessando Banco de Dados com o Android
Acessando Banco de Dados com o Android
 

Similar to Testes, Aplicações Multimídia e Web Apps em Android

[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...GUTS-RS
 
Talk testes em flutter
Talk testes em flutterTalk testes em flutter
Talk testes em flutterJhonatas Matos
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitRobinson Castilho
 
Teste para dispositivos móveis apresentação pra ufam -eliane
Teste para dispositivos móveis   apresentação pra ufam -elianeTeste para dispositivos móveis   apresentação pra ufam -eliane
Teste para dispositivos móveis apresentação pra ufam -elianeEliane Collins
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de TestesUFPA
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e SeleniumAndré Thiago
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junitcejug
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoSandy Maciel
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de UnidadeAline Ferreira
 
Como testar sua aplicação Android com Robotium
Como testar sua aplicação Android com RobotiumComo testar sua aplicação Android com Robotium
Como testar sua aplicação Android com RobotiumThayse Severiano
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de SeleniumAutotic
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMAdriano Bertucci
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasWordCamp Floripa
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de softwareRondinelli Mesquita
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxRoberto Nunes
 

Similar to Testes, Aplicações Multimídia e Web Apps em Android (20)

[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
[GUTS-RS] Workshop (prático) de Testes Automatizados para dispositivos móveis...
 
Talk testes em flutter
Talk testes em flutterTalk testes em flutter
Talk testes em flutter
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnit
 
Teste para dispositivos móveis apresentação pra ufam -eliane
Teste para dispositivos móveis   apresentação pra ufam -elianeTeste para dispositivos móveis   apresentação pra ufam -eliane
Teste para dispositivos móveis apresentação pra ufam -eliane
 
TDD com Python (Completo)
TDD com Python (Completo)TDD com Python (Completo)
TDD com Python (Completo)
 
Engenharia de Testes
Engenharia de TestesEngenharia de Testes
Engenharia de Testes
 
Testes com TestLink e Selenium
Testes com TestLink e SeleniumTestes com TestLink e Selenium
Testes com TestLink e Selenium
 
J unit xp
J unit xpJ unit xp
J unit xp
 
Testes de Unidade com Junit
Testes de Unidade com JunitTestes de Unidade com Junit
Testes de Unidade com Junit
 
Noções em teste de software e introdução a automação
Noções em teste de software e introdução a automaçãoNoções em teste de software e introdução a automação
Noções em teste de software e introdução a automação
 
Apresentacao Testes de Unidade
Apresentacao Testes de UnidadeApresentacao Testes de Unidade
Apresentacao Testes de Unidade
 
Como testar sua aplicação Android com Robotium
Como testar sua aplicação Android com RobotiumComo testar sua aplicação Android com Robotium
Como testar sua aplicação Android com Robotium
 
Curso Básico de Selenium
Curso Básico de SeleniumCurso Básico de Selenium
Curso Básico de Selenium
 
Robotium_Sikuli
Robotium_SikuliRobotium_Sikuli
Robotium_Sikuli
 
Qualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALMQualidade de software com Visual Studio ALM
Qualidade de software com Visual Studio ALM
 
Testes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio NasTestes automatizados end-to-end com WordPress por Fabio Nas
Testes automatizados end-to-end com WordPress por Fabio Nas
 
Validação e Testes de software
Validação e Testes de softwareValidação e Testes de software
Validação e Testes de software
 
Python com TDD
Python com TDDPython com TDD
Python com TDD
 
JUnit Sample
JUnit SampleJUnit Sample
JUnit Sample
 
Gerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptxGerenciamento da Qualidade de Software 4.pptx
Gerenciamento da Qualidade de Software 4.pptx
 

More from Erisvaldo Junior

Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Erisvaldo Junior
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Erisvaldo Junior
 
Desenvolvimento de apps e games para android parte 8
Desenvolvimento de apps e games para android   parte 8Desenvolvimento de apps e games para android   parte 8
Desenvolvimento de apps e games para android parte 8Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Erisvaldo Junior
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Erisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementarErisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management systemErisvaldo Junior
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection frameworkErisvaldo Junior
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java meErisvaldo Junior
 
Introdução a game api do java me
Introdução a game api do java meIntrodução a game api do java me
Introdução a game api do java meErisvaldo Junior
 

More from Erisvaldo Junior (20)

A Era da Mobilidade
A Era da MobilidadeA Era da Mobilidade
A Era da Mobilidade
 
Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2
 
Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1Desenvolvimento de Apps e Games para iOS - Parte 1
Desenvolvimento de Apps e Games para iOS - Parte 1
 
Desenvolvimento de apps e games para android parte 8
Desenvolvimento de apps e games para android   parte 8Desenvolvimento de apps e games para android   parte 8
Desenvolvimento de apps e games para android parte 8
 
Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7Desenvolvimento de Apps e Games para Android - Parte 7
Desenvolvimento de Apps e Games para Android - Parte 7
 
Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6Desenvolvimento de Apps e Games para Android - Parte 6
Desenvolvimento de Apps e Games para Android - Parte 6
 
Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5Desenvolvimento de Apps e Games para Android - Parte 5
Desenvolvimento de Apps e Games para Android - Parte 5
 
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
Desenvolvimento de Apps e Games para Android - Partes 6 e 7 (Preview)
 
Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4Desenvolvimento de Apps e Games para Android - Parte 4
Desenvolvimento de Apps e Games para Android - Parte 4
 
Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3Desenvolvimento de Apps e Games para Android - Parte 3
Desenvolvimento de Apps e Games para Android - Parte 3
 
Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2Desenvolvimento de Apps e Games para Android - Parte 2
Desenvolvimento de Apps e Games para Android - Parte 2
 
Nokia SDK for Java
Nokia SDK for JavaNokia SDK for Java
Nokia SDK for Java
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection framework
 
Introdução a api de baixo nível do java me
Introdução a api de baixo nível do java meIntrodução a api de baixo nível do java me
Introdução a api de baixo nível do java me
 
Introdução a game api do java me
Introdução a game api do java meIntrodução a game api do java me
Introdução a game api do java me
 
O futuro do Android
O futuro do AndroidO futuro do Android
O futuro do Android
 

Testes, Aplicações Multimídia e Web Apps em Android

  • 1. Erisvaldo Gadelha Saraiva Júnior Faculdade de Tecnologia de João Pessoa (FATEC-JP) Especialização em Desenvolvimento para Dispositivos Móveis Disciplina: Tecnologias para Dispositivos Móveis Android (Parte 4) E-mail: erisvaldojunior@gmail.com Site: http://erisvaldojunior.com Twitter: @erisvaldojunior
  • 2. Roteiro da Aula TESTES APLICAÇÕES WEB APPS MULTIMÍDIA Testes, Aplicações Multimídia e Web Apps em Android
  • 3. TESTES Testes em Android
  • 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. 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 mais Testes 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. 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. 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. 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 de Testes 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. Criando um projeto de Testes Testes em Android
  • 10. Criando a classe do Caso de Teste Testes em Android
  • 11. Exemplo de Classe de Teste • Construtor – Obrigatório. Requerido pelo Android Test Framework; • setUp() – sobrescreve o setUp() do Junit. Inicializa o Testes 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. Exemplo de Classe de Teste Construtor Inicialização de variáveis Testes em Android Pré-condições Código de teste
  • 14. Testando uma Activity Como testar? • ActivityInstrumentationTestCase2 – Sua classe de testes de uma Activity deve estender essa classe; • ActivityUnitTestCase – Testa uma Activity isolada. Usado Testes 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. Testando um Content Provider Como testar? • ProviderTestCase2 – Sua classe de testes de um ContentProvider deve estender essa classe; • MockContentResolver – possibilita a criação de uma Testes 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. 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. Aplicações Multimídia Aúdio, Vídeo e Câmera em Android
  • 18. Core Media Formats Formatos de Mídia Suportados Formatos de mídia suportados por todos os dispositivos Android.
  • 19. Reprodução e Gravação de Áudio e Vídeo Áudio e Vídeo em Android Reprodução Gravação MediaPlayer MediaRecorder
  • 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ção Reproduçã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. 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. 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. 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. 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. 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, TIMESTAMP Gravaçã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. Captura de Áudio em Código Gravação de Áudio
  • 27. MusicDroid – Parte I Selecionar uma música no cartão de memória e executá-la. Exercício
  • 28. MusicDroid – Parte II Executar a música em background (como serviço) Exercício
  • 29. MusicDroid – Parte III Adicionar controles básicos para a música em execução Exercício
  • 31. Câmera Demo Captura de Vídeo FrameLayout
  • 32. Web Apps Tendência para combater a fragmentação do mundo mobile
  • 33. Dois caminhos Visã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. Dois caminhos No Android uma aplicação Web pode rodar dentro de uma aplicacão cliente. Visão Geral de Web Apps
  • 35. Usando metadados para a Viewport Diferentes 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. Usando metadados para a Viewport Diferentes telas e Web Apps
  • 37. Usando metadados para a Viewport Diferentes telas e Web Apps
  • 38. CSS de acordo com a resolução do dispositivo Diferentes telas e Web Apps
  • 39. JavaScript de acordo com a resolução do dispositivo Diferentes telas e Web Apps
  • 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. 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. 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. 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. Console log Visualizado no Browser e no LogCat é mostrado com a tag “browser”. Depurando Web Apps
  • 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. As melhores práticas ao desenvolver Web Apps Melhores 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.