SlideShare uma empresa Scribd logo
1 de 26
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/

Mais conteúdo relacionado

Destaque

Introdução a programação em Android
Introdução a programação em AndroidIntrodução a programação em Android
Introdução a programação em AndroidPedro Veloso
 
Pesl introducao a programacao para android
Pesl   introducao a programacao para androidPesl   introducao a programacao para android
Pesl introducao a programacao para androidRegis Claus
 
Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012guisester
 
Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Rudson Lima
 
Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2Matheus Calegaro
 

Destaque (10)

Introdução a programação em Android
Introdução a programação em AndroidIntrodução a programação em Android
Introdução a programação em Android
 
Pesl introducao a programacao para android
Pesl   introducao a programacao para androidPesl   introducao a programacao para android
Pesl introducao a programacao para android
 
Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012Introdução à programação em Android Senac 15/05/2012
Introdução à programação em Android Senac 15/05/2012
 
Android - Além do HelloWord
Android - Além do HelloWordAndroid - Além do HelloWord
Android - Além do HelloWord
 
Conhecendo android
Conhecendo androidConhecendo android
Conhecendo android
 
Android - Parte 8
Android - Parte 8Android - Parte 8
Android - Parte 8
 
Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?Desenvolvimento Android, por onde começar?
Desenvolvimento Android, por onde começar?
 
Aula android 01.pdf
Aula android 01.pdfAula android 01.pdf
Aula android 01.pdf
 
Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2Introdução ao desenvolvimento de apps para Android - Dia 1/2
Introdução ao desenvolvimento de apps para Android - Dia 1/2
 
Mulheres
MulheresMulheres
Mulheres
 

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

Computacao Movel e Sem Fio
Computacao Movel e Sem FioComputacao Movel e Sem Fio
Computacao Movel e Sem FioDouglas Frari
 
Android Palestra
Android PalestraAndroid Palestra
Android PalestraRenato
 
Mobile Linux com Google Android
Mobile Linux com Google AndroidMobile Linux com Google Android
Mobile Linux com Google Androidfelipebzr
 
Trabalho 2 Vinicius Giusti
Trabalho 2   Vinicius GiustiTrabalho 2   Vinicius Giusti
Trabalho 2 Vinicius Giustinigiusti
 
Unidade 1.1 Introdução ao Software
Unidade 1.1 Introdução ao SoftwareUnidade 1.1 Introdução ao Software
Unidade 1.1 Introdução ao SoftwareJuan Carlos Lamarão
 
Webinar: Desvendando o Yocto Project
Webinar: Desvendando o Yocto ProjectWebinar: Desvendando o Yocto Project
Webinar: Desvendando o Yocto ProjectEmbarcados
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Gingalabmidiaufmg
 
Juventude conectada pspb
Juventude conectada pspbJuventude conectada pspb
Juventude conectada pspbOsvaldo Filho
 
O Projeto Mono: Aplicações .NET para sistemas não Windows
O Projeto Mono: Aplicações .NET para sistemas não WindowsO Projeto Mono: Aplicações .NET para sistemas não Windows
O Projeto Mono: Aplicações .NET para sistemas não WindowsAlessandro Binhara
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rqKMILT
 
Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Androidjgbirk
 
FLISoL 2014 Aquidauana - Porque usar Software Livre
FLISoL 2014 Aquidauana - Porque usar Software Livre FLISoL 2014 Aquidauana - Porque usar Software Livre
FLISoL 2014 Aquidauana - Porque usar Software Livre Bruno Alexandre
 

Semelhante a Programação em Android - Aula 1 - Introdução (20)

Computacao Movel e Sem Fio
Computacao Movel e Sem FioComputacao Movel e Sem Fio
Computacao Movel e Sem Fio
 
Android Palestra
Android PalestraAndroid Palestra
Android Palestra
 
Android
AndroidAndroid
Android
 
Show Day Droid x
Show Day Droid xShow Day Droid x
Show Day Droid x
 
Mobile Linux com Google Android
Mobile Linux com Google AndroidMobile Linux com Google Android
Mobile Linux com Google Android
 
Android
AndroidAndroid
Android
 
Trabalho 2 Vinicius Giusti
Trabalho 2   Vinicius GiustiTrabalho 2   Vinicius Giusti
Trabalho 2 Vinicius Giusti
 
Unidade 1.1 Introdução ao Software
Unidade 1.1 Introdução ao SoftwareUnidade 1.1 Introdução ao Software
Unidade 1.1 Introdução ao Software
 
Gisvm FLUC 2010
Gisvm FLUC 2010Gisvm FLUC 2010
Gisvm FLUC 2010
 
Webinar: Desvendando o Yocto Project
Webinar: Desvendando o Yocto ProjectWebinar: Desvendando o Yocto Project
Webinar: Desvendando o Yocto Project
 
Tv interativa se faz com Ginga
Tv interativa se faz com GingaTv interativa se faz com Ginga
Tv interativa se faz com Ginga
 
Juventude conectada pspb
Juventude conectada pspbJuventude conectada pspb
Juventude conectada pspb
 
O Projeto Mono: Aplicações .NET para sistemas não Windows
O Projeto Mono: Aplicações .NET para sistemas não WindowsO Projeto Mono: Aplicações .NET para sistemas não Windows
O Projeto Mono: Aplicações .NET para sistemas não Windows
 
Android juliana-mono
Android juliana-monoAndroid juliana-mono
Android juliana-mono
 
E tertulia paol-rq
E tertulia paol-rqE tertulia paol-rq
E tertulia paol-rq
 
Desenvolvendo Soluções com Android
Desenvolvendo Soluções com AndroidDesenvolvendo Soluções com Android
Desenvolvendo Soluções com Android
 
FLISoL 2014 Aquidauana - Porque usar Software Livre
FLISoL 2014 Aquidauana - Porque usar Software Livre FLISoL 2014 Aquidauana - Porque usar Software Livre
FLISoL 2014 Aquidauana - Porque usar Software Livre
 
Android - Conceito e Arquitetura
Android - Conceito e ArquiteturaAndroid - Conceito e Arquitetura
Android - Conceito e Arquitetura
 
slidesuab
slidesuabslidesuab
slidesuab
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 

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

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

  1. OHA fundada em Nov 2007
  2. Android Market aberto no Brasil em Outubro 2010.
  3. WebKit um browser Engine (também base do Safati/Mac).