SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
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 3)
                               E-mail: erisvaldojunior@gmail.com
                                  Site: http://erisvaldojunior.com
                                        Twitter: @erisvaldojunior
Roteiro da Aula


 TÉCNICAS E   LOG, LOCALES E             LOCALIZAÇÃO
 EXEMPLOS       WIDGETS                    E MAPAS




                Recursos e Técnicas importantes para Android
TÉCNICAS E EXEMPLOS



   Diversas Técnicas e Exemplos de Código em Android
Como criar uma Splash Screen
                Basta ter uma Activity declarada na categoria LAUNCHER no
                AndroidManifest.xml que, após 3 segundos, invoca outra.
                                     SplashScreen.java
Splash Screen




                                    AndroidManifest.xml
Exemplo Clássico de Splash Screen
                Imagem no meio da tela
Splash Screen




                                         splash.xml
Activity em Tela Cheia (Full Screen)
                           Invocar o método abaixo no onCreate() da Activity ou, opcionalmente, definir
                           um android:theme de FullScreen no AndroidManifest.xml
Tela Cheia (Full Screen)


                                   Modo 1 – Chamar setFullScreen() no onCreate() da Activity




                           Modo 2 – Definir android:theme na tag <activity> do AndroidManifest.xml
org.xml.sax.helpers.DefaultHandler
                 Cria-se uma classe que herda de Default Handler e
                 implementa-se os métodos startElement(), characters() e
                 endElement().
Leitura de XML
Objetos Intent
                 São compostos por Component Name, Action, Data e Category.
Objetos Intent
Invocando aplicações Google   Intents invocando aplicações Google
Log, Locales e Widgets



     Log, Internacionalização e Widgets em Android
android.util.Log
                      Ferramenta de Log do Android. Permite imprimir logs de até
                      cinco tipos:
Trabalhando com Log
LogCat
                      Permite a visualização do Log. Disponível na perspectiva de
                      Debug do ADT Plugin no Eclipse.
Trabalhando com Log
Adaptando a aplicação para diferentes linguagens
                      O primeiro passo é planejar como a aplicação deve aparecer
                      (textos e imagens) em diferentes regiões e línguas. Nesse
                      planejamento, estabelece-se também um comportamento/local
                      padrão.
Internacionalização
Organizando os recursos
                      O segundo passo é mapear, para cada linguagem/país suportado,
                      o caminho do arquivo strings.xml que irá conter os textos naquela
                      linguagem bem como a pasta de imagens específica para a
                      linguagem desejada.
Internacionalização




                        Dica: pode-se criar, por exemplo, res/drawable-de/ para englobar
                        todos os aparelhos com a língua definida como Alemão,
                        independente da sua localização.
Criando o strings.xml para cada linguagem
                      Cria-se um novo “Android XML File” a partir do plugin ADT no
                      Eclipse. No assistente, defin-se o nome do arquivo como
                      strings.xml e seleciona-se a configuração “Language” com um
                      qualificador de duas letras indicando a linguagem desejada. Isso
Internacionalização



                      fará com que o assistente crie o arquivo na pasta correta.
Internacionalização   Criando o strings.xml para cada linguagem
Internacionalização   Testando a aplicação no emulador
App Widgets

              São aplicações em miniatura que podem ser embutidas em
              outras aplicações (como a Home) e receber atualizações
              periódicas. São referenciadas como Widgets na interface do
              usuário.
App Widgets




              Para criar um App Widget, necessita-se do seguinte:

              • AppWidgetProviderInfo – objeto que descreve os metadados do
              Widget, como o layout, frequência de atualização e a classe
              AppWidgetProvider. É definido em XML;
              • AppWidgetProvider – Define os métodos básicos que permitem a
              programação do Widget. Baseado em eventos de Broadcast. Recebe-
              se mensagens de broadcast quando o App Widget é ativado,
              atualizado, desativado e removido.
App Widgets
              Além disso, é preciso definir o View Layout, correspondente ao
              layout inicial do App Widget, em XML.




              Adicionalmente, pode-se implementar uma Activity de configuração
App Widgets




              do App Widget. Trata-se de um Activity opcional que é aberto
              quando o usuário adiciona o Widget e permite que o usuário
              modifique as configurações do mesmo em tempo de criação.
Declarando-se um App Widget
              Primeiramente, declara-se a classe que herda de
              AppWidgetProvider no AndroidManifest.xml, conforme
              mostrado abaixo.
App Widgets




              • <receiver> – elemento que especifica o AppWidgetProvider usado
              pelo App Widget, através do atributo android:name;
              • <intent-filter> - inclui uma <action> que especifica que o
              AppWidgetProvider aceita o broadcast APPWIDGET_UPDATE;
              • <meta-data> - especifica o AppWidgetProviderInfo e é definido
              pelos atributos android:name e android:resource.
Declarando o AppWidgetProviderInfo
              Define as características de um App Widget, como dimensões
              mínimas, XML do Layout, frequência de atualização e,
              opcionalmente, uma Activity de configuração para ser
              instanciada quando da criação do App Widget.
App Widgets




              • minWidth e minHeight especificam a área mínima requerida pelo
              layout do App Widget.;
              • updatePeriodMillis é o tempo de chamada do método onUpdate()
              do AppWidgetProvider. Deve ser longo para que não prejudique o
              consumo de bateria;
              • initialLayout aponta para o arquivo de layout do Widget;
              • configure especifica a Activity de configuração que deve ser iniciada
              quando o usuário adiciona o Widget. É opcional.
Criando o layout de um App Widget
              Layouts de App Widgets são baseados em RemoteViews. Estes
              não suportam todos os tipos de layout e views. Um objeto
              RemoteView (e, consequentemente, um App Widget) só
              suporta os seguintes layouts e views:
App Widgets
Criando o layout de um App Widget
              Layouts de App Widgets são baseados em RemoteViews. Estes
              não suportam todos os tipos de layout e views. Um objeto
              RemoteView (e, consequentemente, um App Widget) só
              suporta os seguintes layouts e views:
App Widgets
Usando a classe AppWidgetProvider
              A classe AppWidgetProvider herda de BroadcastReceiver pois
              se trata de uma especialização para tratar os broadcasts para
              App Widgets. Quando um evento de broadcast para o App
              Widget ocorre, um dos seguintes métodos é invocado:

              • onUpdate() – chamado para atualizar o App Widget em intervalos
              definidos por updatePeriodMillis no AppWidgetProviderInfo.
              Também é chamado quando o usuário adiciona o Widget, exceto
App Widgets




              quando foi definido um Activity de configuração;
              • onDeleted() – Chamado quando o Widget é removido do seu
              aplicativo hospedeiro;
              • onEnabled() – chamado quando uma instância do App Widget é
              criada pela primeira vez;
              • onDisabled() – chamado quando a última instância do App Widget
              é excluída do hospedeiro;
              • onReceive() – padrão de Broadcast Receivers. Geralmente não há
              necessidade de implementar pois os métodos acima são
              automaticamente invocados pelo AppWidgetProvider.
Exemplo de AppWidgetProvider
              App Widget com um botão que inicia uma Activity quando é
              clicado.
App Widgets
Criando uma Activity de configuração
              Para permitir que o usuário realize configurações ao adicionar
              um App Widget, cria-se um Activity de configuração. Essa
              Activity é automaticamente chamada em tempo de criação do
              App Widget.

                  Declarando o Activity de Configuração no AndroidManifest.xml
App Widgets




                 Declarando o Activity de Configuração no AppWidgetProviderInfo
Atualizando o App Widget a partir do Activity de
              Configuração
              Após realizar a configuração, o Activity tem a responsabilidade
              de atualizar o App Widget, conforme os passos abaixo.
              1. Pega o ID do App Widget a partir do Intent que iniciou a Activity
App Widgets




              2. Realiza as configurações necessárias

              3. Ao completar a configuração, atualiza o App Widget.




              4. Cria-se o Intent de retorno com o resultado da Activity e finaliza a Activity.
Localização e Mapas



     Integrando a sua aplicação com o Google Maps
android.location.LocationManager
                      Android provê acesso aos serviços de localização suportados
                      pelo dispositivo através do pacote android.locator, que provê
                      APIs para determinar a localização do dispositivo.
Localização e Mapas



                      Usa-se o método getSystemService() para obter uma instância de
                      LocationManager. A partir desta, a aplicação pode fazer três coisas:

                      • Consultar a lista de todos os LocationProviders para saber qual foi a
                      última localicação do usuário;
                      • Registro/desregistro de atualizações periódicas da localização do
                      usuário a partir de um provedor de local (especificado pelo critério
                      ou nome);
                      • Registro/desregistro de um dado Intent para ser lançado se o
                      dispositivo estiver a uma certa proximidade de um dado destino.
Biblioteca externa do Google Maps
                      Através do pacote com.google.android.maps (parte do add-on
                      Google APIs para Android SDK) é possível baixar e renderizar
                      mapas do Google, com uma variedade de opções e controles.
Localização e Mapas



                      A classe chave do pacote é com.google.android.maps.MapView, que
                      é uma subclasse de ViewGroup. Um MapView mostra o mapa com os
                      dados obtidos diretamente do serviço Google Maps.

                      • Quando o MapView está com foco, os toques e teclas são
                      capturados para mover e efetuar zoom no mapa automaticamente,
                      incluindo requisições de rede para obtenção de novas áreas do
                      mapa;
                      • O MapView provê todos os elementos de interface necessários
                      para controlar o mapa;
                      • A aplicação também pode usar a classe MapView para desenhar
                      diversos marcadores sobre o mapa.
Requisitando atualização de localização
                      Através   do    método   requestLocationUpdates()    de
                      LocationManager, passando um LocationListener como
                      parâmetro que deve implementar diversos métodos que são
                      invocados quando há mudança de localização ou status do
Localização e Mapas


                      serviço.


                      Os parâmetros de requestLocationUpdates() estão explicitados a
                      seguir:

                      • O primeiro parâmetro é o tipo de provedor de localização a ser
                      usado, GPS_PROVIDER ou NETWORK_PROVIDER;
                      • O segundo parâmetro é o tempo mínimo para notificar
                      atualizações;
                      • O terceiro parâmetro é a distância mínima para notificar
                      atualizações;
                      • Por fim, o quarto e último parâmetro é o LocationListener que
                      recebe as chamadas callback de notificação das atualizações.
Requisitando atualização de localização
                      Exemplo de como implementar um LocationListener e utilizá-lo
                      com o método requestLocationUpdates() de LocationManager.
                      Nesse exemplo, usa-se o Android Network Location Provider e
                      não há tempo ou distância mínima para notificação (as
Localização e Mapas


                      notificações serão tão frequentes quanto possível).
Requisitando permissões ao usuário
                      Para que se possa receber as notificações de localização, seja
                      através de NETWORK_PROVIDER ou GPS_PROVIDER, é
                      necessário que essa permissão seja requisitada ao usuário,
                      declarando-se       ACCESS_COARSE_LOCATION            (apenas
Localização e Mapas


                      NETWORK_PROVIDER) ou ACCESS_FINE_LOCATION (ambos os
                      provedores, rede e GPS) no AndroidManifest.xml.
Tutoriais e aplicações a serem desenvolvidas
                           Há diversos tutoriais que podem complementar os estudos
                           iniciais de desenvolvimento e aplicações em Android.
Para estudos posteriores

                           • Notepad Tutorial – Aplicação de bloco de notas que
                           originou a aplicação NotePad de exemplo do Android
                           SDK. Explica o desenvolvimento passo a passo -
                           http://developer.android.com/resources/tutorials/notepa
                           d/index.html;

                           • Hello Testing e Activity Testing – Testes em Android -
                           http://developer.android.com/resources/tutorials;

                           • MusicDroid - Audio Player - Tutorial de como
                           programar um player de música passo a passo -
                           http://www.helloandroid.com/tutorials/musicdroid-audio-player-
                           part-i.
Links

              • developer.android.com  –     Portal   oficial    de
              desenvolvimento para Android. SDK, Guia            de
              Desenvolvimento, Documentação completa;

              • helloandroid.com    –    Notícias,    Tutoriais   de
              Desenvolvimento, Aplicações, Dispositivos e mais sobre
              Android;
Referências




              • androidsnippets.org – Trechos de código abordando
              diversos recursos do Android;

              • code.google.com/p/krvarma-android-samples     -
              Diversas aplicações de exemplo (com código-fonte)
              englobando câmera, GPS, gestos, Text to Speech,
              detecção de face e etc.
What’s Your Message?
OBRIGADO!

Weitere ähnliche Inhalte

Was ist angesagt?

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
Horacio 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
 

Was ist angesagt? (20)

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
 
Curso de Android - aula 2
Curso de Android - aula 2Curso de Android - aula 2
Curso de Android - aula 2
 
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
 
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
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
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
 
Minicurso de Android
Minicurso de AndroidMinicurso de Android
Minicurso de Android
 
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...
 
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
 
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
 
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
 
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
 
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
 

Andere mochten auch

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
Erisvaldo Junior
 
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
 
Introduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.RIntroduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.R
Renato
 
Android Palestra
Android PalestraAndroid Palestra
Android Palestra
Renato
 

Andere mochten auch (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)
 
Sqlite - Introdução
Sqlite - IntroduçãoSqlite - Introdução
Sqlite - Introdução
 
2 Informix Introduction
2 Informix Introduction2 Informix Introduction
2 Informix Introduction
 
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
 
Android - Frameworks de Persistência
Android - Frameworks de PersistênciaAndroid - Frameworks de Persistência
Android - Frameworks de Persistência
 
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...
 
Aula 05/06 (Service)
Aula 05/06 (Service)Aula 05/06 (Service)
Aula 05/06 (Service)
 
Introduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.RIntroduction Android - C.E.S.A.R
Introduction Android - C.E.S.A.R
 
Aula 22/05 (Handler)
Aula 22/05 (Handler)Aula 22/05 (Handler)
Aula 22/05 (Handler)
 
Android Palestra
Android PalestraAndroid Palestra
Android Palestra
 
Aula 5 - 24/04 (Landscape / Portrait)
Aula 5 - 24/04 (Landscape / Portrait)Aula 5 - 24/04 (Landscape / Portrait)
Aula 5 - 24/04 (Landscape / Portrait)
 
Aula 10 04 (intents)
Aula 10 04 (intents)Aula 10 04 (intents)
Aula 10 04 (intents)
 
Aula 17 04 (Exercícios e ScrollView)
Aula 17 04 (Exercícios e ScrollView)Aula 17 04 (Exercícios e ScrollView)
Aula 17 04 (Exercícios e ScrollView)
 
Aula 10 04 (Gerenciadores de layouts)
Aula 10 04 (Gerenciadores de layouts)Aula 10 04 (Gerenciadores de layouts)
Aula 10 04 (Gerenciadores de layouts)
 
Aula 12/06 (SQLite)
Aula 12/06 (SQLite)Aula 12/06 (SQLite)
Aula 12/06 (SQLite)
 

Ähnlich wie Android Aula 3

Seminário sd android_exemplos
Seminário sd android_exemplosSeminário sd android_exemplos
Seminário sd android_exemplos
Calvin Rodrigues
 
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
Erisvaldo 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 2
Erisvaldo Junior
 
Appinventor 120429141244-phpapp02
Appinventor 120429141244-phpapp02Appinventor 120429141244-phpapp02
Appinventor 120429141244-phpapp02
Cesar Luis Teixeira
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
Denis L Presciliano
 

Ähnlich wie Android Aula 3 (20)

Apostilaandroidfatecnormal
ApostilaandroidfatecnormalApostilaandroidfatecnormal
Apostilaandroidfatecnormal
 
Widgets por eric andrade dos santos
Widgets por eric andrade dos santosWidgets por eric andrade dos santos
Widgets por eric andrade dos santos
 
Seminário sd android_exemplos
Seminário sd android_exemplosSeminário sd android_exemplos
Seminário sd android_exemplos
 
Android - Notas de aula
Android - Notas de aulaAndroid - Notas de aula
Android - Notas de aula
 
Aula01 - introdução, Activity
Aula01 - introdução,  ActivityAula01 - introdução,  Activity
Aula01 - introdução, Activity
 
Introdução a Plataforma Android
Introdução a Plataforma AndroidIntrodução a Plataforma Android
Introdução a Plataforma Android
 
Android Core Aula 6 - Desenvolvimento de aplicações Android
Android Core Aula 6 -  Desenvolvimento de aplicações AndroidAndroid Core Aula 6 -  Desenvolvimento de aplicações Android
Android Core Aula 6 - Desenvolvimento de aplicações Android
 
App Inventor
App InventorApp Inventor
App Inventor
 
App inventor
App inventorApp inventor
App inventor
 
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
 
Android app communication
Android app communicationAndroid app communication
Android app communication
 
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
 
Appinventor 120429141244-phpapp02
Appinventor 120429141244-phpapp02Appinventor 120429141244-phpapp02
Appinventor 120429141244-phpapp02
 
Computação Móvel 2012.2 - Android
Computação Móvel 2012.2 - AndroidComputação Móvel 2012.2 - Android
Computação Móvel 2012.2 - Android
 
Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)Introdução ao Android (minicurso 4h)
Introdução ao Android (minicurso 4h)
 
Android exemplo-calculadora
Android exemplo-calculadoraAndroid exemplo-calculadora
Android exemplo-calculadora
 
Aula02 android hands_on
Aula02 android hands_onAula02 android hands_on
Aula02 android hands_on
 
2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android2017 08-11 - Androidos V - Minicurso - Introdução ao android
2017 08-11 - Androidos V - Minicurso - Introdução ao android
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
 
Como construir aplicações gráficas e applets
Como construir aplicações gráficas e appletsComo construir aplicações gráficas e applets
Como construir aplicações gráficas e applets
 

Mehr von 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 2
Erisvaldo 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 1
Erisvaldo 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 8
Erisvaldo 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 7
Erisvaldo 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 6
Erisvaldo 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 5
Erisvaldo 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 4
Erisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
Erisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
Erisvaldo Junior
 
Java me material complementar
Java me   material complementarJava me   material complementar
Java me material complementar
Erisvaldo Junior
 
Java me record management system
Java me   record management systemJava me   record management system
Java me record management system
Erisvaldo Junior
 
Java me generic connection framework
Java me   generic connection frameworkJava me   generic connection framework
Java me generic connection framework
Erisvaldo 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 me
Erisvaldo 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 me
Erisvaldo Junior
 

Mehr von 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
 
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
 
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...
Ginga-J Emulator: uma Ferramenta de Execução de Aplicações Imperativas para o...
 
Desenvolvendo para iOS em linux
Desenvolvendo para iOS em linuxDesenvolvendo para iOS em linux
Desenvolvendo para iOS em linux
 

Android Aula 3

  • 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 3) E-mail: erisvaldojunior@gmail.com Site: http://erisvaldojunior.com Twitter: @erisvaldojunior
  • 2. Roteiro da Aula TÉCNICAS E LOG, LOCALES E LOCALIZAÇÃO EXEMPLOS WIDGETS E MAPAS Recursos e Técnicas importantes para Android
  • 3. TÉCNICAS E EXEMPLOS Diversas Técnicas e Exemplos de Código em Android
  • 4. Como criar uma Splash Screen Basta ter uma Activity declarada na categoria LAUNCHER no AndroidManifest.xml que, após 3 segundos, invoca outra. SplashScreen.java Splash Screen AndroidManifest.xml
  • 5. Exemplo Clássico de Splash Screen Imagem no meio da tela Splash Screen splash.xml
  • 6. Activity em Tela Cheia (Full Screen) Invocar o método abaixo no onCreate() da Activity ou, opcionalmente, definir um android:theme de FullScreen no AndroidManifest.xml Tela Cheia (Full Screen) Modo 1 – Chamar setFullScreen() no onCreate() da Activity Modo 2 – Definir android:theme na tag <activity> do AndroidManifest.xml
  • 7. org.xml.sax.helpers.DefaultHandler Cria-se uma classe que herda de Default Handler e implementa-se os métodos startElement(), characters() e endElement(). Leitura de XML
  • 8. Objetos Intent São compostos por Component Name, Action, Data e Category. Objetos Intent
  • 9. Invocando aplicações Google Intents invocando aplicações Google
  • 10. Log, Locales e Widgets Log, Internacionalização e Widgets em Android
  • 11. android.util.Log Ferramenta de Log do Android. Permite imprimir logs de até cinco tipos: Trabalhando com Log
  • 12. LogCat Permite a visualização do Log. Disponível na perspectiva de Debug do ADT Plugin no Eclipse. Trabalhando com Log
  • 13. Adaptando a aplicação para diferentes linguagens O primeiro passo é planejar como a aplicação deve aparecer (textos e imagens) em diferentes regiões e línguas. Nesse planejamento, estabelece-se também um comportamento/local padrão. Internacionalização
  • 14. Organizando os recursos O segundo passo é mapear, para cada linguagem/país suportado, o caminho do arquivo strings.xml que irá conter os textos naquela linguagem bem como a pasta de imagens específica para a linguagem desejada. Internacionalização Dica: pode-se criar, por exemplo, res/drawable-de/ para englobar todos os aparelhos com a língua definida como Alemão, independente da sua localização.
  • 15. Criando o strings.xml para cada linguagem Cria-se um novo “Android XML File” a partir do plugin ADT no Eclipse. No assistente, defin-se o nome do arquivo como strings.xml e seleciona-se a configuração “Language” com um qualificador de duas letras indicando a linguagem desejada. Isso Internacionalização fará com que o assistente crie o arquivo na pasta correta.
  • 16. Internacionalização Criando o strings.xml para cada linguagem
  • 17. Internacionalização Testando a aplicação no emulador
  • 18. App Widgets São aplicações em miniatura que podem ser embutidas em outras aplicações (como a Home) e receber atualizações periódicas. São referenciadas como Widgets na interface do usuário. App Widgets Para criar um App Widget, necessita-se do seguinte: • AppWidgetProviderInfo – objeto que descreve os metadados do Widget, como o layout, frequência de atualização e a classe AppWidgetProvider. É definido em XML; • AppWidgetProvider – Define os métodos básicos que permitem a programação do Widget. Baseado em eventos de Broadcast. Recebe- se mensagens de broadcast quando o App Widget é ativado, atualizado, desativado e removido.
  • 19. App Widgets Além disso, é preciso definir o View Layout, correspondente ao layout inicial do App Widget, em XML. Adicionalmente, pode-se implementar uma Activity de configuração App Widgets do App Widget. Trata-se de um Activity opcional que é aberto quando o usuário adiciona o Widget e permite que o usuário modifique as configurações do mesmo em tempo de criação.
  • 20. Declarando-se um App Widget Primeiramente, declara-se a classe que herda de AppWidgetProvider no AndroidManifest.xml, conforme mostrado abaixo. App Widgets • <receiver> – elemento que especifica o AppWidgetProvider usado pelo App Widget, através do atributo android:name; • <intent-filter> - inclui uma <action> que especifica que o AppWidgetProvider aceita o broadcast APPWIDGET_UPDATE; • <meta-data> - especifica o AppWidgetProviderInfo e é definido pelos atributos android:name e android:resource.
  • 21. Declarando o AppWidgetProviderInfo Define as características de um App Widget, como dimensões mínimas, XML do Layout, frequência de atualização e, opcionalmente, uma Activity de configuração para ser instanciada quando da criação do App Widget. App Widgets • minWidth e minHeight especificam a área mínima requerida pelo layout do App Widget.; • updatePeriodMillis é o tempo de chamada do método onUpdate() do AppWidgetProvider. Deve ser longo para que não prejudique o consumo de bateria; • initialLayout aponta para o arquivo de layout do Widget; • configure especifica a Activity de configuração que deve ser iniciada quando o usuário adiciona o Widget. É opcional.
  • 22. Criando o layout de um App Widget Layouts de App Widgets são baseados em RemoteViews. Estes não suportam todos os tipos de layout e views. Um objeto RemoteView (e, consequentemente, um App Widget) só suporta os seguintes layouts e views: App Widgets
  • 23. Criando o layout de um App Widget Layouts de App Widgets são baseados em RemoteViews. Estes não suportam todos os tipos de layout e views. Um objeto RemoteView (e, consequentemente, um App Widget) só suporta os seguintes layouts e views: App Widgets
  • 24. Usando a classe AppWidgetProvider A classe AppWidgetProvider herda de BroadcastReceiver pois se trata de uma especialização para tratar os broadcasts para App Widgets. Quando um evento de broadcast para o App Widget ocorre, um dos seguintes métodos é invocado: • onUpdate() – chamado para atualizar o App Widget em intervalos definidos por updatePeriodMillis no AppWidgetProviderInfo. Também é chamado quando o usuário adiciona o Widget, exceto App Widgets quando foi definido um Activity de configuração; • onDeleted() – Chamado quando o Widget é removido do seu aplicativo hospedeiro; • onEnabled() – chamado quando uma instância do App Widget é criada pela primeira vez; • onDisabled() – chamado quando a última instância do App Widget é excluída do hospedeiro; • onReceive() – padrão de Broadcast Receivers. Geralmente não há necessidade de implementar pois os métodos acima são automaticamente invocados pelo AppWidgetProvider.
  • 25. Exemplo de AppWidgetProvider App Widget com um botão que inicia uma Activity quando é clicado. App Widgets
  • 26. Criando uma Activity de configuração Para permitir que o usuário realize configurações ao adicionar um App Widget, cria-se um Activity de configuração. Essa Activity é automaticamente chamada em tempo de criação do App Widget. Declarando o Activity de Configuração no AndroidManifest.xml App Widgets Declarando o Activity de Configuração no AppWidgetProviderInfo
  • 27. Atualizando o App Widget a partir do Activity de Configuração Após realizar a configuração, o Activity tem a responsabilidade de atualizar o App Widget, conforme os passos abaixo. 1. Pega o ID do App Widget a partir do Intent que iniciou a Activity App Widgets 2. Realiza as configurações necessárias 3. Ao completar a configuração, atualiza o App Widget. 4. Cria-se o Intent de retorno com o resultado da Activity e finaliza a Activity.
  • 28. Localização e Mapas Integrando a sua aplicação com o Google Maps
  • 29. android.location.LocationManager Android provê acesso aos serviços de localização suportados pelo dispositivo através do pacote android.locator, que provê APIs para determinar a localização do dispositivo. Localização e Mapas Usa-se o método getSystemService() para obter uma instância de LocationManager. A partir desta, a aplicação pode fazer três coisas: • Consultar a lista de todos os LocationProviders para saber qual foi a última localicação do usuário; • Registro/desregistro de atualizações periódicas da localização do usuário a partir de um provedor de local (especificado pelo critério ou nome); • Registro/desregistro de um dado Intent para ser lançado se o dispositivo estiver a uma certa proximidade de um dado destino.
  • 30. Biblioteca externa do Google Maps Através do pacote com.google.android.maps (parte do add-on Google APIs para Android SDK) é possível baixar e renderizar mapas do Google, com uma variedade de opções e controles. Localização e Mapas A classe chave do pacote é com.google.android.maps.MapView, que é uma subclasse de ViewGroup. Um MapView mostra o mapa com os dados obtidos diretamente do serviço Google Maps. • Quando o MapView está com foco, os toques e teclas são capturados para mover e efetuar zoom no mapa automaticamente, incluindo requisições de rede para obtenção de novas áreas do mapa; • O MapView provê todos os elementos de interface necessários para controlar o mapa; • A aplicação também pode usar a classe MapView para desenhar diversos marcadores sobre o mapa.
  • 31. Requisitando atualização de localização Através do método requestLocationUpdates() de LocationManager, passando um LocationListener como parâmetro que deve implementar diversos métodos que são invocados quando há mudança de localização ou status do Localização e Mapas serviço. Os parâmetros de requestLocationUpdates() estão explicitados a seguir: • O primeiro parâmetro é o tipo de provedor de localização a ser usado, GPS_PROVIDER ou NETWORK_PROVIDER; • O segundo parâmetro é o tempo mínimo para notificar atualizações; • O terceiro parâmetro é a distância mínima para notificar atualizações; • Por fim, o quarto e último parâmetro é o LocationListener que recebe as chamadas callback de notificação das atualizações.
  • 32. Requisitando atualização de localização Exemplo de como implementar um LocationListener e utilizá-lo com o método requestLocationUpdates() de LocationManager. Nesse exemplo, usa-se o Android Network Location Provider e não há tempo ou distância mínima para notificação (as Localização e Mapas notificações serão tão frequentes quanto possível).
  • 33. Requisitando permissões ao usuário Para que se possa receber as notificações de localização, seja através de NETWORK_PROVIDER ou GPS_PROVIDER, é necessário que essa permissão seja requisitada ao usuário, declarando-se ACCESS_COARSE_LOCATION (apenas Localização e Mapas NETWORK_PROVIDER) ou ACCESS_FINE_LOCATION (ambos os provedores, rede e GPS) no AndroidManifest.xml.
  • 34. Tutoriais e aplicações a serem desenvolvidas Há diversos tutoriais que podem complementar os estudos iniciais de desenvolvimento e aplicações em Android. Para estudos posteriores • Notepad Tutorial – Aplicação de bloco de notas que originou a aplicação NotePad de exemplo do Android SDK. Explica o desenvolvimento passo a passo - http://developer.android.com/resources/tutorials/notepa d/index.html; • Hello Testing e Activity Testing – Testes em Android - http://developer.android.com/resources/tutorials; • MusicDroid - Audio Player - Tutorial de como programar um player de música passo a passo - http://www.helloandroid.com/tutorials/musicdroid-audio-player- part-i.
  • 35. Links • developer.android.com – Portal oficial de desenvolvimento para Android. SDK, Guia de Desenvolvimento, Documentação completa; • helloandroid.com – Notícias, Tutoriais de Desenvolvimento, Aplicações, Dispositivos e mais sobre Android; Referências • androidsnippets.org – Trechos de código abordando diversos recursos do Android; • code.google.com/p/krvarma-android-samples - Diversas aplicações de exemplo (com código-fonte) englobando câmera, GPS, gestos, Text to Speech, detecção de face e etc.