Escolar Documentos
Profissional Documentos
Cultura Documentos
www.venturus.org.br
Objetivo
O mini-curso tem por objetivo apresentar os conceitos bsicos da plataforma Android, familiarizando os alunos com o ambiente de desenvolvimento.
Agenda
Introduo Arquitetura e conceitos bsicos Interfaces grficas Emulao e degugging Broadcast Receiver Service Handler Content provider
VNT/PQ:111
Rev. B
Data: 23/06/2010
Introduo
O que Android?
Android uma plataforma de software para dispositivos mveis
Criada pela Open Handset Alliance, um conjunto de empresas lideradas pela Google Objetivo de acelerar a inovao e oferecer aos consumidores uma experincia mais rica A plataforma Android foi publicada como cdigo aberto em 2008
VNT/PQ:111
Rev. B
Data: 23/06/2010
Evoluo
Android evoluiu rapidamente desde seu lanamento
Diversos fabricantes adotaram a plataforma: HTC, Samsung, Motorola, Sony Ericsson, LG, Dell, Acer, etc. Google esperava em torno de 18 modelos at o fim de 2009 Hoje j so mais de 50 modelos
http://en.wikipedia.org/wiki/List_of_Android_devices
HTC Wildfire
VNT/PQ:111
Nexus One
Motorola DEXT
LG GW620
Acer A1
Data: 23/06/2010
Android Market
Desenvolvedores podem publicar e vender suas aplicaes no Android Market
Taxa de registro de U$25,00 Desenvolvedor recebe 70%, operadora 30% e Google 0%
VNT/PQ:111
Rev. B
Data: 23/06/2010
A plataforma Android
Android uma plataforma de software para dispositivos mveis que inclui:
Sistema operacional; Middleware; Aplicaes chave.
VNT/PQ:111
Rev. B
Data: 23/06/2010
Arquitetura
VNT/PQ:111
Rev. B
Data: 23/06/2010
Linux Kernel
Android utiliza um kernel Linux que abstrai o sistema do hardware do dispositivo
Responsvel por tarefas bsicas do sistema
Gerenciamento de memria, processos, threads, sistema de arquivos, redes, drivers, etc.
VNT/PQ:111
Rev. B
Data: 23/06/2010
Libraries
O prximo nvel, acima do kernel, composto por bibliotecas nativas
As bibliotecas so escritas em C ou C++ e compiladas para o hardware especfico do dispositivo Oferecem funes comuns do sistema
VNT/PQ:111 Rev. B
Surface manager: gerenciamento do display Media Framework: para suporte a audio e video SQL Lite: para persistncia de informaes OpenGL: para renderizaode conteto 3D WebKit: para renderizao de contedo web ...
Data: 23/06/2010 Preparado por: Frederico Gonalves
Run time
Inclui a mquina virtual e bibliotecas Java bsicas
Mquina virtual Dalvik, implementada pela Google, otimizada para execuo em dispositivos mveis
Executa classes Java compiladas para o formato Dalvik Executable (.dex) Toda aplicao executada em seu prprio processo e instncia da mquina virtual
VNT/PQ:111
Rev. B
Data: 23/06/2010
Application Framework
Conjunto de APIs que abstraem detalhes do sistema
Aplicaes instalveis tem acesso as mesmas APIs utilizadas pelas aplicaes pr-instaladas Arquitetura projetada para simplificar o reuso de componentes
Qualquer aplicao pode publicar suas capabilities que podero ser usadas por outras aplicaes
VNT/PQ:111
Rev. B
Data: 23/06/2010
Aplicaes
Aplicaes so escritas na linguagem Java
O cdigo Java compilado, assim como os recursos da aplicao, compactado num arquivo .apk O arquivo .apk pode ser instalado nos dispositivos mveis Cada .apk representa uma aplicao nica
VNT/PQ:111
Rev. B
Data: 23/06/2010
Desenvolvimento nativo
Tarefas com requisitos crticos de performance podem ser implementadas em cdigo nativo
Aplicaes Java podem acessar rotinas nativas, no possvel desenvolver aplicaes apenas nativas
Rotinas nativas desenvolvidas em C ou C++ e acessveis ao Java utilizando JNI (Java Native Interface)
Ferramentas de desenvolvimento
Android SDK prov ferramentas e APIs necessrias para o desenvolvimento de aplicaes em Java
SDK disponvel para Windows, Mac OS e Linux
http://developer.android.com/sdk/index.html
ADT Plugin para Eclipse IDE permite a criao de um ambiente integrado pada desenvolvimento de aplicaes http://developer.android.com/sdk/eclipse-adt.html Android NDK para desenvolvimento de operaes nativas
http://developer.android.com/sdk/ndk/index.html#overview
VNT/PQ:111 Rev. B Data: 23/06/2010 Preparado por: Frederico Gonalves
VNT/PQ:111
Rev. B
Data: 23/06/2010
Starting
onCreate() onStart() onResume()
Running
onPause()
onResume()
Stoped
onStop()
Paused
<<Process Killed>>
Destroyed
VNT/PQ:111
Rev. B
Data: 23/06/2010
Reuso de componentes
Uma aplicao pode fazer uso de componentes de outras aplicaes
Cdigo do componente no incorporado pela aplicao cliente O sistema inicia uma aplicao quando um de seus componentes for necessrio Aplicaes Android no tem um ponto de entrada nico
VNT/PQ:111
Rev. B
Data: 23/06/2010
Estrutura de um projeto
VNT/PQ:111
Rev. B
Data: 23/06/2010
Interfaces Grficas
Activity (android.app.Activity)
representa uma tela da aplicao; trata os eventos gerados nessa tela (ex: pressionamento de um boto); deve implementar o mtodo onCreate(bundle); deve ser declarada no arquivo AndroidManifest.xml;
VNT/PQ:111
Rev. B
Data: 23/06/2010
setContentView(view)
elo de ligao entre a activity e a view; parmetro: view que ser exibida na tela; chamada: mtodo onCreate(bundle) da activity;
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
Emulao e debugging
Ferramentas
adb (Android Debug Bridge); LogCat; Debugger; DDMS (Dalvik Debug Monitor Service); Hierarchy viewer; Trace View.
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
Instalar aplicativo
adb install <nome_do_aplicativo>.apk
Desinstalar aplicativo
adb uninstall <nome_do_aplicativo>.apk
VNT/PQ:111
Rev. B
Data: 23/06/2010
http://www.androidpt.info/index.php?title=ADB
VNT/PQ:111 Rev. B Data: 23/06/2010 Preparado por: Esther M. de Freitas
Log.e( ): Erros (errors) Log.w( ): Advertncias (warnings) Log.i( ): Informao (information) Log.d( ): Depurao (debugging) Log.v( ): Verboso, prolixo (verbose)
VNT/PQ:111
Rev. B
Data: 23/06/2010
AndroidManifest.xml
Depurar no Eclipse
clicar com o boto direito sobre o projeto > Debug As > Android; selecionar o boto bug na barra de ferramentas > escolher o aplicativo apropriado;
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
controlar o emulador/dispositivo; simular o envio de uma mensagem SMS/Ligao; capturar imagem da tela do emulador/dispositivo; visualizar os logs da aplicao; analisar os processos, ...;
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
Notification
Notification
Usada para avisar o usurio sobre um evento que ocorreu na aplicao; Usurio pode visualizar o seu contedo ou ignorar a mensagem; Tipos
Toast notification; Dialog notification; Status Bar notification;
VNT/PQ:111
Rev. B
Data: 23/06/2010
Notification
Toast notification
para exibir mensagens breves (ex: Arquivo Salvo ); mostrada na tela brevemente sobre a aplicao que est em foco; aparece e desaparece automaticamente e no tem interao com o usurio.
VNT/PQ:111
Rev. B
Data: 23/06/2010
Notification
Dialog notification
janela pequena apresentada na frente da tela em foco; apresenta mensagens relacionadas com a aplicao em execuo; usos:
apresentar uma barra de progresso; mostrar uma mensagem que requer confirmao do usurio (ex: botes de Ok e Cancelar );
VNT/PQ:111
Rev. B
Data: 23/06/2010
Notification
Status Bar notification
cones/mensagens mostradas na barra de status do celular e mensagens expandidas na janela de notificaes; pode ser configurada para alertar o usurio com som, acender as luzes e fazer o celular vibrar; indicada quando a aplicao est executando em background (no est em foco) e o usurio precisa ser notificado sobre algum evento;
Barra de status com um cone de notificao Mensagem expandida na janela de Notificaes
VNT/PQ:111
Rev. B
Data: 23/06/2010
Broadcast Receiver
VNT/PQ:111
Rev. B
Data: 23/06/2010
Broadcast Receiver
Broadcast receivers so componentes da aplicao que: So disparados por eventos (intents) internos ou externos aplicao; Rodam em segundo plano. Portanto, deve executar em no mximo 10 segundos. Caso contrrio, a plataforma informar ao usurio que a aplicao no est respondendo e dar opo para o usurio termin-la; No tm interface grfica e no deve executar nenhuma tarefa que atualiza a UI da aplicao.
VNT/PQ:111 Rev. B Data: 23/06/2010 Preparado por: Marcionlia F. Villefort
2. Via cdigo
VNT/PQ:111
Rev. B
Data: 23/06/2010
2. Recebendo broadcast
VNT/PQ:111
Rev. B
Data: 23/06/2010
http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/os/SmsMessageReceiver.html
VNT/PQ:111
Rev. B
Data: 23/06/2010
Content Provider
VNT/PQ:111
Rev. B
Data: 23/06/2010
Content Provider
Provedor de contedo pblico, isto , exporta sua base de dados de forma que suas informaes sejam acessadas de forma padronizada; Possui suporte nativo ao SQLite; Acesso feito atravs de uma URI imutvel.
VNT/PQ:111
Rev. B
Data: 23/06/2010
Gallery URI:
content://media/internal/images/media MediaStore.Images.Media.INTERNAL_CONTENT_URI
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
Service
VNT/PQ:111
Rev. B
Data: 23/06/2010
Service
Servios so componentes da aplicao que: Rodam em segundo plano por tempo indeterminado; Podem rodar em processos separados da aplicao; Expem suas funcionalidades para que outras aplicaes possam utiliz-las.
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
VNT/PQ:111
Rev. B
Data: 23/06/2010
Servios Locais
http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/app/LocalService.html
VNT/PQ:111
Rev. B
Data: 23/06/2010
Handler
VNT/PQ:111
Rev. B
Data: 23/06/2010
Handler
Mecanismo criado pela plataforma Android que facilita a implementao do padro produtorconsumidor; Permite que mensagens geradas por outras threads sejam colocados em uma fila nica; Executa na thread principal da aplicao; As mensagens so consumidas conforme disponibilidade da thread principal.
VNT/PQ:111
Rev. B
Data: 23/06/2010
Handler
H dois usos principais para um handler: 1. Agendar mensagens e tarefas para serem executadas em algum ponto no futuro, e 2. Enfileirar uma ao a ser executada em outra thread diferente da sua. Permite a comunicao com threads rodando em background. Em ambos os casos, o objeto enviado pode ser tratado: 1. To cedo quanto possvel; 2. Depois de decorrido um tempo estipulado.
VNT/PQ:111
Rev. B
Data: 23/06/2010
Referncias Bibliogrficas
Android Developers. Common Layout Objects. Disponvel em: http://developer.android.com/guide/topics/ui/layoutobjects.html. Acesso em: 18/06/2010. Android Developers. Using the Dalvik Debug Monitor. Disponvel em: http://developer.android.com/guide/developing/tools/ddms.html . Acesso em: 21/06/2010. Android Developers. Hierarchy Viewer. Disponvel em: http://developer.android.com/guide/developing/tools/hierarchyviewer.html. Acesso em 23/06/2010. Acesso em 23/06/2010.
Referncias Bibliogrficas
Android Developers. Notifying the User. Disponvel em: http://developer.android.com/guide/topics/ui/notifiers/index.ht ml. Acesso em: 23/06/2010. Wiki AndroidPT.com. ADB. Disponvel em: http://www.androidpt.info/index.php?title=ADB. Acesso em: 18/06/2010. infiniteZest. Debugging an Android Application. Disponvel em: http://www.infinitezest.com/articles/debugging-an-androidapplication.aspx. Acesso em: 21/06/2010.
Referncias Bibliogrficas
Botskool. Create Toast Notification in Android. Disponvel em: http://www.botskool.com/geeks/create-toast-notificationandroid. Acesso em: 23/06/2010. LECHETA, Ricardo R. Google Android: Aprenda a criar aplicaes para dispositivos mveis com o Android SDK. So Paulo: Novatec Editora, 2009. BURNETTE, Ed. Hello, Android: Introducing Google`s Mobile Development Plataform. Pragmatic Bookshelf, 2008.
Backup
Tamanho do mercado
Hierarchy Viewer
Estrutura inicial
VNT/PQ:111
Rev. B
Data: 23/06/2010
Hierarchy Viewer
Estrutura revisada
VNT/PQ:111
Rev. B
Data: 23/06/2010