Google Android Computação Móvel - 2ª Aula Prática MEIC/MERC Sumário Google Android: O que é? Que funcionalidades? Que dispositivos? Como programar? Exercícios: − Executar exemplos − Ampliar exemplos O que é? Plataforma de SW para dispositivos móveis. Desenvolvida pela Google e a Open Handset Alliance. Baseada no núcleo do Linux. Programada em Java usando o Eclipse e o Android SDK. Bibliotecas Java desenvolvidas pela Google. Não coincidem com o Java SE ou ME. Que funcionalidades? Comparação com Outros Android Núcleo Dispositivos Symbian Linux Poucos Muitos SW livre Vários Participantes Podiamos ainda falar de Palm OS e de iPhone OS... Windows Mobile Muitos Que dispositivos? HTC Dream (G1) Como programar? IDE Eclipse + Plug-in Android + Emulador Aplicações Java usando as bibliotecas do Android. Conceitos base: Activity: Corresponde a um ecrã da aplicação. Layout: Descrição do GUI. Manifest: Atributos/Configuração da aplicação. Como manter código sempre a correr? Service. Como acordar aplicações? IntentReceiver. Como partilhar dados entre aplicações? ContentProvider. Uma aplicação Android A raíz do projecto O código da aplicação As bibliotecas Google Android O desenho do GUI (usar e.g. www.droiddraw.org). Gera automaticamente R.java A configuração da aplicação. Gera automaticamente Manifest.java Código da Aplicação Activity = 1 ecrã de GUI Corre quando se cria a Activity Corre quando se clica em b_serv ou b_cli Layout IDs para fazer getViewByID no código Java Manifesto Permissões para a aplicação aceder à rede O emulador • Baseado no emulador ARM QEMU. • Inclui: – Aplicações Android. – Exemplos Android. • Debugger do Eclipse controla emulador. • Usa a Ethernet do PC de desenvolvimento. Pôr dois emuladores a comunicar por sockets - Abre-se o projecto no eclipse e no run (seta verde), nas "run configurations" escolhe-se um target manual. Assim sempre que se lançar uma aplicação, o Eclipse vai perguntar em que emulador se quer lançar a aplicação. - Quando se lança um emulador, no título da página diz o porto para o qual se pode fazer telnet para configurar o emulador. - Depois de se lançar o emulador servidor é preciso fazer telnet para o porto do emulador e redireccionar o porto do ServerSocket do emulador para o porto da máquina local: redir add tcp:2000:2000 Exercício: chat Transformar o código dado numa aplicação de chat: • Lançar uma thread para escutar o socket ligado: – Activity passa a “implements Runnable” e a ter um método “public void run()” – No ponto onde se quiser lançar a thread faz-se: Thread thread = new Thread(this); Thread.start(); • Adicionar uma caixa de texto e um botão para mandar mensagens: no layout adicionar um TextEdit e um Button. • Modificar o tipo de dados trocados: substituir o ReadInt por...