Você está na página 1de 65

Android Terico

Instrutor
O que Android?
Sistema operacional para dispositivos mveis baseado na plataforma
Linux

Plataforma Open Source sendo


1. Kernel: GPLv2 (GNU General Public License)
2. Plataforma: Apache Software License 2

Desenvolvimento baseado em aplicaes Java que so executadas


sobre uma mquina virtual simplificada e otimizada (Mquina Virtual
Dalvik).
Open Handset Alliance
Inicialmente desenvolvido pela Android Inc.

Comprado pelo Google em julho 2005

Ser mantido pela Open Handset Alliance (OHA):


Um grupo de 80 empresas de tecnologia colaborando para a
construo de um telefone mvel melhor.
Operadoras Mveis
Fabricantes de Telefones
Empresas de Semi-condutores
Empresas de Software
Comercializao
Motivao: por que estudar Android?
Crescimento do mercado mobile
Crescimento do Android vs outros SOs
Demanda do mercado
Proximidade com Java, j amplamente utilizada

Fonte: http://www.businessinsider.com/mobile-market-share-2012-11
Crescimento do mercado mobile

Fonte: http://news.cnet.com/8301-1035_3-57544131-94/android-beats-ios-5-to-1-in-q3-smartphone-market-share/
Verses do Android
As verses recebem nomes de doces e esto na ordem alfabtica

1.0/1.1 sem nome 1.5 Cupcake 1.6 Donut 2.0/2.1 Eclair 2.2 Froyo 2.3 Gingerbread

3.0-3.2 Honeycomb 4.0 Ice Cream Sandwich 4.1-4.2 Jellybean


Distribuio do Android
Nvel
Verso Codinome Distribuio
API
1.5 Cupcake 3 0.1%
1.6 Donut 4 0.3%
2.1 Eclair 7 2.7%
2.2 Froyo 8 10.3%

2.3-2.3.2 9 0.2%

Gingerbread

2.3.3-2.3.7 10 50.6%

3.1 12 0.4%
Honeycomb
3.2 13 1.2%
Ice Cream
4.0.3-4.0.4 15 27.5%
Sandwich
4.1 16 5.9%
Jelly Bean
4.2 17 0.8%

Dados coletados durante 14 dias finalizando em 3 de dezembro de 2012


Arquitetura de 5 Camadas
Arquitetura de 5 Camadas

Esta camada do kernel Linux 2.6 embedded, fornece servios do


sistema como segurana, gerenciamento de memria, gesto de
processos, redes e drivers (Hardware Abstraction Layer).
Arquitetura de 5 Camadas

Conjunto de APIs, bibliotecas C/C++ do sistema operacional, para o desenvolvimento


de aplicaes para dispositivos mveis.
Surface Manager: Gerencia a renderizao de diferentes superfcies na tela;
OpenGL/ES: Desenho 3D em software podendo ser acelerada por hardware;
SGL: Biblioteca de desenho 2D;
Media Framework: Basicamente Codecs MPEG, JPG, PNG, MP3,...;
Free Type: Renderizar fontes;
SSL: Secure Socket Layer para criptografia;
SQLite: Banco de dados leve;
Webkit: Browser open source para dispositivos mveis;
Arquitetura de 5 Camadas

Mquina virtual Dalvik otimizada executa bytecode .dex, onde


qualquer aplicao roda dentro de seu prprio processo.
E conjunto de bibliotecas que fornece as funcionalidades da
linguagem de programao em Java.
Arquitetura de 5 Camadas

Esta arquitetura faz com que a reutilizao de componentes seja simplificada de modo
a ser substituda pelo usurio ou por outra aplicao:

Activity Manager: Gerencia o ciclo de vida das aplicaes;


Package Manager: Gerencia install/uninstall de aplicaes;
Window Manager: Basicamente api toplevel para SurfaceManager/OpenGL/SGL;
Telephony Manager: A maioria dos servios da aplicao Phone;
Content Providers: Compartilha seus prprios dados;
Resource Manager: Fornece acesso a recursos como grficos e arquivos de layout.
Location Manager: API de Localizao GPS, Cell ID, Rede wifi, etc.
View System: Elementos de UI como botes, listas, layouts e dispatch de eventos.
Notification Manager: Permite que aplicaes exibam alertas na barra de estado.
Arquitetura de 5 Camadas

Nesta camada esto localizadas as aplicaes-padro como cliente de e-mail, SMS,


calendrios, mapas, navegador Web e outros, sendo todas escritas na linguagem Java,
cada uma rodando na sua prpria mquina virtual (Dalvik).
Blocos Bsicos
Activity
Componente de UI, tipicamente uma tela.

BroadcastReceiver
Responde a anncios de difuso (broadcast) no sistema.

Service
Executa em segundo plano.

ContentProvider
Possibilita compartilhamento dos dados da aplicao.
Blocos Bsicos
Activity
Interao com usurio

Janela para desenhar interface

Geralmente ocupa a tela inteira do aparelho


Blocos Bsicos
BroadcastReceiver
Responde a eventos do sistema.

Aplicaes tambm podem enviar eventos.

No possui interface

Pode utilizar notificaes

Pode iniciar Activities


Blocos Bsicos
Service
Funciona em segundo plano

No possui interface com usurio

Utilizado para operaes de longa durao como tocar msicas, baixar arquivos.
Blocos Bsicos
ContentProvider
Armazenamento e recuperao de dados

Compartilhamento de dados entre aplicativos

Alguns ContentProviders j so fornecidos pelo Android, udio,


vdeo, imagens, contatos, etc
Ciclo de vida de uma
activity
Salvando o estado de
uma activity

Duas possibilidades de uma activity ter foco e retornar para o usurio com o estado
intacto. Na esquerda ela parada e retomada, ou na direita, onde ela destruda, e
quando recriada precisa restaurar o estado anterior.
Ciclo de vida de uma aplicao
rea de controle do Sistema
System

Activity da aplicao Processo Dalvik


Home
Home

Cada aplicao roda em seu prprio processo com um usurio Telefone do Usurio
linux prprio (segurana, proteo de memria)
Processos so iniciados e terminados pelo sistema e podem ser
terminados na necessidade de recursos.
Por exemplo num cenrio de navegao do usurio:
1. Home screen
2. Mail inbox
3. Abre uma mensagem
4. Abre um link dentro da mensagem
5. Abre uma imagem da web usando o Gallery
Ciclo de vida de uma aplicao
System

Home
Home

O sistema est executando a aplicao Home.

Home
Ciclo de vida de uma aplicao
System

Home
Home

O sistema est executando a aplicao Home.


O usurio clica para abrir a Mail box.

Home
Ciclo de vida de uma aplicao
System

Home
Home

O sistema salva o estado da activity Home.

Home
Ciclo de vida de uma aplicao
System

Home
Home

O sistema salva o estado da activity Home.

Home
Ciclo de vida de uma aplicao
System

Home
Home

Mail
Mail List

O sistema dispara o processo da aplicao de mail e o usurio v a mail list

Mail List
Ciclo de vida de uma aplicao
System

Home
Home

Mail
Mail List

O usurio clica sobre uma mensagem

Mail List
Ciclo de vida de uma aplicao
System

Home
Home

Mail
Mail List

O sistema salva o estado da activity do mail list

Mail List
Ciclo de vida de uma aplicao
System

Home
Home

Mail
Mail List

O sistema salva o estado da activity do mail list

Mail List
Ciclo de vida de uma aplicao
System

Home
Home

Mail
Mail List Message

E dispara uma nova activity da aplicao de email

Email
Ciclo de vida de uma aplicao
System

Home
Home

Mail
Mail List Message

O usurio clica em um link dentro da mensagem

Email
Ciclo de vida de uma aplicao
System

Home
Home

Mail
Mail List Message

Mais uma vez o sistema salva as informaes da activity de mensagem

Mail List
Ciclo de vida de uma aplicao
System

Home
Home

Mail
Mail List Message

Mais uma vez o sistema salva as informaes da activity de mensagem

Mail List
Ciclo de vida de uma aplicao
System

Home
Home

Mail
Mail List Message

Browser
Browser

Browser
E o usurio v abrir o link com a aplicao de browser
Ciclo de vida de uma aplicao
System

Home
Home

Mail
Mail List Message

Browser
Browser

Browser
O usurio ento clica numa imagem e pede para abrir com o Gallery
Ciclo de vida de uma aplicao
System

Home
Home

Mail
Mail List Message

Browser
Browser

Browser
O estado do browser salvo
Ciclo de vida de uma aplicao
System

Home
Home

Mail
Mail List Message

Browser
Browser

Browser
O estado do browser salvo
Ciclo de vida de uma aplicao
System

Home
Home

Mail
Mail List Message

Browser
Browser

Browser
Porm o sistema est sem recursos para a aplicao Gallery
Ciclo de vida de uma aplicao
System

Home
Home

Mail
Mail List Message

Browser
Browser

Browser
O sistema ento decide uma aplicao para matar. E mata o processo da
aplicao de mail.
Ciclo de vida de uma aplicao
System

Home
Home

Browser
Browser

Browser
O sistema ento decide uma aplicao para matar. E mata o processo da
aplicao de mail.
Ciclo de vida de uma aplicao
System

Home
Home

Browser
Browser

Gallery
Gallery

Gallery

O sistema ento dispara a aplicao Gallery e mostra a imagem nela.


Ciclo de vida de uma aplicao
System

Home
Home

Browser
Browser

Gallery
Gallery

Gallery

O usurio tecla back para voltar para o browser


Ciclo de vida de uma aplicao
System

Home
Home

Browser
Browser

Gallery
Gallery

Gallery

O sistema salva o estado da gallery


Ciclo de vida de uma aplicao
System

Home
Home

Browser
Browser

Gallery
Gallery

Gallery

O sistema salva o estado da gallery


Ciclo de vida de uma aplicao
System

Home
Home

Browser
Browser

Gallery

Browser

E volta para o browser


Ciclo de vida de uma aplicao
System

Home
Home

Browser
Browser

Gallery

Browser

O usurio tecla back novamente para voltar para a mensagem porm a aplicao
de email no est carregada.
Ciclo de vida de uma aplicao
System

Home
Home

Browser
Browser

Mail
Message

Browser

O sistema mata o processo da aplicao Gallery e dispara a aplicao de


email.
Ciclo de vida de uma aplicao
System

Home
Home

Browser
Browser

Mail
Message

Email

O sistema recupera o estado da activity e o usurio v novamente a


mensagem. O usurio faz back mais uma vez.
Ciclo de vida de uma aplicao
System

Home
Home

Browser
Browser

Mail
Mail List Message

Mail List

O sistema recupera o estado da activity e o usurio v novamente a lista de


mensagens. O usurio faz back mais uma vez.
Ciclo de vida de uma aplicao
System

Home
Home

Browser
Browser

Mail
Mail List Message

Home

O sistema retorna para Home


Tudo transparente do ponto de vista do usurio que navega para frente e
para trs, no se preocupa quantas aplicaes esto executando ou quanto de
memria ainda resta, isso fica a cargo do sistema.
Criando uma activity

Exerccio
Usando a IDE criem uma Activity que faa um log dos seguintes eventos (Dica:
use o diagrama de estados para saber como gerar os eventos no emulador):
onCreate
onStart
onResume
onRestart
onPause
onStop
Ambiente de Desenvolvimento

Windows XP ou superior

Mac OS X 10.4.8 ou superior (x86 only)

Linux Ubuntu, ou outras distribuies.


Ferramentas de Desenvolvimento

Eclipse IDE (seu pacote favorito + ADT plugins)


Ou ADT Bundle (Eclipse+SDK+ADT)
http://developer.android.com/sdk/index.html

Java JDK 5 ou 6 http://developers.sun.com/downloads/

Android Software Development Kit (SDK)


http://developer.android.com/sdk

Android Development Tools (ADT)


http://developer.android.com/sdk/eclipse-adt.html
Ferramentas de Desenvolvimento
Retomando...

Android uma iniciativa de vrias empresas


Crescimento muito grande nos ltimos anos
Arquitetura em camadas
Blocos bsicos: Activity, Service, Broadcast Receiver e
Content Provider
Ciclo de vida de uma aplicao
Ferramentas SDK
Emulador
O SDK do android possui um emulador para desenvolver sem precisar de um dispositivo
real
Ferramentas SDK
Hierarchy viewer (android monitor)
Ferramentas SDK
Logcat
Permite visualizar o log gerado tanto pela aplicao Android quanto pelo sistema
operacional. Este recurso pode ser visualizado pelo Eclipse no modo de debug
Ex: $ emulator -logcat -e (imprime log de erros )
Ferramentas SDK
Android Debug Bridge (ADB)
Oferece vrias funcionalidades entre elas a de copiar e sincronizar arquivos do desktop
para o emulador e vice-versa. Permite a instalao de aplicaes (.apk) a partir de linha
de comando Ex: $ adb kill-server
$ adb shell
$ adb install MyAndroidApp.apk
Ferramentas SDK
mksdcard
Cria um disco imagem que pode ser usado com o emulador, simulando a presena de
um carto SD
Tamanho deve ser no
Ex: $ mksdcard -l MYCARD 100M sdcard.img mnimo 10 megas
Ferramentas SDK
fastboot
Apaga e faz o flash de imagens em um dispositivo com bootloader de engenharia
Ex: $ fastboot erase userdata
$ fastboot erase recovery
$ fastboot flash system system.img
$ fastboot flash boot boot.img
$ fastboot flash userdata userdata.img
$ fastboot reboot
$ fastboot reboot-bootloader
Ferramentas SDK
Android Console
Ferramenta que auxilia simular ligaes, envio de SMS e outras funcionalidades do
telefone no emulador
Ex: $ telnet localhost 5554
Ferramentas SDK
Android Console - Chamadas
gsm status Status do GSM
gsm call 11111111 Primeira chamada
gsm accept 11111111 Aceita a primeira chamada
gsm list Lista as chamadas e seu estado
gsm call 22222222 Segunda chamada
gsm hold 11111111 Coloca a Primeira chamada em espera
gsm accept 22222222 Aceita a segunda chamada
gsm call 33333333 Terceira Chamada
gsm hold 22222222 Coloca a Segunda chamada em espera em
conferncia com a primeira
gsm accept 33333333 Aceita a terceira chamada
gsm cancel 33333333 Desliga a terceira chamada

gsm voice unregistered Sem sinal


gsm voice roaming Fora do DDD local, em roaming
gsm voice home Com sinal
Ferramentas SDK
Android Console - Energia
power display Exibe informaes de energia da bateria
power status discharging Bateria descarregando
power status charging Bateria carregando
power capacity 60 Bateria a 60%

Android Console - GPS


geo fix -4916.16 112311.12 Posicionamento longitude latitude altitude

String NMEA de localizao do GPS, apenas os comandos $GPRMC e $GPGGA so


suportados

geo nmea $GPRMC,081836,A,3751.65,S,14507.36,E,000.0,360.0,130998,011.3,E*62


Ferramentas SDK
Android Console - SMS
sms send 11111111 Texto da mensagem SMS

Android Console - Janela Emulador


window scale 0.8
window scale 1

Android Console - Rede


network speed gsm
network speed umts
network status