Introdução ao desenvolvimento de aplicações utilizando a plataforma Google Android.
São apresentados conceitos básicos sobre a estrutura e funcionamento de uma aplicação na plataforma Android, como instalar o ambiente de desenvolvimento e a criação de duas demos mostrando na prática como desenvolver.
1. Introdução ao desenvolvimento
de aplicações utilizando a
plataforma Google Android.
Tadeu Araujo e Roberto Silva
Outubro de 2011
2. Quem
vos
fala?
• Tadeu Araujo
• Entusiasta e evangelista de assuntos relacionados à Tecnologia de Informação
(principalmente o que envolve dispositivos móveis) e design
• Graduado em Sistemas de Informação pela Universidade Estadual Paulista
"Júlio de Mesquita Filho“, cursando MBA em Engenharia de Software Orientada
para Serviços (SOA)
• A quase 10 anos trabalhando com TI, atuando em diversas áreas
desenvolvimento de aplicações desktop, aplicações web, atendimento ao cliente,
administração e controle de redes de computadores e pesquisa e
desenvolvimento. “Especialização pra que, né?”
• Mobile Developer na Arca Solutions
• Um dos editores do blog Mestre Android
@araujotadeu
3. Quem
vos
fala?
• Roberto C. Silva
• Graduado em Tecnologia de Sistemas e Desenvolvimento de sistemas na
FATEC Ourinhos, Pós graduado em Tecnologia Java UTFPR (Cornélio Procópio)
• Experiência 10 anos de experiência com desenvolvimento de sistema, com
tecnologias JSE, JEE, GWT, PHP, ASP.NET C#, Atualmente estudando Python,
JME, Objective-C (iPhone), Android
• Participação 1ª Feira Tecnológica do Centro Paula Souza - projeto Software
para entrada de dados estatísticos
@betorcs
5. Agenda
• História
• OHA – Open Handset Alliance
• Versões da SDK
• Dispositivos
• Conceitos
• Documentação
• Dalvik
• Siglas
• Arquitetura
• AndroidManifest.xml
• Interfaces
• Activity / Intent
• Notification
• BroadcastReceiver
• Service
• Toast / Dialog
• SQLite
• ContentProvider
• MÃOS A OBRA!
• Fontes de informação
6. História
• Compra da Android Inc. (pequena startup que fazia softwares mobile)
Julho
de
2005
• Especulações
De
2005
a
2007
• Android
nasce
como
plataforma
móvel
• A
OHA
(Open
Handset
Alliance)
é
criada
Novembro
de
• Lançada
a
primeira
versão
da
SDK
2007
• Android Developer Challenge (com submissões até abril de 2008)
• Primeiro
aparelho
android
é
lançado
no
mercado
(HTC
G1)
Outubro
de
2008
7. OHA
-‐
Open
Handset
Alliance
Surge em novembro de 2007
Objetivo: padronizar
e muitas mais...
17. Dalvik
• Máquina virtual (VM) escrita por Dan Bornstein e outros engenheiros da Google
• Lançada junto com a SDK do Android no final de 2007
• Criada com base na especificação POSIX para sistema operacional UNIX
• Precisava e a J2ME?
• Limitada e incompatível com alguns aparelhos
• “Write once, run anywhere” não funcionava
• JSR (Java Specification Request) muito burocrático
• .CLASS vs .DEX (mais rápido devido a remoção de pools de constantes)
• Ferramenta “dx”
• .APK vs .JAR
* Baseado no Kernel 2.6
21. Interfaces
• Cada fabricante possui a sua
• Similar ao Java convencional (Swing e AWT, Canvas, OpenGL)
• XML (interface/imagens)
• Arrastar componentes / escrever XML
• Suporte a múltiplas resoluções e tamanhos de tela
* Evite imagens crie suas próprias imagens utilizando XML sempre que possível
22. Interfaces
Extra
high
density
Medium
density
(160),
mdpi
High
density
(240),
hdpi
Low
density
(120),
ldpi
(320),
xhdpi
Small
screen
QVGA
(240x320)
480x640
WVGA800
(480x800)
WQVGA400
(240x400)
Normal
screen
HVGA
(320x480)
WVGA854
(480x854)
640x960
WQVGA432
(240x432)
600x1024
WVGA800*
(480x800)
WVGA800**
(480x800)
Large
screen
WVGA854*
(480x854)
WVGA854**
(480x854)
600x1024
†
WXGA
(1280x800)
1536x1152
2048x1536
Extra
Large
screen
1024x600
1024x768
1920x1152
2560x1536
1280x768
1920x1200
2560x1600
res/layout/my_layout.xml // layout for normal screen size ("default")
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-xlarge/my_layout.xml // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape orientation
res/drawable-mdpi/my_icon.png // bitmap for medium density
res/drawable-hdpi/my_icon.png // bitmap for high density
res/drawable-xhdpi/my_icon.png // bitmap for extra high density
25. AcCvity
/
Intent
• Activity
• Representação de uma tela
• Deve estender android.app.Activity
• Ciclo de vida de uma Activity
• Intent
• Classe android.content.Intent
• Representa uma “ação” ou
“intenção”
• Representa uma mensagem de
uma aplicação para o sistema ou de
uma aplicação para outra aplicação
26. NoCficaCon
• Utilizada para enviar uma notificação,
uma mensagem ao usuário
• O usuário decide se quer ver a
notificação ou não
• Classe android.app.Notification
27. BroadcastReceiver
• É utilizada para que as aplicações possam
reagir a um evento gerado por uma intent, que
pode ter sido gerada por outra aplicação ou
pelo próprio sistema.
• Roda em segundo plano e não tem interface
gráfica
• Classe android.content.BroadcastReceiver
28. Service
• Classe utilizada para a criação de um serviço,
um serviço é um ou mais processos que são
executados em segundo plano por tempo
indeterminado, por necessitar utilizar muitos
recursos do aparelho ou para permitir que uma
atividade independente seja executada.
• Classe android.app.Service
29. Toast
/
Dialog
• Uma Toast ou uma Dialog são caixas .
• Classe android.app.Dialog
• Classe android.app.AlertDialog
• Classe android.app.ProgressDialog
• Classe android.widget.Toast
30. SQLite
• Integração nativa
• http://www.sqlite.org/
• Criação de um banco de dados
• Utilizando um gerenciador de banco de dados
• Através da API Android
• Classe android.database.sqlite.SQLiteOpenHelper
• Classe android.database.sqlite.SQLiteDatabase
31. ContentProvider
• Permite o compartilhamento de informações que por padrão só quem teria acesso
seria a própria aplicação (SQL, propriedades, etc.)
• O android possui vários ContentProvider nativos para uso
Exemplo: content://com.android.contacts/contacts
• Classe android.acontent.ContentProvider
35. OBRIGADO!
Introdução ao desenvolvimento
de aplicações utilizando a
plataforma Google Android.
Tadeu Araujo e Roberto Silva
Outubro de 2011
tadeu.araujo@gmail.com
betorcs@gmail.com
@araujotadeu
@betorcs