O documento fornece uma introdução à plataforma Android, descrevendo seu sistema operacional baseado no Linux, o SDK para desenvolvimento de aplicativos usando Java, e a Open Handset Alliance responsável por seu desenvolvimento. Também resume os principais componentes da arquitetura Android como framework, bibliotecas, runtime e kernel Linux.
2. 2
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
O que é o Android?
A plataforma Android é composta de um sistema operacional (Linux 2.6)
middleware, bibliotecas e aplicações.
O Android SDK (Software Development Kit) oferece ferramentas e APIs
necessárias para o desenvolvimento de aplicações para a plataforma
Android usando a linguagem de programação Java.
3. 3
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Open Handset Alliance (OHA)
A Open Handset Alliance (OHA) é um consórcio de mais de 80 empresas que tem
o objetivo de desenvolver padrões abertos para dispositivos móveis.
Entre as empresas participantes estão Google, HTC, Sony, Dell, Intel, Motorola,
Qualcomm, Texas Instruments, Samsung Electronics, LG Electronics, T-Mobile,
Nvidia, entre outros.
http://www.openhandsetalliance.com
4. 4
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Smartphones
HTC G1, Droid,
Tattoo
Motorola Droid (X)
Suno S880 Samsung Galaxy
Sony Ericsson
5. 5
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Tablets
Velocity Micro Cruz
Gome FlyTouch
Acer beTouch
Dawa D7 Toshiba Android SmartBook Cisco Android Tablet
Samsung Galaxy Tab
6. 6
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Market share: plataformas móveis
Relatório da comScore em setembro de 2011 sobre o mercado americano de
assinantes de telefonia móvel
http://www.comscore.com/Press_Events/Press_Releas
es/2011/11/comScore_Reports_September_2011_U.S.
_Mobile_Subscriber_Market_Share
7. 7
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Market share: versões do Android
http://developer.android.com/resources/dashboard/platform-versions.html
8. 8
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Características
Framework de aplicação que permite reuso e substituição de
componentes
Máquina virtual Dalvik otimizada para dispositivos móveis
Browser integrado baseado no WebKit (open-source)
Gráficos otimizados utilizando biblioteca gráfica customizada 2D e gráficos
3D baseados na especificação OpenGL ES 1.0 (aceleração via hardware
opcional)
Banco de dados SQLite para armazenamento local
9. 9
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Características (cont.)
Suporte para arquivos de mídia – áudio, vídeo, imagens – (MPEG4, H.264,
MP3, AAC, AMR, JPG, PNG, GIF)
Telefonia GSM (dependente do hardware)
Tecnologias de comunicação Bluetooth, EDGE, 3G, e WiFi (dependente de
hardware)
Câmera, GPS, compasso, e acelerômetro (dependente de hardware)
Ambiente de desenvolvimento que inclui emulador de dispositivo,
ferramentas para debug, monitoração de memória e performance, e um
plugin para desenvolvimento no Eclipse
10. 10
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Arquitetura do Android
http://developer.android.com/guide/basics/what-is-android.html
11. 11
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Arquitetura: Aplicações
O sistema Android vem com um conjunto de aplicações incluindo um
cliente de email, software para SMS (envio e recebimento), calendário,
software para visualização de mapas (integração com Google Maps),
browser, contatos, entre outors.
Todas as aplicações são escritas utilizando a linguagem Java e podem ser
acessadas por suas Apps
12. 12
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Arquitetura: Framework
O Framework Android permite a criação de aplicações que utilizem os diversos
recursos do dispositivo móvel e se integrem ao sistema e demais aplicações.
É possível acessar o hardware do dispositivo, obter a localização atual,
configurar alarmes, executar serviços em background, adicionar notificações,
entre outros.
Desenvolvedores tem acesso irrestrito às mesmas APIs utilizadas pelas aplicações
que já vem no sistema, já mencionadas.
• Uma nova aplicação desenvolvida pode publicar ao Framework suas
funcionalidades e outras aplicações podem fazer uso dessas
funcionalidades.
• Esse mecanismo permite que componentes sejam substituídos no Framework.
13. 13
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Arquitetura: Framework (cont.)
Para todas as aplicações, o Framework fornece um conjunto de serviços, que
inclui:
• Sistema de Views utilizado para construir aplicações contendo listas, grids,
caixas de texto, botões, web browser, mapas, etc.
• Os Content Providers permitem que as aplicações acessem dados de outras
aplicações (por exemplo, Lista de Contatos) ou compartilhem seus próprios
dados
• Um Resource Manager fornece acesso a recursos como textos localizados,
gráficos e arquivos de layout
• Um Notification Manager que permite que aplicações insiram alertas
customizados na barra de status
• Um Activity Manager que gerencia o ciclo-de-vida de aplicações e fornece
uma pilha de navegação entre telas (Activities) entre as aplicações que estão
executando
14. 14
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Arquitetura: Bibliotecas
Estão incluas uma série de bibliotecas C/C++ que são usadas por vários
componentes do sistema Android.
A utilização destas bibliotecas é possível através do Framework Android.
15. 15
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Arquitetura: Bibliotecas (cont.)
SecureSocketLayer (SSL)
SQLite
WebKit (engine de browser web para páginas embutidas)
Audio Manager
Media Framework
• Para audio, video, e formatos de imagens (MPEG4, H.264, MP3,
AAC, AMR, JPG, PNG, GIF)
Bibliotecas Gráficas:
Scalable Graphics Library (SGL- para 2D)
OpenGL for Embedded Devices (para 3D)
FreeType (fontes vector and bitmap fonts)
Surface Manager
Faz composição 2D e 3D de windows, widgets, apps, toolbars
16. 16
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Arquitetura: Runtime
Android incluí um conjunto de bibliotecas padrão que fornece a maioria das
funcionalidades padrão da linguagem Java.
Cada App Android executa em seu próprio processo, com uma instância da
máquina virtual Dalvik.
A Dalvik foi criada de forma que um dispositivo móvel possa executar múltiplas
VMs eficientemente.
Pode-se criar várias threads em um processo (App + VM Dalvik)
17. 17
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Arquitetura: Runtime (cont.)
A Dalvik executa arquivos no formato .dex (Dalvik Executable) – otimizado para
utilização mínima de memória
É uma máquina virtual baseada em registros que executa classes compiladas Java
que são transformadas para formato .dex pela ferramenta dx
A Dalvik depende do kernel Linux para funções de baixo nível como threading e
gerenciamento de memória
18. 18
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Arquitetura: Linux Kernel
O Android executa sobre Linux 2.6 para serviços de sistema padrão como
segurança, gerenciamento de memória, gerenciamento de processos, camadas de
rede, e drivers.
O kernel também atua como uma camada de abstração entre o hardware e o
resto do sistema Android.
19. 19
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Programação
O SDK fornece um grupo de ferramentas
para facilitar o desenvolvimento Android
Essas ferramentas são acessadas via linha
de comando ou através do plugin para
Eclipse chamado ADT (Android
Development Tools)
Passos básicos para
desenvolvimento de uma
aplicação Android
20. 20
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Programação – Fases
Setup – fase de preparação do ambiente de desenvolvimento. Criação dos
dispositivos virtuais e preparação dos dispisitivos reais para instalação das
aplicações desenvolvidas.
Development – fase de configuração e desenvolvimento do projeto Android,
contendo todos os arquivos de código e recursos da aplicação.
Debugging and Testing – durante esta fase será produzido um arquivo
debugável .apk que será possível ser instalado e executado em um dispositivo
virtual ou real.
• O ADT fornece vários recursos para isntrumentacão e depuracão (através da
ferramenta Android Debug Bridge adb)
Publishing – fase onde a aplicação será configurada e construída para distribuição
para usuários. Para isso, ela terá que ser assinada com um certificado
• (cifrado com uma chave pública)
21. 21
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Elementos do Projeto Android
22. 22
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Criando uma App
O Desenvolvimento de uma app Android tipicamente envolve:
Criar as telas (layouts, compostas de views) – editor gráfico para os arquivos xml
Criar uma Activity para cada layout
• A mainActivity é o ponto de entrada na sua App
• Activities devem ser subclasses de Activity totalmente independentes
Projetar a transferência de controle entre Activities (Intents)
Projetar o BD SQLite para persistir o estado de sua app
Possivelmente:
• Implementar interação com Activities de outras Apps
• Implementar acesso/atualização dos dados em um content provider
• Implementar interação com algum serviço (processamento demorado)
Editar o arquivo AndroidManifest da app, incluindo as permissões, declarando as
compoenentes, e indicando os recursos necessários
23. 23
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Depuração
A Android Debug Bridge (adb) é uma ferramenta de linha de comando que permite
comunicação entre a máquina de desenvolvimento (Dev) e os emuladores ou dispositivos
reais conectados viaUSB, pada depuração, redirecionamento de portas, e copia de arquivos.
É um programa cliente-servidor (no Dev) que interage com adb daemons nos
emuladores/dispositivos.
Execute ./adb na pasta <pasta-sdk>/platform-tools
O servidor procura por emuladores/dispositivos conectados e cada um encontrado recebe
um par de portas (na faixa 5555 – 5585)
serverserver
clientecliente
Maq. Desenvolvimento
Adb
daemon
Adb
daemon
Adb
daemon
Adb
daemon
Emulator
Device
5555/5556
5557/5558
24. 24
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Assinatura de Apps e Updates
Todo .apk precisa ser assinado digitalmente
Mas, para fim de testes e depuração local (rodar no emulador ou dispositivo
conectado ao PC), o próprio Android SDK já criou um debug certificate, que está
em <user-home>/.android/debug.keystore
• Usando o comando keytool (Java Cryptography Architecture) pode-se visualizar esse
debug certificate
Usa-se tb comando keytool, para gerar uma chave privada (em outro arquivo
keystore, protegido por uma senha) .
• Chave privada é usada para cifrar um digest (um hash) do arquivo .apk Isso será a
assinatura de sua app.
Uma vez que sua app foi assinada, toda futura atualização dela terá que ter a
mesma assinatura, senão o dispositivo não reconhecerá o desenvolvedor original
da app
keytool -list -keystore debug.keystore
Enter keystore password:
android
Keystore type: JKS
Keystore provider: SUN
Your keystore contains 1 entry
androiddebugkey, Jan 25, 2012, PrivateKeyEntry,
Certificate fingerprint (MD5): 85:DF:2B:E4:F9:AC:16:1D:2F:DE:D3:D6:35:BD:FD:33
25. 26
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Suporte para outras linguagens
Em 2009 Google anunciou o Android Native Development Kit (NDK)
• Permite desenvolvimento de componentes em C e C++
• Não é completo, pensado mais para ser um complemento ao Java
Google apresenta o Android Scripting Environment (ASE) – permite o
desenvolvimento de apps usando Python e Lua
26. 27
Tecnoinf – Tecnologia em Informática – Todos os direitos reservados
É expressamente proibido reproduzir, publicar, distribuir, difundir ou, por qualquer outra forma, tornar os conteúdos constantes nesta apresentação,
acessíveis a terceiros, para fins de comunicação pública ou de comercialização.
Principal Referência : Android Developers
http://developer.android.com/
Notas do Editor
OHA fundada em Nov 2007
Android Market aberto no Brasil em Outubro 2010.
WebKit um browser Engine (também base do Safati/Mac).