12.07.2015 Views

Usando SQLite e Maps - PET Sistemas de Informação

Usando SQLite e Maps - PET Sistemas de Informação

Usando SQLite e Maps - PET Sistemas de Informação

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Nota: Para este mini-curso, estamos disponibilizandoo Eclipse Galileu (3.5) já com Android ADT Pluginconfigurado. Porém, caso queira fazê-lo você mesmo,veja este link com as instruções:http://<strong>de</strong>veloper.android.com/sdk/eclipseadt.html#installingPara instalar o Eclipse Galileu, siga os seguintes passos (consi<strong>de</strong>re que os arquivosaqui citados estão <strong>de</strong>ntro do diretório “softwares” <strong>de</strong>ste curso):1) Para executar o Eclipse IDE, será necessário ter o pacote <strong>de</strong><strong>de</strong>senvolvimento Java (Java JDK 6):a. Execute o arquivo “jdk-6u6-windows-i586-p.exe” e prossiga até ofinal. Este processo irá instalar o Java 6 Development Kit (pacotenecessário para <strong>de</strong>senvolver e compilar aplicações em Java).b. Configure as variáveis <strong>de</strong> ambiente do seu sistema:i. “JAVA_HOME” para a pasta “C:\Arquivos <strong>de</strong>Programas\Java\jdk1.6.0_11\"ii. “PATH” para o conteúdo <strong>de</strong> “path” mais “C:\Arquivos <strong>de</strong>Programas\Java\jdk1.6.0_11\bin”c. Teste o seu ambiente:i. Abra o prompt <strong>de</strong> comando (cmd) e digite “java”, se não <strong>de</strong>r amensagem “java não é reconhecido...” é por que seu ambienteestá 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 conteúdo do arquivo“eclipseGalileuAndroid.zip” para a unida<strong>de</strong> “C:\”.b. Um diretório chamado “eclipse” foi criado na unida<strong>de</strong> “C:\”.c. Entre no diretório “eclipse” na unida<strong>de</strong> “C:\” e execute o arquivo“eclipse.exe”.d. Se o Java JDK 6 estiver corretamente instalado no seu computador, oEclipse IDE será executado. Caso haja algum problema relacionado aisto, reveja o passo 1.Mini Curso <strong>de</strong> Android Página 5


Tópico 3O que é o Android SDK (Software DevelopmentKit)Android SDK é um conjunto <strong>de</strong> bibliotecaspadrão (APIs) e ferramentas para que os<strong>de</strong>senvolvedores possam se interagir e<strong>de</strong>senvolver para o sistema Android <strong>de</strong> maneirafácil e padronizada. Ela contém além das classesbásicas e ferramentas para compilar, <strong>de</strong>purar eacompanhar aplicações em Android, umemulador para que as aplicações possam sertestadas, no próprio computador <strong>de</strong><strong>de</strong>senvolvimento, antes <strong>de</strong> ser realmente instalado em um dispositivo real. Sem estekit, é impossível <strong>de</strong>senvolver aplicações para o Android; ele é o que faz tudofuncionar.Instalando o Android SDK e configurando as variáveis <strong>de</strong> ambientePara instalar o Android SDK, siga os seguintes passos (consi<strong>de</strong>re que os arquivos aquicitados estão <strong>de</strong>ntro do diretório “softwares” <strong>de</strong>ste curso):1) Descompacte o conteúdo do arquivo “android-sdk-windows-1.5_r3.zip”para a unida<strong>de</strong> “C:\”2) Deverá ter sido criado o diretório “android-sdk-windows-1.5_r3” naunida<strong>de</strong> “C:\”3) Configure as variáveis <strong>de</strong> ambiente do seu sistema:a. “PATH” para o conteúdo <strong>de</strong> “path” mais “C:\android-sdk-windows-1.5_r3\tools”b. Teste o seu ambiente:i. Abra o prompt <strong>de</strong> comando (cmd) e digite “android”, se não <strong>de</strong>ra mensagem “android não é reconhecido...” é por que seuambiente está pronto para executar o Eclipse; caso dê algumproblema, repita os passos acima.4) Parabéns! Se os passos acima foram corretamente executados, você estápronto para começar a criar suas aplicações para o Android 1.5.Mini Curso <strong>de</strong> Android Página 6


Tópico 4Android Virtual Devices (AVD)Android Virtual Devices (DispositivosVirtuais do Android) é um conceito criado apartir do Android 1.5; ele serve para armazenarum conjunto <strong>de</strong> características, para que oemulador possa simular exatamente aconfiguração <strong>de</strong> um dispositivo real.É possível criar várias configurações paratestar a aplicação em várias circunstânciasdiferentes, por exemplo:Dispositivos com:a) Quantida<strong>de</strong> X <strong>de</strong> memóriab) Banda <strong>de</strong> internet limitada a X kbps/s.c) Suporte a imagens 3Dd) Cartão <strong>de</strong> memória limitado a X Gbe) Teclado virtualf) Gravador <strong>de</strong> Vi<strong>de</strong>o e Áudiog) SMSh) Internet G3i) Google <strong>Maps</strong>j) Entre muitos outros...Todas as configurações po<strong>de</strong>m 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 <strong>de</strong>senvolvedor tenhasurpresas <strong>de</strong>pois.Atenção:Para executar o emulador, é obrigatório informar um AVD existente.Criando um novo AVD (Android Virtual Device)Abra o “prompt <strong>de</strong> comando (cmd)” e digite:a) android list targetsMini Curso <strong>de</strong> Android Página 7


Imagem 01 – “ Comando ‘android list targets’ ”Estas são as plataformas disponíveis para o emulador do Android, asversões anteriores possuem recursos mais limitados.b) Para criar um AVD, é necessário escolher uma plataforma disponível(listadas no passo acima). Como vamos fazer um exemplo utilizandoGoogle <strong>Maps</strong> API futuramente, vamos escolher a opção (ID) 3:Google APIsa. Digite no prompt <strong>de</strong> comando:i. android create avd –n CURSO_AVD –t 3b. Se a mensagem “Created AVD ‘CURSO_AVD’ based on GoogleAPIs (Google Inc.)” surgiu no console, parabéns. Você criouum AVD chamado “CURSO_AVD” baseado na plataforma 1.5 +Google <strong>Maps</strong> com sucesso e já po<strong>de</strong>rá executar o emulador doAndroid com esta configuração.c. Se quiser visualizar todos os AVDs criados em seu computador,basta digitar o comando “android list avd” e os AVDs serãolistados.Mini Curso <strong>de</strong> Android Página 8


Executando o emulador do Android com acesso à internet (configurações <strong>de</strong>Proxy)Agora que já temos tudo configurado(Java JDK 6, Eclipse Galileo com ADT Plugine o Android SDK com um AVD chamado“CURSO_AVD”), vamos executar oemulador do Android, para que possamoscomeçar a realmente <strong>de</strong>senvolver nossaprimeira aplicação.O emulador do Android é completo ecarrega todo o sistema, ou seja, carrega osistema operacional Linux, as bibliotecas, osdrivers e a máquina virtual Dalvik VM. Oemulador terá a capacida<strong>de</strong> e as restriçõesdo AVD escolhido. Uma versão mais recente po<strong>de</strong>rá executar uma versão anterior <strong>de</strong>AVD.Digite no prompt <strong>de</strong> comando:a) emulator –avd CURSO_AVDO emulador será executado.Dica: A execução do emulador é bastante <strong>de</strong>morada pela primeiravez. Então, lembre-se: Não é necessário fechar o emulador <strong>de</strong>pois.Deixe-o aberto.Atenção: Caso você utilize algum Proxy para acessar a internet, será necessárioinformar ao emulador o caminho para ele, senão, a internet não funcionará noemulador.Para informar o caminho do Proxy, digite o seguinte comando para executaro emulador:a) emulator –avd CURSO_AVD –http-proxy 127.0.0.1:3128a. On<strong>de</strong> “127.0.0.1” <strong>de</strong>ve ser substituído pelo IP do seu Proxy e“3128” pela porta do seu Proxy.Mini Curso <strong>de</strong> Android Página 9


Tópico 5Configurando o Eclipse IDE para reconhecer oAndroid SDKFalta apenas um passo para po<strong>de</strong>rmos <strong>de</strong>senvolver nossa primeira aplicação emAndroid: informar ao plugin ADT <strong>de</strong>ntro do Eclipse on<strong>de</strong> está o Android SDK.1) Abra o Eclipse IDE (C:\eclipse\eclipse.exe)2) Selecione o menu “Window” e “Preferences”3) Selecione no menu esquerdo da tela a opção “Android”4) Na tela “Android Preferences”, clique no botão “Browse” para localizar odiretório do Android SDK.5) Informe o diretório “C:\android-sdk-windows-1.5_r3”6) Clique em “Apply”7) Surgirá uma lista com os “Targets” disponíveis8) Selecione a terceira opção: “Google APIs” e clique em “Ok”Imagem 02 – “Configuração do Local do Android SDK”Mini Curso <strong>de</strong> Android Página 10


Tópico 6Criando a primeira aplicação Android (OláMundo)Chegou o momento <strong>de</strong> criarmos a nossa primeira aplicação “Olá Mundo” emAndroid. Já estamos com tudo configurado e pronto, então, mãos à obra!No Eclipse, faça o seguinte:1) Clique no menu “File” -> “New” e escolha a opção “Other...”2) No diálogo “Wizards”, digite “Android” na caixa <strong>de</strong> pesquisa3) Nas opções que surgiram, selecione “Android Project” e clique em“Next”Imagem 03 – “Novo Projeto Android”Mini Curso <strong>de</strong> Android Página 11


A janela “New Android Project” que surgiu serve para que você digite os dados do projeto queserá criado. Preencha-a da seguinte forma:Project Name: ProjetoOlaMundoBuild Target: Google APIsApplication name: OlaMundoAndroidPackage name: com.minicursoandroid.olamundoandroidCreate Activity: PrincipalMin SDK Version: 3Clique em “Finish”Imagem 04 – “Preencher os dados do novo Projeto Android”Mini Curso <strong>de</strong> Android Página 12


Tópico 7Estrutura básica <strong>de</strong> uma aplicação AndroidNeste momento já temos a nossa aplicação “Olá Mundo” criada no Eclipse.Precisamos verificar a estrutura das aplicações Android para que saibamosexatamente aon<strong>de</strong> colocar cada recurso e o motivo das coisas estarem no lugar emque estão.O que é uma classe “Activity”Uma Ativida<strong>de</strong> é uma ação singular que o usuário po<strong>de</strong> realizar. Quase todasas ativida<strong>de</strong>s interagem com o usuário, então ela se responsabiliza por criar a janelana qual você coloca a interface com o usuário (através do métodosetContentView(View) ). Geralmente uma Ativida<strong>de</strong> é apresentada ao usuário emfullscreen, mas nada impe<strong>de</strong> que ela seja utilizada <strong>de</strong> outra maneira, como em telasflutuantes. Ao criar uma Ativida<strong>de</strong>, sempre precisamos implementar dois métodos:onCreate(Bundle) – É aon<strong>de</strong> você inicia sua Ativida<strong>de</strong> e <strong>de</strong>fine a UI (comsetContentView(View) e o layout resource ). Assim como você po<strong>de</strong> obter os widgets(elementos <strong>de</strong> tela) que você precisará manejar, através do métodofindViewById(int).onPause() – É quando o usuário sai da sua aplicação. É neste momento que todas asinformações necessárias <strong>de</strong>vem ser persistidas.É importante notar que todas as Ativida<strong>de</strong>s <strong>de</strong>vem estar <strong>de</strong>finidas emAndroidManifest.xml para que seja possível inicializá-las através do métodoContext.startActivity().Diretório <strong>de</strong> RecursosEstes são os diretórios <strong>de</strong> recrusos <strong>de</strong>ntro <strong>de</strong>uma aplicação Android. Todos os recrusos daaplicação, tais como, textos, imagens, sons, ví<strong>de</strong>osetc. Devem obrigatóriamente estar <strong>de</strong>ntro <strong>de</strong>stediretório “res” e em seus respectivos sub-diretórios.Segue uma explicação <strong>de</strong>talhada <strong>de</strong> cadadiretório:1) res/drawable/:Coloque neste diretório todas as imagens <strong>de</strong> sua aplicação (imagens <strong>de</strong>tela, <strong>de</strong> botões, ícones etc.).Mini Curso <strong>de</strong> Android Página 13


2) res/layout/:Coloque neste diretório todos os arquivos XML que representam o layout<strong>de</strong> uma tela.3) res/values/:Coloque neste diretório todos os recursos relacionados a textos. Umarquivo com todos os textos da sua aplicação, por exemplo.A classe “R.java”Esta classe é o “coração” do sistema Android. Ela representa, em forma <strong>de</strong>atributos Java, todos os recursos da sua aplicação que estão <strong>de</strong>ntro dos diretóriosexplicados acima. Ela é gerada e atualizada automaticamente e não <strong>de</strong>ve ser editadamanualmente; o Eclipse fará isto automaticamente para você.Por exemplo, temos <strong>de</strong>ntro do diretório “res/drawable” a imagem“icon.png”; po<strong>de</strong>mos acessá-la <strong>de</strong> <strong>de</strong>ntro da nossa aplicação Android com a seguinteexpressão: ‘R.drawable.icon’, on<strong>de</strong> “R” é a classe, “drawable” é o diretório e“icon” é o nome do recurso. Isto serve para quaisquer recursos presentes <strong>de</strong>ntro dosdiretórios <strong>de</strong> recursos.Navegador <strong>de</strong> ArquivosO Android é um sistema operacional open-source baseado em Linux, então, épossível navegar pelo seu “HD”, navegando entre os diretórios, inserindo e excluindoaplicações, colocando arquivos <strong>de</strong> banco <strong>de</strong> dados etc.Para navegar no sistema <strong>de</strong> arquivos do emulador (certifique-se <strong>de</strong> que oemulador esteja em execução), faça 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” é possívelmonitorar o seu emulador do Android, verificando informações como “Threads”,“Heap” (espécie <strong>de</strong> memória da máquina virtual Java), “LogCat” (central <strong>de</strong> logs doAndroid), File Explorer (um explorador <strong>de</strong> arquivos que permite navegar e alterar osarquivos do sistema <strong>de</strong> arquivos do emulador), entre outras informações...Os dados das aplicações instaladas no Android ficam em seu próprio diretório<strong>de</strong>ntro <strong>de</strong> “\data\data\%nomeDoPacote%*\Os arquivos <strong>de</strong> banco <strong>de</strong> dados <strong>SQLite</strong> (vi<strong>de</strong> tópico 9) ficam <strong>de</strong>ntro do diretórioda aplicação “\data\data\%nomeDoPacote%*\databases\”* substitua “%nomeDoPacote% pelo nome do pacote da sua aplicação.Mini Curso <strong>de</strong> Android Página 14


Imagem 05 – “Eclipse IDE com a perspectiva DDMS”Tipos <strong>de</strong> arquivos do AndroidO Android possui os seguintes formatos <strong>de</strong> arquivos:• .<strong>de</strong>xo• .apkoSão os byteco<strong>de</strong>s das classes Java compiladas.É a aplicação Android completa, empacotada, pronta paraser instalada em um dispositivo móvel. Semelhante a umarquivo JAR; contém todos os recursos, todos osarquivos .<strong>de</strong>x e todos os arquivos <strong>de</strong> configuração ei<strong>de</strong>ntificação necessários para instalação e execução daaplicação Android em um dispositivo móvel compatível.O arquivo “AndroidManifest.xml”Todas as aplicações Android <strong>de</strong>vem ter um arquivo AndroidManifest.xml(exatamente com este nome) no seu diretório raiz. Ele armazena as informaçõesessenciais sobre a aplicação que está sendo <strong>de</strong>senvolvida. Algumas informações queele armazena são, por exemplo, o nome do pacote da aplicação, componentes,ativida<strong>de</strong>s, serviços etc. Ele <strong>de</strong>fine também as informações <strong>de</strong> permissão da aplicaçãoAndroid, por exemplo, acesso a internet, acesso a disco etc. Para mais informações,consulte este link: http://<strong>de</strong>veloper.android.com/gui<strong>de</strong>/topics/manifest/manifest-intro.htmlMini Curso <strong>de</strong> Android Página 15


Fazendo <strong>de</strong>ploy da aplicação “Olá Mundo” para o emuladorAgora que já conhecemos a estrutura <strong>de</strong> uma aplicação Android, vamos voltar anossa aplicação “Olá Mundo”. Primeiramente, vamos alterar a perspectiva do Eclipsepara “Java EE”; para isto, clique em “Window” -> “Open Perspective” ->“Other...”, selecione a opção “Java EE (<strong>de</strong>fault)” e clique em “Ok”.Para compilarmos a nossa aplicação e fazermos o <strong>de</strong>ploy <strong>de</strong>la para o emulador,faça os seguintes passos:1) Certifique-se <strong>de</strong> que o emulador está em execução (vi<strong>de</strong> tópico 4).2) Clique com o botão esquerdo sobre “ProjetoOlaMundo” do lado esquerdoda tela.3) Selecione a opção “Run As” e “Android Application”A aplicação será compilada, empacotada e instalada no emulador do Android.Acompanhe o progresso da operação através do Console do Eclipse.Quando estiver terminado, a aplicação surgirá na tela do emulador.Imagem 06 – “Fazendo <strong>de</strong>ploy da aplicação “Olá Mundo” para o emulador”Mini Curso <strong>de</strong> Android Página 16


Tópico 8Utilizando os componentes visuais do AndroidAtenção: O Android possui muitos componentesvisuais com muitas proprieda<strong>de</strong>s e po<strong>de</strong>m ser utilizados <strong>de</strong>várias maneiras. Este mini-curso não tem o objetivo <strong>de</strong><strong>de</strong>monstrar isto, porém, caso queira aprofundar-se noassunto, veja o site oficial:http://<strong>de</strong>veloper.android.com/gui<strong>de</strong>/in<strong>de</strong>x.html ... Lá vocêencontrará todas as referências e exemplos necessários.Mãos à obra!Para acessar o layout visual da nossa aplicação “Olá Mundo”, clique duas vezessobre o arquivo “layout.xml” <strong>de</strong>ntro <strong>de</strong> “res/layout” (cada Activity terá o seupróprio layout); surgirá então o nosso layout <strong>de</strong>ntro do Eclipse e uma aba do ladoesquerdo com os componentes visuais disponíveis que po<strong>de</strong>m ser inseridos no nossolayout.Criando um novo botão:Para criar um novo botão, arraste um “Button” (que está <strong>de</strong>ntro da aba“Views”) para <strong>de</strong>baixo do texto “Hello World, Principal!”; <strong>de</strong>pois que o botão foi criado,clique em “main.xml” ao lado <strong>de</strong> “Layout” na parte inferior da tela <strong>de</strong> mo<strong>de</strong>lagem. Umeditor <strong>de</strong> XML irá surgir com a representação do seu layout.Nota: Todos os componentes possuem umaproprieda<strong>de</strong> chamada “android:id”; ela éextremamente importante por que <strong>de</strong>fine ai<strong>de</strong>ntificação do componente <strong>de</strong>ntro do sistema e é apartir <strong>de</strong>la que será possível interagir com estescomponentes em tempo <strong>de</strong> execução do sistema(atribuir o texto ou pegar o valor do texto digitado,por exemplo). O método utilizado para obter areferencia para um componente em tempo <strong>de</strong>execução é o “findViewById(id) da classe Activity”.Na representação XML do layout, localize <strong>de</strong>ntro do nó “” aproprieda<strong>de</strong> “@+id/Button1” e mu<strong>de</strong> para “@+id/primeiroBotao”. Neste momento, játemos como atribuir função ao nosso botão, pelo id “primeiroBotao”.Mini Curso <strong>de</strong> Android Página 17


Agora dê um duplo clique em “Principal.java” <strong>de</strong>ntro do pacote “src”, e copie oseguinte código (em negrito):public class Principal extends Activity {/** Called when the activity is first created. */@Overri<strong>de</strong>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 botão 1 !!!",Toast.LENGTH_LONG);toast.show();}}}Este código adiciona uma ação no botão quando ele for clicado; surgirá umamensagem <strong>de</strong> 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 dosconceitos básicos dos componentes visuais do Android. Vamos agora utilizaros componentes <strong>de</strong> texto (EditText) juntamente com botões.Mini Curso <strong>de</strong> Android Página 18


Tópico 9Banco <strong>de</strong> Dados <strong>SQLite</strong> com AndroidO Android tem suporte nativo aum banco <strong>de</strong> dados relacional: O <strong>SQLite</strong>(http://www.sqlite.org). Isto facilitamuito o trabalho <strong>de</strong> armazenamento eleitura <strong>de</strong> dados no dispositivo. Aocontrário <strong>de</strong> JME, o Android permite quedados sejam armazenados e recuperados da base <strong>de</strong> dados através <strong>de</strong> comandosSQL; além <strong>de</strong> que a base <strong>de</strong> dados existe fisicamente, po<strong>de</strong>ndo ser copiada dodispositivo para uma unida<strong>de</strong> <strong>de</strong> backup, por exemplo; ou ainda, o banco <strong>de</strong> dadospo<strong>de</strong> ser instalado no dispositivo já com os dados pré-carregados etc. Este realmenteé um ótimo e muito útil recurso do Android.Vamos ver (<strong>de</strong> forma simples e direta) como criar, acessar, gravar e recuperardados do banco <strong>de</strong> dados <strong>SQLite</strong> 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 <strong>SQLite</strong>Database*/<strong>SQLite</strong>Database myDB = null;/** Lista para armazenar os resultados obtidos do banco <strong>de</strong> dados*/List listaRegistros = new ArrayList();/** Atributos para armazenar os nomes do banco <strong>de</strong> dados e da tabela*/String DATABASE_NAME = "BancoOlaMundo";String TABLE_NAME = "TabelaOlaMundo";try {/* obtém a referência para um banco <strong>de</strong> dados já existente ou cria uma novareferência, caso ele não exista. */myDB =getApplicationContext().openOrCreateDatabase(DATABASE_NAME,MODE_PRIVATE,null);/* Cria a tabela no Banco <strong>de</strong> Dados. */myDB.execSQL("CREATE TABLE IF NOT EXISTS " +TABLE_NAME +" (nome VARCHAR, sobrenome VARCHAR, pais VARCHAR, ida<strong>de</strong> INT(3));");// gravar 10 registros na tabelafor ( int x=1; x


* variáveis para salvar no banco <strong>de</strong> dados... po<strong>de</strong>riam ser obtidos <strong>de</strong> umEditText, por exemplo... */String nome = "Nome " + x;String sobreNome = "Sobrenome " + x;String pais = "Pais " + x;Integer ida<strong>de</strong> = 2*x;/* Instrução SQL para inserir o registro atual na tabela */myDB.execSQL("INSERT INTO " +TABLE_NAME +" (nome, sobrenome, pais, ida<strong>de</strong>)" +" VALUES " +"('" + nome + "', " +"'" + sobreNome + "', " +"'"+ pais + "', " +ida<strong>de</strong> + ");");}/* Query para obter os registros <strong>de</strong> todos os campos da tabela . */Cursor c = myDB.query(TABLE_NAME,new String[] {"nome", "sobrenome", "pais", "ida<strong>de</strong>"},null,null,null,null,null);/* se existirem registros... então processa-os */if (c != null) {/* Enquanto existirem registros obtidos e não percorridos... */while ( ! c.isAfterLast() ) {/* se for a primeira vez que está acessando o cursor, move-o para o primeiroregistro... */if ( c.getPosition() == -1 ) {c.moveToFirst();}/* estes métodos retornam a posição da coluna <strong>de</strong>ntro da query...servem para obter o valor da coluna... */int posColunaNome = c.getColumnIn<strong>de</strong>x("nome");int posColunaSobreNome = c.getColumnIn<strong>de</strong>x("sobrenome");int posColunaPais = c.getColumnIn<strong>de</strong>x("pais");int posColunaIda<strong>de</strong> = c.getColumnIn<strong>de</strong>x("ida<strong>de</strong>");/*obter os valores das colunas do cursor...como em JDBC, os métodos getString - retornam uma StringgetInt - retornam um Int ... etc etc etc...*/String nome = c.getString(posColunaNome);String sobrenome = c.getString(posColunaSobreNome);String pais = c.getString(posColunaPais);int ida<strong>de</strong> = c.getInt(posColunaIda<strong>de</strong>);// concatenar os dados dos campos em um único registro formatadoString registroObtido = "Nome: " + nome +"Sobrenome: " + sobrenome +"País: " + pais +"Ida<strong>de</strong>: " + ida<strong>de</strong>;Mini Curso <strong>de</strong> Android Página 20


*Adicionar o registro obtido (formatado) <strong>de</strong>ntro da lista <strong>de</strong> retorno...*/listaRegistros.add(registroObtido);// mover o cursor para o próximo registro...c.moveToNext();}}} finally {}// sempre fechar a conexão, caso ela existaif (myDB != null)myDB.close();Você po<strong>de</strong>rá também, ao invés <strong>de</strong> criar o banco <strong>de</strong> dados via código (como no códigoacima), utilizar um banco <strong>de</strong> dados já existente; basta que o banco <strong>de</strong> dados existano diretório correto (vi<strong>de</strong> tópico 7).Dica: Por questões <strong>de</strong> clareza e simplicida<strong>de</strong>, estecódigo não seguiu critérios <strong>de</strong> orientação a objetos, porém, éextremamente recomendável que seja criado um DTO (DataTransfer Object) para representar a entida<strong>de</strong> da tabela <strong>de</strong>dados, e a lista resultante não <strong>de</strong>ve ser do tipo esim do tipo <strong>de</strong> dados mo<strong>de</strong>lado e tipado.Informações aprofundadas sobre acesso a dados <strong>SQLite</strong> no Android po<strong>de</strong>m ser obtidasno site oficial:http://<strong>de</strong>veloper.android.com/reference/android/database/sqlite/<strong>SQLite</strong>Database.htmlEntão, mãos à obra!Mini Curso <strong>de</strong> Android Página 21


Tópico 10Utilizando Google <strong>Maps</strong> com AndroidUm recurso muito interessante no Android é o suporte aoGoogle <strong>Maps</strong>. O Google <strong>Maps</strong> é um serviço acessado através dainternet (não é instalado no dispositivo), contém mapas domundo inteiro e é totalmente compatível com o Android. Paraque o Google <strong>Maps</strong> funcione no Android, em ambiente <strong>de</strong><strong>de</strong>senvolvimento, é necessário obter uma chave no site doGoogle; o processo é simples, fácil e rápido; porém, é necessárioter uma conta nos serviços Google (Gmail, Orkut etc.) e fazerlogin. Outro <strong>de</strong>talhe é que a chave vale apenas para umcomputador e é gerado com base na assinatura digital damáquina.A seguir, vamos fazer todos os passos para obtenção dachave e construção <strong>de</strong> uma aplicação bem simples utilizando oGoogle <strong>Maps</strong>. Depois disso, você estará apto (saberá oscaminhos) para pesquisar e <strong>de</strong>senvolver suas próprias (e com mais recursos)aplicações Google <strong>Maps</strong> para o Android. As possibilida<strong>de</strong>s são imensas. Então, mãos aobra!Obtendo a chave para acessar o serviço <strong>de</strong> mapasPara po<strong>de</strong>r usar o serviço Google <strong>Maps</strong>, é necessário ter uma chave <strong>de</strong>autorização <strong>de</strong>vidamente gerada no site do Google; esta chave é geradagratuitamente, basta ter uma conta nos serviços do Google (Gmail, Orkut etc) e fazero registro.Esta chave servirá para uso em apenas uma máquina por que ela é gerada combase na assinatura digital do emulador do Android, que será diferente em cadamáquina on<strong>de</strong> for instalado (e consequentemente em cada dispositivo também). Éuma maneira <strong>de</strong> o Google controlar os usuários que utilizam o seu serviço eposteriormente, quem sabe, cobrar por eles.Para obtermos uma chave, precisamos primeiro obter a assinatura digital damáquina on<strong>de</strong> está instalado o emulador do Android. Para isto, siga os passos abaixo:1) Digite no prompt <strong>de</strong> comando:keytool.exe -list -alias android<strong>de</strong>bugkey -keystore "%User%*\.android\<strong>de</strong>bug.keystore" -storepassandroid -keypass android* substitua “%User%” pelo diretório do usuário logado atual (C:\Users\Rodrigo, por exemplo)Mini Curso <strong>de</strong> Android Página 22


Imagem 07 – “Gerando certificado MD5 para obter a chave do Google <strong>Maps</strong>”2) Copie o “Certificate fingerprint (MD5)” gerado para a sua máquina; no casoacima (8D:89:2E:54:E7:FA:DE:6C:9E:C5:D9:C9:4E:5B:B1:62). Este certificadoé diferente para cada máquina, então, é obrigatório gerá-lo em cada máquinadiferente que for utilizar os mapas.3) De posse do “Certificate fingerprint (MD5)”, entre no sitehttp://co<strong>de</strong>.google.com/intl/pt-BR/android/maps-api-signup.html;4) No site, leia os termos da licença e se concordar, marque a opção queestá <strong>de</strong> acordo, cole o certificado obtido na caixa “My certificate’s...” e cliquena opção “Generate API Key”Imagem 08 – “Solicitando a chave do Google <strong>Maps</strong> API”Mini Curso <strong>de</strong> Android Página 23


5) Será solicitado que você faça login no Google, então, você <strong>de</strong>ve ter uma contaou senão você po<strong>de</strong>rá criá-la neste momento. Faça o login.6) Sua chave será gerada e exibida pra você na tela, com um exemplo <strong>de</strong> comoutilizar o componente “MapView” para exibir o mapa.Imagem 09 – “Chave do Google <strong>Maps</strong> API gerada”Pronto, você já está preparado para começar a <strong>de</strong>senvolver aplicações utilizando oGoogle <strong>Maps</strong> API no Android.Para informações mais <strong>de</strong>talhadas sobre este processo, por favor, verifique adocumentação oficial: http://<strong>de</strong>veloper.android.com/gui<strong>de</strong>/tutorials/views/hellomapview.html;Então, mãos a obra!Construindo uma aplicação simplesAcessar o serviço Google <strong>Maps</strong> no Android é extremamente simples, bastautilizar o componente “MapView”. Vamos fazer uma pequena aplicação para vermoscomo isso funciona na prática.1) Crie um novo Projeto Android baseado no Google <strong>Maps</strong> API (vi<strong>de</strong> tópico 6) euse os seguintes nomes:Mini Curso <strong>de</strong> Android Página 24


Project Name: ProjetoMapaSimplesBuild Target: Google APIsApplication name: MapaSimplesAndroidPackage name: com.minicursoandroid.mapasimplesCreate Activity: PrincipalMin SDK Version: 32) Clique em “Finish”3) Para que nossa aplicação funcione corretamente, precisamos importar abiblioteca (API) do Google <strong>Maps</strong> e informar ao Android que ela terápermissão para acessar a internet, para isto, abra o arquivo“AndroidManifest.xml:Insira:Dentro da tag Insira:Depois da tag Dica: Para saber mais sobre as tags <strong>de</strong> permissão, acesse este link:http://<strong>de</strong>veloper.android.com/reference/android/Manifest.permission.htmlImagem 10 – “Arquivo AndroidManifest.xml permitindo acesso à internet e importandoa biblioteca da API do Google <strong>Maps</strong>”Mini Curso <strong>de</strong> Android Página 25


4) Abra o arquivo “res/layout/main.xml” e substitua todo o seu conteúdopor este:Fazendo isto, estamos criando a tag “MapView”, responsável por exibir eren<strong>de</strong>rizar o mapa <strong>de</strong>ntro do Android.5) Mu<strong>de</strong> o valor da tag: android:apiKey=”0B...” pelo valor que você obteve nosite do Google e salve as alterações.6) Abra o arquivo “Principal.java”7) A classe “Principal.java” esten<strong>de</strong> “Activity”, mu<strong>de</strong> para “MapActivity”8) Substitua todo o valor do método “OnCreate(...)” por este:super.onCreate(savedInstanceState);setContentView(R.layout.main);MapView mapa = (MapView) findViewById(R.id.mapView);mapa.displayZoomControls(true);9) Crie o seguinte método:@Overri<strong>de</strong>protected boolean isRouteDisplayed() {return false;}10) Salve as alterações e faça <strong>de</strong>ploy da aplicação para o emulador.11) Parabéns! Sua primeira aplicação <strong>de</strong> mapas está pronta!Se quiser se aprofundar mais no <strong>de</strong>senvolvimento <strong>de</strong> aplicação utilizando Google <strong>Maps</strong>no Android, não <strong>de</strong>ixe <strong>de</strong> ver este link:http://co<strong>de</strong>.google.com/intl/pt-BR/android/add-ons/google-pis/reference/com/google/android/maps/MapActivity.htmlEntão, mãos à obra!Mini Curso <strong>de</strong> Android Página 26


Tópico 11Referências e leituras recomendadasReferências Online:Documentação oficial do Android:http://<strong>de</strong>veloper.android.com/sdk/android-1.5.htmlhttp://<strong>de</strong>veloper.android.com/gui<strong>de</strong>/in<strong>de</strong>x.htmlhttp://<strong>de</strong>veloper.android.com/reference/packages.htmlhttp://<strong>de</strong>veloper.android.com/intl/en/community/in<strong>de</strong>x.htmlPortal em português sobre Android (local da comunida<strong>de</strong> Android):http://www.portalandroid.org/Livros:Google Android: Aprenda a Criar Aplicações Para Dispositivos MóveisRicardo R. LechetaAndroid EssentialsChris HasemanMini Curso <strong>de</strong> Android Página 27

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!