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 2) O que Android Development Tools (ADT) 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) a. Criando um novo AVD b. Executando o emulador do Android com acesso internet (configuraes de Proxy) 5) Configurando o Eclipse IDE para reconhecer o Android SDK 6) Criando a primeira aplicao Android (Ol Mundo) 7) Estrutura bsica de uma aplicao Android a. O que uma classe Activity b. Diretrios de recursos c. A classe R.java d. Navegador de Arquivos e. Tipos de arquivos do Android f. O arquivo AndroidManifest.xml g. Fazendo deploy da aplicao Ol Mundo para o emulador 8) Utilizando os componentes visuais do Android 9) Banco de Dados SQLite com Android 10) Utilizando Google Maps com Android a. Obtendo a chave para acessar o servio de mapas b. Construindo uma aplicao simples 11) Referncias e leituras recomendadas 02 04 04 06 06 07 07 09 10 11 13 13 13 14 14 15 15 16 17 19 22 22 24 27

Mini Curso de Android

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. Ento, mos a obra! sobre Android em seu site oficial:

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