Programação em Android
Aula 1 - Introdução
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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/

Programação em Android - Aula 1 - Introdução

  • 1.
  • 2.
    2 Tecnoinf – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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 – Tecnologiaem 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

  • #4 OHA fundada em Nov 2007
  • #7 Android Market aberto no Brasil em Outubro 2010.
  • #9 WebKit um browser Engine (também base do Safati/Mac).