Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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.
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.
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:
Pgina 3
Tpico 2
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.
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.
Pgina 5
Tpico 3
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.
Pgina 6
Tpico 4
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.
Criando um novo AVD (Android Virtual Device) Abra o prompt de comando (cmd) e digite:
a)
Pgina 7
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:
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.
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.
Pgina 9
Tpico 5
Pgina 10
Tpico 6
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
Pgina 12
Tpico 7
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.
Pgina 14
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
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.
Pgina 16
Tpico 8
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.
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.
Pgina 18
Tpico 9
/* 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++ ) {
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;
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!
Pgina 21
Tpico 10
Pgina 22
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
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.
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:
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
Pgina 25
<?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);
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
Pgina 26
Tpico 11
Livros:
Google Android: Aprenda a Criar Aplicaes Para Dispositivos Mveis Ricardo R. Lecheta Android Essentials Chris Haseman
Pgina 27