Você está na página 1de 28

Mini Curso Android

Rodrigo Lopes Ferreira


Sun Certified Enterprise Architect for Java EE 5 (II)
Sun Certified Business Component Developer for Java EE 5
Sun Certified Web Component Developer for Java EE 5
Sun Certified Programmer for Java SE 5
rodrigo.lopes.ferreira@hotmail.com

www.discover.com.br

Tpicos Abordados:
1) O que Android

02

2) O que Android Development Tools (ADT)

04

a. Instalando Eclipse Galileo com ADT Plugin


3) O que o Android SDK (Software Development Kit)
a. Instalando o Android SDK e configurando as variveis de ambiente
4) Android Virtual Devices (AVD)

04
06
06
07

a. Criando um novo AVD

07

b. Executando o emulador do Android com acesso internet


(configuraes de Proxy)

09

5) Configurando o Eclipse IDE para reconhecer o Android SDK

10

6) Criando a primeira aplicao Android (Ol Mundo)

11

7) Estrutura bsica de uma aplicao Android

13

a. O que uma classe Activity

13

b. Diretrios de recursos

13

c. A classe R.java

14

d. Navegador de Arquivos

14

e. Tipos de arquivos do Android

15

f. O arquivo AndroidManifest.xml

15

g. Fazendo deploy da aplicao Ol Mundo para o emulador

16

8) Utilizando os componentes visuais do Android

17

9) Banco de Dados SQLite com Android

19

10) Utilizando Google Maps com Android

22

a. Obtendo a chave para acessar o servio de mapas

22

b. Construindo uma aplicao simples

24

11) Referncias e leituras recomendadas

Mini Curso de Android

27

Pgina 1

Tpico 1

O que Android
Hoje no mercado existem diversos sistemas
operacionais diferentes para celulares e smartphones, o
que causa falta de padronizao e um enorme esforo ao
tentar portar aplicaes e utilizao de recursos entre
estes diferentes modelos e marcas.
Android a resposta da Google para este
problema. Trata-se de um sistema operacional opensource baseado em Linux. Ele foi inicialmente
desenvolvido pela Google e posteriormente pela Open
Handset Alliance (uma associao comercial composta
por mais de trinta empresas de tecnologia e telefonia celular, incluindo Google, HTC,
Intel, Motorola, Qualcomm, Texas Instruments, Samsung, LG, T-Mobile, Nvidia e Wind
River Systems, responsveis por criar padres abertos para os dispositivos mveis de
todas as marcas participantes). O Android provavelmente ir tornar-se a plataforma
dominante entre os smartphones nos prximos anos.
Ele permite que os desenvolvedores criem software na linguagem de
programao Java. Este software ser totalmente compatvel com todos os modelos
que suportem a verso do Android para o qual ele foi desenvolvido, sem nenhuma
mudana ou recompilao.

Abaixo seguem as quatro caractersticas principais do Android:

Aplicativos sem fronteiras


Os aplicativos no Android podem acessar funcionalidades
essenciais de dispositivos mveis por meio de APIs padro. Os
aplicativos podem anunciar seus recursos para que outros
aplicativos os usem.

Os aplicativos so criados igualmente


Qualquer aplicativo do dispositivo mvel pode ser substitudo
ou estendido, mesmo componentes essenciais como o discador
ou a tela inicial.

Os aplicativos podem facilmente incorporar


a web

Mini Curso de Android

Pgina 2

Os aplicativos podem facilmente incorporar HTML, Java Script


e pginas de estilo. Um aplicativo pode exibir contedo da web
por meio de uma WebView.

Os aplicativos podem ser executados em


paralelo
O Android um ambiente multitarefa completo, no qual os
aplicativos podem ser executados em paralelo. Um aplicativo
pode produzir avisos para chamar a ateno enquanto estiver
sendo executado em segundo plano.
Quadro 1 Caractersticas Principais do Android
(fonte: http://code.google.com/intl/pt-BR/android/)

A maior diferena entre Android e JME (Java Micro Edition), alm dos recursos e
de sua poca, claro, que o Android no uma aplicao que roda sobre o sistema
operacional do dispositivo mvel; ele o prprio sistema operacional, ento, as
aplicaes desenvolvidas para o Android s rodam em dispositivos equipados com o
sistema operacional Android, no podendo ser instaladas/executadas em nenhuma
outra plataforma.
O Android uma grande promessa que j est se tornando realidade. No
momento em que este texto estava sendo escrito, a verso do pacote de
desenvolvimento atual era a 1.6. Em cada nova verso, os problemas vo sendo
corrigidos, os recursos incrementados, o desempenho e a compatibilidade
melhorados.
O Android executa as aplicaes desenvolvidas para ele atravs da mquina
virtual personalizada chamada Dalvik VM.
Podemos dar uma aprofundada
http://developer.android.com/index.html.

sobre

Android

em

seu

site

oficial:

Ento, mos a obra!

Mini Curso de Android

Pgina 3

Tpico 2

O que Android Development Tools (ADT)


O "Android Development Tools (Ferramentas de
Desenvolvimento para Android)" um plugin
(extenso) para o Eclipse IDE que o deixa preparado
para desenvolver aplicaes para o Android de forma
integrada e simplificada. Ele permite a criao e
depurao de aplicaes Android de maneira fcil e
rpida. Algumas caractersticas bsicas do plugin:

a) Prov uma maneira simples de interao


com o emulador, permitindo a insero de "break-points", visualizao das
threads e processos atuais, entre outros... Diretamente dentro do Eclipse.
b) Um assistente para criao de novos projetos, que ajuda a criar
rapidamente um novo projeto Android (criando e configurando de forma
bsica todos os arquivos necessrios) e lhe deixando pronto para comear.
c) Automatiza e simplifica o processo de compilao e deploy da aplicao
Android.
d) Prov um editor de cdigo fonte que lhe ajuda a escrever arquivos XMLs
vlidos para os arquivos de configurao e recursos do Android.
e) Permite a gerao do pacote "APK", que poder ser distribudo para os
usurios.

Instalando Eclipse Galileo com ADT Plugin


O Eclipse um IDE (Integrated Development Environment) para
desenvolvimento de aplicaes em Java. Ele permite que extenses (plugins) sejam
adicionadas a ele, tornando-o mais completo e especfico para certas tarefas. Vamos
adicionar uma extenso para o Eclipse poder desenvolver aplicaes e ter uma srie
de grandes facilidades (citadas anteriormente) para Android.

Mini Curso de Android

Pgina 4

Nota: Para este mini-curso, estamos disponibilizando


o Eclipse Galileu (3.5) j com Android ADT Plugin
configurado. Porm, caso queira faz-lo voc mesmo,
veja
este
link
com
as
instrues:
http://developer.android.com/sdk/eclipseadt.html#installing

Para instalar o Eclipse Galileu, siga os seguintes passos (considere que os arquivos
aqui citados esto dentro do diretrio softwares deste curso):
1) Para executar o Eclipse IDE, ser necessrio ter o pacote de
desenvolvimento Java (Java JDK 6):
a. Execute o arquivo jdk-6u6-windows-i586-p.exe e prossiga at o
final. Este processo ir instalar o Java 6 Development Kit (pacote
necessrio para desenvolver e compilar aplicaes em Java).
b. Configure as variveis de ambiente do seu sistema:
i. JAVA_HOME
para
a
pasta
C:\Arquivos
de
Programas\Java\jdk1.6.0_11\"
ii. PATH para o contedo de path mais C:\Arquivos de
Programas\Java\jdk1.6.0_11\bin
c. Teste o seu ambiente:
i. Abra o prompt de comando (cmd) e digite java, se no der a
mensagem java no reconhecido... por que seu ambiente
est pronto para executar o Eclipse; caso d algum problema,
repita os passos acima.
2) Para instalar o Eclipse Galileo (3.5):
a. Descompacte
todo
o
contedo
do
arquivo
eclipseGalileuAndroid.zip para a unidade C:\.
b. Um diretrio chamado eclipse foi criado na unidade C:\.
c. Entre no diretrio eclipse na unidade C:\ e execute o arquivo
eclipse.exe.
d. Se o Java JDK 6 estiver corretamente instalado no seu computador, o
Eclipse IDE ser executado. Caso haja algum problema relacionado a
isto, reveja o passo 1.

Mini Curso de Android

Pgina 5

Tpico 3

O que o Android SDK (Software Development


Kit)
Android SDK um conjunto de bibliotecas
padro (APIs) e ferramentas para que os
desenvolvedores
possam
se
interagir
e
desenvolver para o sistema Android de maneira
fcil e padronizada. Ela contm alm das classes
bsicas e ferramentas para compilar, depurar e
acompanhar
aplicaes
em
Android,
um
emulador para que as aplicaes possam ser
testadas,
no
prprio
computador
de
desenvolvimento, antes de ser realmente instalado em um dispositivo real. Sem este
kit, impossvel desenvolver aplicaes para o Android; ele o que faz tudo
funcionar.

Instalando o Android SDK e configurando as variveis de ambiente


Para instalar o Android SDK, siga os seguintes passos (considere que os arquivos aqui
citados esto dentro do diretrio softwares deste curso):
1) Descompacte o contedo do arquivo android-sdk-windows-1.5_r3.zip
para a unidade C:\
2) Dever ter sido criado o diretrio android-sdk-windows-1.5_r3 na
unidade C:\
3) Configure as variveis de ambiente do seu sistema:
a. PATH para o contedo de path mais C:\android-sdk-windows1.5_r3\tools
b. Teste o seu ambiente:
i. Abra o prompt de comando (cmd) e digite android, se no der
a mensagem android no reconhecido... por que seu
ambiente est pronto para executar o Eclipse; caso d algum
problema, repita os passos acima.
4) Parabns! Se os passos acima foram corretamente executados, voc est
pronto para comear a criar suas aplicaes para o Android 1.5.

Mini Curso de Android

Pgina 6

Tpico 4

Android Virtual Devices (AVD)


Android Virtual Devices (Dispositivos
Virtuais do Android) um conceito criado a
partir do Android 1.5; ele serve para armazenar
um conjunto de caractersticas, para que o
emulador
possa
simular
exatamente
a
configurao de um dispositivo real.
possvel criar vrias configuraes para
testar a aplicao em vrias circunstncias
diferentes, por exemplo:
Dispositivos com:
a)
b)
c)
d)
e)
f)
g)
h)
i)
j)

Quantidade X de memria
Banda de internet limitada a X kbps/s.
Suporte a imagens 3D
Carto de memria limitado a X Gb
Teclado virtual
Gravador de Video e udio
SMS
Internet G3
Google Maps
Entre muitos outros...

Todas as configuraes podem ser combinadas, para que o teste seja preciso;
pense em AVD como rodar sua aplicao em vrios dispositivos diferentes: uns mais
possantes e outros mais fraquinhos. Isto evita que o desenvolvedor tenha
surpresas depois.

Ateno:
Para executar o emulador, obrigatrio informar um AVD existente.

Criando um novo AVD (Android Virtual Device)


Abra o prompt de comando (cmd) e digite:
a)

android list targets

Mini Curso de Android

Pgina 7

Imagem 01 Comando android list targets

Estas so as plataformas disponveis para o emulador do Android, as


verses anteriores possuem recursos mais limitados.

b) Para criar um AVD, necessrio escolher uma plataforma disponvel


(listadas no passo acima). Como vamos fazer um exemplo utilizando
Google Maps API futuramente, vamos escolher a opo (ID) 3:

Google APIs
a. Digite no prompt de comando:

i. android create avd n CURSO_AVD t 3


b. Se a mensagem Created AVD CURSO_AVD based on Google
APIs (Google Inc.) surgiu no console, parabns. Voc criou
um AVD chamado CURSO_AVD baseado na plataforma 1.5 +
Google Maps com sucesso e j poder executar o emulador do
Android com esta configurao.
c. Se quiser visualizar todos os AVDs criados em seu computador,
basta digitar o comando android list avd e os AVDs sero
listados.

Mini Curso de Android

Pgina 8

Executando o emulador do Android com acesso internet (configuraes de


Proxy)
Agora que j temos tudo configurado
(Java JDK 6, Eclipse Galileo com ADT Plugin
e o Android SDK com um AVD chamado
CURSO_AVD),
vamos
executar
o
emulador do Android, para que possamos
comear a realmente desenvolver nossa
primeira aplicao.
O emulador do Android completo e
carrega todo o sistema, ou seja, carrega o
sistema operacional Linux, as bibliotecas, os
drivers e a mquina virtual Dalvik VM. O
emulador ter a capacidade e as restries
do AVD escolhido. Uma verso mais recente poder executar uma verso anterior de
AVD.

Digite no prompt de comando:

a) emulator avd CURSO_AVD

O emulador ser executado.


Dica: A execuo do emulador bastante demorada pela primeira
vez. Ento, lembre-se: No necessrio fechar o emulador depois.
Deixe-o aberto.
Ateno: Caso voc utilize algum Proxy para acessar a internet, ser necessrio
informar ao emulador o caminho para ele, seno, a internet no funcionar no
emulador.
Para informar o caminho do Proxy, digite o seguinte comando para executar
o emulador:
a) emulator avd CURSO_AVD http-proxy 127.0.0.1:3128
a. Onde 127.0.0.1 deve ser substitudo pelo IP do seu Proxy e
3128 pela porta do seu Proxy.

Mini Curso de Android

Pgina 9

Tpico 5

Configurando o Eclipse IDE para reconhecer o


Android SDK
Falta apenas um passo para podermos desenvolver nossa primeira aplicao em
Android: informar ao plugin ADT dentro do Eclipse onde est o Android SDK.
1)
2)
3)
4)
5)
6)
7)
8)

Abra o Eclipse IDE (C:\eclipse\eclipse.exe)


Selecione o menu Window e Preferences
Selecione no menu esquerdo da tela a opo Android
Na tela Android Preferences, clique no boto Browse para localizar o
diretrio do Android SDK.
Informe o diretrio C:\android-sdk-windows-1.5_r3
Clique em Apply
Surgir uma lista com os Targets disponveis
Selecione a terceira opo: Google APIs e clique em Ok

Imagem 02 Configurao do Local do Android SDK

Mini Curso de Android

Pgina 10

Tpico 6

Criando a primeira aplicao Android (Ol


Mundo)
Chegou o momento de criarmos a nossa primeira aplicao Ol Mundo em
Android. J estamos com tudo configurado e pronto, ento, mos obra!
No Eclipse, faa o seguinte:
1) Clique no menu File -> New e escolha a opo Other...
2) No dilogo Wizards, digite Android na caixa de pesquisa
3) Nas opes que surgiram, selecione Android Project e clique em
Next

Imagem 03 Novo Projeto Android

Mini Curso de Android

Pgina 11

A janela New Android Project que surgiu serve para que voc digite os dados do projeto que
ser criado. Preencha-a da seguinte forma:
Project Name: ProjetoOlaMundo
Build Target: Google APIs
Application name: OlaMundoAndroid
Package name: com.minicursoandroid.olamundoandroid
Create Activity: Principal
Min SDK Version: 3
Clique em Finish

Imagem 04 Preencher os dados do novo Projeto Android

Mini Curso de Android

Pgina 12

Tpico 7

Estrutura bsica de uma aplicao Android


Neste momento j temos a nossa aplicao Ol Mundo criada no Eclipse.
Precisamos verificar a estrutura das aplicaes Android para que saibamos
exatamente aonde colocar cada recurso e o motivo das coisas estarem no lugar em
que esto.
O que uma classe Activity
Uma Atividade uma ao singular que o usurio pode realizar. Quase todas
as atividades interagem com o usurio, ento ela se responsabiliza por criar a janela
na qual voc coloca a interface com o usurio (atravs do mtodo
setContentView(View) ). Geralmente uma Atividade apresentada ao usurio em
fullscreen, mas nada impede que ela seja utilizada de outra maneira, como em telas
flutuantes. Ao criar uma Atividade, sempre precisamos implementar dois mtodos:
onCreate(Bundle) aonde voc inicia sua Atividade e define a UI (com
setContentView(View) e o layout resource ). Assim como voc pode obter os widgets
(elementos de tela) que voc precisar manejar, atravs do mtodo
findViewById(int).
onPause() quando o usurio sai da sua aplicao. neste momento que todas as
informaes
necessrias
devem
ser
persistidas.
importante notar que todas as Atividades devem estar definidas em
AndroidManifest.xml para que seja possvel inicializ-las atravs do mtodo
Context.startActivity().
Diretrio de Recursos
Estes so os diretrios de recrusos dentro de
uma aplicao Android. Todos os recrusos da
aplicao, tais como, textos, imagens, sons, vdeos
etc. Devem obrigatriamente estar dentro deste
diretrio res e em seus respectivos sub-diretrios.
Segue uma explicao detalhada de cada
diretrio:

1) res/drawable/:
Coloque neste diretrio todas as imagens de sua aplicao (imagens de
tela, de botes, cones etc.).
Mini Curso de Android

Pgina 13

2) res/layout/:
Coloque neste diretrio todos os arquivos XML que representam o layout
de uma tela.
3) res/values/:
Coloque neste diretrio todos os recursos relacionados a textos. Um
arquivo com todos os textos da sua aplicao, por exemplo.
A classe R.java
Esta classe o corao do sistema Android. Ela representa, em forma de
atributos Java, todos os recursos da sua aplicao que esto dentro dos diretrios
explicados acima. Ela gerada e atualizada automaticamente e no deve ser editada
manualmente; o Eclipse far isto automaticamente para voc.
Por exemplo, temos dentro do diretrio res/drawable a imagem
icon.png; podemos acess-la de dentro da nossa aplicao Android com a seguinte
expresso: R.drawable.icon, onde R a classe, drawable o diretrio e
icon o nome do recurso. Isto serve para quaisquer recursos presentes dentro dos
diretrios de recursos.
Navegador de Arquivos
O Android um sistema operacional open-source baseado em Linux, ento,
possvel navegar pelo seu HD, navegando entre os diretrios, inserindo e excluindo
aplicaes, colocando arquivos de banco de dados etc.
Para navegar no sistema de arquivos do emulador (certifique-se de que o
emulador esteja em execuo), faa o seguinte no Eclipse:
1) Clique no menu Window -> Open Perspective -> Other...
2) Selecione o item DDMS e clique em Ok
O Eclipse mudar sua perspectiva; com a perspectiva DDMS possvel
monitorar o seu emulador do Android, verificando informaes como Threads,
Heap (espcie de memria da mquina virtual Java), LogCat (central de logs do
Android), File Explorer (um explorador de arquivos que permite navegar e alterar os
arquivos do sistema de arquivos do emulador), entre outras informaes...
Os dados das aplicaes instaladas no Android ficam em seu prprio diretrio
dentro de \data\data\%nomeDoPacote%*\
Os arquivos de banco de dados SQLite (vide tpico 9) ficam dentro do diretrio
da aplicao \data\data\%nomeDoPacote%*\databases\
* substitua %nomeDoPacote% pelo nome do pacote da sua aplicao.

Mini Curso de Android

Pgina 14

Imagem 05 Eclipse IDE com a perspectiva DDMS

Tipos de arquivos do Android


O Android possui os seguintes formatos de arquivos:

.dex
o So os bytecodes das classes Java compiladas.
.apk
o a aplicao Android completa, empacotada, pronta para
ser instalada em um dispositivo mvel. Semelhante a um
arquivo JAR; contm todos os recursos, todos os
arquivos .dex e todos os arquivos de configurao e
identificao necessrios para instalao e execuo da
aplicao Android em um dispositivo mvel compatvel.

O arquivo AndroidManifest.xml
Todas as aplicaes Android devem ter um arquivo AndroidManifest.xml
(exatamente com este nome) no seu diretrio raiz. Ele armazena as informaes
essenciais sobre a aplicao que est sendo desenvolvida. Algumas informaes que
ele armazena so, por exemplo, o nome do pacote da aplicao, componentes,
atividades, servios etc. Ele define tambm as informaes de permisso da aplicao
Android, por exemplo, acesso a internet, acesso a disco etc. Para mais informaes,
consulte este link: http://developer.android.com/guide/topics/manifest/manifest-intro.html

Mini Curso de Android

Pgina 15

Fazendo deploy da aplicao Ol Mundo para o emulador


Agora que j conhecemos a estrutura de uma aplicao Android, vamos voltar a
nossa aplicao Ol Mundo. Primeiramente, vamos alterar a perspectiva do Eclipse
para Java EE; para isto, clique em Window -> Open Perspective ->
Other..., selecione a opo Java EE (default) e clique em Ok.
Para compilarmos a nossa aplicao e fazermos o deploy dela para o emulador,
faa os seguintes passos:
1) Certifique-se de que o emulador est em execuo (vide tpico 4).
2) Clique com o boto esquerdo sobre ProjetoOlaMundo do lado esquerdo
da tela.
3) Selecione a opo Run As e Android Application
A aplicao ser compilada, empacotada e instalada no emulador do Android.
Acompanhe o progresso da operao atravs do Console do Eclipse.
Quando estiver terminado, a aplicao surgir na tela do emulador.

Imagem 06 Fazendo deploy da aplicao Ol Mundo para o emulador

Mini Curso de Android

Pgina 16

Tpico 8

Utilizando os componentes visuais do Android


Ateno: O Android possui muitos componentes
visuais com muitas propriedades e podem ser utilizados de
vrias maneiras. Este mini-curso no tem o objetivo de
demonstrar isto, porm, caso queira aprofundar-se no
assunto,
veja
o
site
oficial:
http://developer.android.com/guide/index.html ... L voc
encontrar todas as referncias e exemplos necessrios.
Mos obra!

Para acessar o layout visual da nossa aplicao Ol Mundo, clique duas vezes
sobre o arquivo layout.xml dentro de res/layout (cada Activity ter o seu
prprio layout); surgir ento o nosso layout dentro do Eclipse e uma aba do lado
esquerdo com os componentes visuais disponveis que podem ser inseridos no nosso
layout.
Criando um novo boto:
Para criar um novo boto, arraste um Button (que est dentro da aba
Views) para debaixo do texto Hello World, Principal!; depois que o boto foi criado,
clique em main.xml ao lado de Layout na parte inferior da tela de modelagem. Um
editor de XML ir surgir com a representao do seu layout.
Nota: Todos os componentes possuem uma
propriedade
chamada
android:id;
ela

extremamente
importante
por
que
define
a
identificao do componente dentro do sistema e a
partir dela que ser possvel interagir com estes
componentes em tempo de execuo do sistema
(atribuir o texto ou pegar o valor do texto digitado,
por exemplo). O mtodo utilizado para obter a
referencia para um componente em tempo de
execuo o findViewById(id) da classe Activity.
Na representao XML do layout, localize dentro do n <Button> a
propriedade @+id/Button1 e mude para @+id/primeiroBotao. Neste momento, j
temos como atribuir funo ao nosso boto, pelo id primeiroBotao.

Mini Curso de Android

Pgina 17

Agora d um duplo clique em Principal.java dentro do pacote src, e copie o


seguinte cdigo (em negrito):
public class Principal extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button botao1 = (Button) findViewById(R.id.primeiroBotao);
botao1.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Toast toast = Toast.makeText(getApplicationContext(),
"Clicou no boto 1 !!!",
Toast.LENGTH_LONG);
toast.show();
}
});
}
}

Este cdigo adiciona uma ao no boto quando ele for clicado; surgir uma
mensagem de alerta (Toast) com a mensagem "Clicou no boto 1 !!!".
Na prtica:
Agora vamos fazer uma mini aplicao para treinar a utilizao dos
conceitos bsicos dos componentes visuais do Android. Vamos agora utilizar
os componentes de texto (EditText) juntamente com botes.

Mini Curso de Android

Pgina 18

Tpico 9

Banco de Dados SQLite com Android


O Android tem suporte nativo a
um banco de dados relacional: O SQLite
(http://www.sqlite.org).
Isto facilita
muito o trabalho de armazenamento e
leitura de dados no dispositivo. Ao
contrrio de JME, o Android permite que
dados sejam armazenados e recuperados da base de dados atravs de comandos
SQL; alm de que a base de dados existe fisicamente, podendo ser copiada do
dispositivo para uma unidade de backup, por exemplo; ou ainda, o banco de dados
pode ser instalado no dispositivo j com os dados pr-carregados etc. Este realmente
um timo e muito til recurso do Android.
Vamos ver (de forma simples e direta) como criar, acessar, gravar e recuperar
dados do banco de dados SQLite na nossa aplicao. O cdigo a seguir faz tudo o que
necessrio (copie o cdigo abaixo para um mtodo e execute-o):
/*
* Atributo para armazenar a referncia para SQLiteDatabase
*/
SQLiteDatabase myDB = null;
/*
* Lista para armazenar os resultados obtidos do banco de dados
*/
List<String> listaRegistros = new ArrayList<String>();
/*
* Atributos para armazenar os nomes do banco de dados e da tabela
*/
String DATABASE_NAME = "BancoOlaMundo";
String TABLE_NAME = "TabelaOlaMundo";
try {
/* obtm a referncia para um banco de dados j existente ou cria
referncia, caso ele no exista. */
myDB =
getApplicationContext().openOrCreateDatabase(DATABASE_NAME,
MODE_PRIVATE,
null);

uma

nova

/* Cria a tabela no Banco de Dados. */


myDB.execSQL("CREATE TABLE IF NOT EXISTS " +
TABLE_NAME +
" (nome VARCHAR, sobrenome VARCHAR, pais VARCHAR, idade INT(3));");
// gravar 10 registros na tabela
for ( int x=1; x<=10; x++ ) {

Mini Curso de Android

Pgina 19

/* variveis para salvar no banco de dados... poderiam ser obtidos de um


EditText,
por exemplo... */
String nome = "Nome " + x;
String sobreNome = "Sobrenome " + x;
String pais = "Pais " + x;
Integer idade = 2*x;
/* Instruo SQL para inserir o registro atual na tabela */
myDB.execSQL("INSERT INTO " +
TABLE_NAME +
" (nome, sobrenome, pais, idade)" +
" VALUES " +
"('" + nome + "', " +
"'" + sobreNome + "', " +
"'"+ pais + "', " +
idade + ");");
}
/* Query para obter os registros de todos os campos da tabela . */
Cursor c = myDB.query(TABLE_NAME,
new String[] {"nome", "sobrenome", "pais", "idade"},
null,
null,
null,
null,
null);
/* se existirem registros... ento processa-os */
if (c != null) {
/* Enquanto existirem registros obtidos e no percorridos... */
while ( ! c.isAfterLast() ) {
/* se for a primeira vez que est acessando o cursor, move-o para o primeiro
registro... */
if ( c.getPosition() == -1 ) {
c.moveToFirst();
}
/* estes mtodos retornam a posio da coluna dentro da query...
servem para obter o valor da coluna... */
int posColunaNome = c.getColumnIndex("nome");
int posColunaSobreNome = c.getColumnIndex("sobrenome");
int posColunaPais = c.getColumnIndex("pais");
int posColunaIdade = c.getColumnIndex("idade");
/*
obter os valores das colunas do cursor...
como em JDBC, os mtodos getString - retornam uma String
getInt - retornam um Int ... etc etc etc...
*/
String nome = c.getString(posColunaNome);
String sobrenome = c.getString(posColunaSobreNome);
String pais = c.getString(posColunaPais);
int idade = c.getInt(posColunaIdade);
// concatenar os dados dos campos em um nico registro formatado
String registroObtido = "Nome: " + nome +
"Sobrenome: " + sobrenome +
"Pas: " + pais +
"Idade: " + idade;

Mini Curso de Android

Pgina 20

/*
Adicionar o registro obtido (formatado) dentro da lista de retorno...
*/
listaRegistros.add(registroObtido);
// mover o cursor para o prximo registro...
c.moveToNext();
}
}
} finally {
// sempre fechar a conexo, caso ela exista
if (myDB != null)
myDB.close();
}

Voc poder tambm, ao invs de criar o banco de dados via cdigo (como no cdigo
acima), utilizar um banco de dados j existente; basta que o banco de dados exista
no diretrio correto (vide tpico 7).

Dica: Por questes de clareza e simplicidade, este


cdigo no seguiu critrios de orientao a objetos, porm,
extremamente recomendvel que seja criado um DTO (Data
Transfer Object) para representar a entidade da tabela de
dados, e a lista resultante no deve ser do tipo <String> e
sim do tipo de dados modelado e tipado.

Informaes aprofundadas sobre acesso a dados SQLite no Android podem ser obtidas
no site oficial:
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
Ento, mos obra!

Mini Curso de Android

Pgina 21

Tpico 10

Utilizando Google Maps com Android


Um recurso muito interessante no Android o suporte ao
Google Maps. O Google Maps um servio acessado atravs da
internet (no instalado no dispositivo), contm mapas do
mundo inteiro e totalmente compatvel com o Android. Para
que o Google Maps funcione no Android, em ambiente de
desenvolvimento, necessrio obter uma chave no site do
Google; o processo simples, fcil e rpido; porm, necessrio
ter uma conta nos servios Google (Gmail, Orkut etc.) e fazer
login. Outro detalhe que a chave vale apenas para um
computador e gerado com base na assinatura digital da
mquina.
A seguir, vamos fazer todos os passos para obteno da
chave e construo de uma aplicao bem simples utilizando o
Google Maps. Depois disso, voc estar apto (saber os
caminhos) para pesquisar e desenvolver suas prprias (e com mais recursos)
aplicaes Google Maps para o Android. As possibilidades so imensas. Ento, mos a
obra!
Obtendo a chave para acessar o servio de mapas
Para poder usar o servio Google Maps, necessrio ter uma chave de
autorizao devidamente gerada no site do Google; esta chave gerada
gratuitamente, basta ter uma conta nos servios do Google (Gmail, Orkut etc) e fazer
o registro.
Esta chave servir para uso em apenas uma mquina por que ela gerada com
base na assinatura digital do emulador do Android, que ser diferente em cada
mquina onde for instalado (e consequentemente em cada dispositivo tambm).
uma maneira de o Google controlar os usurios que utilizam o seu servio e
posteriormente, quem sabe, cobrar por eles.
Para obtermos uma chave, precisamos primeiro obter a assinatura digital da
mquina onde est instalado o emulador do Android. Para isto, siga os passos abaixo:
1) Digite no prompt de comando:
keytool.exe -list -alias androiddebugkey -keystore "%User%*\.android\debug.keystore" -storepass
android -keypass android
* substitua %User% pelo diretrio do usurio logado atual (C:\Users\Rodrigo, por exemplo)

Mini Curso de Android

Pgina 22

Imagem 07 Gerando certificado MD5 para obter a chave do Google Maps

2) Copie o Certificate fingerprint (MD5) gerado para a sua mquina; no caso


acima (8D:89:2E:54:E7:FA:DE:6C:9E:C5:D9:C9:4E:5B:B1:62). Este certificado
diferente para cada mquina, ento, obrigatrio ger-lo em cada mquina
diferente que for utilizar os mapas.
3) De
posse
do
Certificate
fingerprint
(MD5),
entre
http://code.google.com/intl/pt-BR/android/maps-api-signup.html;

no

site

4) No site, leia os termos da licena e se concordar, marque a opo que


est de acordo, cole o certificado obtido na caixa My certificates... e clique
na opo Generate API Key

Imagem 08 Solicitando a chave do Google Maps API

Mini Curso de Android

Pgina 23

5) Ser solicitado que voc faa login no Google, ento, voc deve ter uma conta
ou seno voc poder cri-la neste momento. Faa o login.
6) Sua chave ser gerada e exibida pra voc na tela, com um exemplo de como
utilizar o componente MapView para exibir o mapa.

Imagem 09 Chave do Google Maps API gerada

Pronto, voc j est preparado para comear a desenvolver aplicaes utilizando o


Google Maps API no Android.
Para informaes mais detalhadas sobre este processo, por favor, verifique a
documentao
oficial:
http://developer.android.com/guide/tutorials/views/hellomapview.html;
Ento, mos a obra!

Construindo uma aplicao simples


Acessar o servio Google Maps no Android extremamente simples, basta
utilizar o componente MapView. Vamos fazer uma pequena aplicao para vermos
como isso funciona na prtica.
1) Crie um novo Projeto Android baseado no Google Maps API (vide tpico 6) e
use os seguintes nomes:

Mini Curso de Android

Pgina 24

Project Name: ProjetoMapaSimples


Build Target: Google APIs
Application name: MapaSimplesAndroid
Package name: com.minicursoandroid.mapasimples
Create Activity: Principal
Min SDK Version: 3

2) Clique em Finish
3) Para que nossa aplicao funcione corretamente, precisamos importar a
biblioteca (API) do Google Maps e informar ao Android que ela ter
permisso para acessar a internet, para isto, abra o arquivo
AndroidManifest.xml:
Insira:
<uses-library android:name="com.google.android.maps" />
Dentro da tag <application>
Insira:
<uses-permission android:name="android.permission.INTERNET" />
Depois da tag <application>

Dica: Para saber mais sobre as tags de permisso, acesse este link:
http://developer.android.com/reference/android/Manifest.permission.html

Imagem 10 Arquivo AndroidManifest.xml permitindo acesso internet e importando


a biblioteca da API do Google Maps

Mini Curso de Android

Pgina 25

4) Abra o arquivo res/layout/main.xml e substitua todo o seu contedo


por este:

<?xml version="1.0" encoding="utf-8"?>


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<com.google.android.maps.MapView
android:id="@+id/mapView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:enabled="true"
android:clickable="true"
android:apiKey="0B0-L7d2MIQm2lx81czA67LoDbg-m0qDjH0iqXA"
/>
</RelativeLayout>

Fazendo isto, estamos criando a tag MapView, responsvel por exibir e


renderizar o mapa dentro do Android.
5) Mude o valor da tag: android:apiKey=0B... pelo valor que voc obteve no
site do Google e salve as alteraes.
6) Abra o arquivo Principal.java
7) A classe Principal.java estende Activity, mude para MapActivity
8) Substitua todo o valor do mtodo OnCreate(...) por este:
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
MapView mapa = (MapView) findViewById(R.id.mapView);
mapa.displayZoomControls(true);

9) Crie o seguinte mtodo:


@Override
protected boolean isRouteDisplayed() {
return false;
}

10)
11)

Salve as alteraes e faa deploy da aplicao para o emulador.


Parabns! Sua primeira aplicao de mapas est pronta!

Se quiser se aprofundar mais no desenvolvimento de aplicao utilizando Google Maps


no Android, no deixe de ver este link:
http://code.google.com/intl/pt-BR/android/add-ons/google-pis/reference/com/google/android/maps/MapActivity.html

Ento, mos obra!

Mini Curso de Android

Pgina 26

Tpico 11

Referncias e leituras recomendadas


Referncias Online:
Documentao oficial do Android:
http://developer.android.com/sdk/android-1.5.html
http://developer.android.com/guide/index.html
http://developer.android.com/reference/packages.html
http://developer.android.com/intl/en/community/index.html

Portal em portugus sobre Android (local da comunidade Android):


http://www.portalandroid.org/

Livros:
Google Android: Aprenda a Criar Aplicaes Para Dispositivos Mveis
Ricardo R. Lecheta
Android Essentials
Chris Haseman

Mini Curso de Android

Pgina 27

Você também pode gostar