Escolar Documentos
Profissional Documentos
Cultura Documentos
rodrigo.lopes.ferreira@hotmail.com
www.discover.com.br
Tópicos Abordados:
1) O que é Android 02
2) O que é Android Development Tools (ADT) 04
a. Instalando Eclipse Galileo com ADT Plugin 04
3) O que é o Android SDK (Software Development Kit) 06
a. Instalando o Android SDK e configurando as variáveis de ambiente 06
4) Android Virtual Devices (AVD) 07
a. Criando um novo AVD 07
b. Executando o emulador do Android com acesso à internet 09
(configurações de Proxy)
5) Configurando o Eclipse IDE para reconhecer o Android SDK 10
6) Criando a primeira aplicação Android (Olá Mundo) 11
7) Estrutura básica de uma aplicação Android 13
a. O que é uma classe “Activity” 13
b. Diretórios 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 aplicação “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 serviço de mapas 22
b. Construindo uma aplicação simples 24
11) Referências e leituras recomendadas 27
O que é Android
A maior diferença entre Android e JME (Java Micro Edition), além dos recursos e
de sua época, é claro, é que o Android não é uma aplicação que roda sobre o sistema
operacional do dispositivo móvel; ele é o próprio sistema operacional, então, as
aplicações desenvolvidas para o Android só rodam em dispositivos equipados com o
sistema operacional Android, não podendo ser instaladas/executadas em nenhuma
outra plataforma.
d) Provê um editor de código fonte que lhe ajuda a escrever arquivos XMLs
válidos para os arquivos de configuração e recursos do Android.
Para instalar o Eclipse Galileu, siga os seguintes passos (considere que os arquivos
aqui citados estão dentro do diretório “softwares” deste curso):
Para instalar o Android SDK, siga os seguintes passos (considere que os arquivos aqui
citados estão dentro do diretório “softwares” deste curso):
Dispositivos com:
a) Quantidade X de memória
b) Banda de internet limitada a X kbps/s.
c) Suporte a imagens 3D
d) Cartão de memória limitado a X Gb
e) Teclado virtual
f) Gravador de Video e Áudio
g) SMS
h) Internet G3
i) Google Maps
j) Entre muitos outros...
Todas as configurações podem ser combinadas, para que o teste seja preciso;
pense em AVD como rodar sua aplicação em vários dispositivos diferentes: uns mais
“possantes” e outros mais “fraquinhos”. Isto evita que o desenvolvedor tenha
surpresas depois.
Atenção:
Atenção: Caso você utilize algum Proxy para acessar a internet, será necessário
informar ao emulador o caminho para ele, senão, a internet não funcionará no
emulador.
Clique em “Finish”
Uma Atividade é uma ação singular que o usuário pode realizar. Quase todas
as atividades interagem com o usuário, então ela se responsabiliza por criar a janela
na qual você coloca a interface com o usuário (através do método
setContentView(View) ). Geralmente uma Atividade é apresentada ao usuário em
fullscreen, mas nada impede que ela seja utilizada de outra maneira, como em telas
flutuantes. Ao criar uma Atividade, sempre precisamos implementar dois métodos:
onPause() – É quando o usuário sai da sua aplicação. É neste momento que todas as
informações necessárias devem ser persistidas.
Diretório de Recursos
1) res/drawable/:
Coloque neste diretório todas as imagens de sua aplicação (imagens de
tela, de botões, ícones etc.).
A classe “R.java”
Navegador de Arquivos
• .dex
o São os bytecodes das classes Java compiladas.
• .apk
o É a aplicação Android completa, empacotada, pronta para
ser instalada em um dispositivo móvel. Semelhante a um
arquivo JAR; contém todos os recursos, todos os
arquivos .dex e todos os arquivos de configuração e
identificação necessários para instalação e execução da
aplicação Android em um dispositivo móvel compatível.
O arquivo “AndroidManifest.xml”
Para acessar o layout visual da nossa aplicação “Olá Mundo”, clique duas vezes
sobre o arquivo “layout.xml” dentro de “res/layout” (cada Activity terá o seu
próprio layout); surgirá então o nosso layout dentro do Eclipse e uma aba do lado
esquerdo com os componentes visuais disponíveis que podem ser inseridos no nosso
layout.
Para criar um novo botão, arraste um “Button” (que está dentro da aba
“Views”) para debaixo do texto “Hello World, Principal!”; depois que o botão 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 representação do seu layout.
});
}
}
Este código adiciona uma ação no botão quando ele for clicado; surgirá uma
mensagem de alerta (Toast) com a mensagem "Clicou no botão 1 !!!".
Na prática:
Agora vamos fazer uma mini aplicação para treinar a utilização dos
conceitos básicos dos componentes visuais do Android. Vamos agora utilizar
os componentes de texto (EditText) juntamente com botões.
Vamos ver (de forma simples e direta) como criar, acessar, gravar e recuperar
dados do banco de dados SQLite na nossa aplicação. O código a seguir faz tudo o que
é necessário (copie o código abaixo para um método e execute-o):
/*
* Atributo para armazenar a referência 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 {
/* se for a primeira vez que está acessando o cursor, move-o para o primeiro
registro... */
if ( c.getPosition() == -1 ) {
c.moveToFirst();
}
/*
obter os valores das colunas do cursor...
como em JDBC, os métodos 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);
}
}
} finally {
Você poderá também, ao invés de criar o banco de dados via código (como no código
acima), utilizar um banco de dados já existente; basta que o banco de dados exista
no diretório correto (vide tópico 7).
Informações aprofundadas sobre acesso a dados SQLite no Android podem ser obtidas
no site oficial:
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html
Para poder usar o serviço Google Maps, é necessário ter uma chave de
autorização devidamente gerada no site do Google; esta chave é gerada
gratuitamente, basta ter uma conta nos serviços do Google (Gmail, Orkut etc) e fazer
o registro.
Esta chave servirá para uso em apenas uma máquina por que ela é gerada com
base na assinatura digital do emulador do Android, que será diferente em cada
máquina onde for instalado (e consequentemente em cada dispositivo também). É
uma maneira de o Google controlar os usuários que utilizam o seu serviço e
posteriormente, quem sabe, cobrar por eles.
* substitua “%User%” pelo diretório do usuário logado atual (C:\Users\Rodrigo, por exemplo)
6) Sua chave será gerada e exibida pra você na tela, com um exemplo de como
utilizar o componente “MapView” para exibir o mapa.
Para informações mais detalhadas sobre este processo, por favor, verifique a
documentação oficial: http://developer.android.com/guide/tutorials/views/hello-
mapview.html;
1) Crie um novo Projeto Android baseado no Google Maps API (vide tópico 6) e
use os seguintes nomes:
2) Clique em “Finish”
3) Para que nossa aplicação funcione corretamente, precisamos importar a
biblioteca (API) do Google Maps e informar ao Android que ela terá
permissão 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 permissão, acesse este link:
http://developer.android.com/reference/android/Manifest.permission.html
<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>
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
@Override
protected boolean isRouteDisplayed() {
return false;
}
Referências Online:
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
http://www.portalandroid.org/
Livros:
Android Essentials
Chris Haseman