You are on page 1of 99

Android

Dyego Morais

Roteiro
1. Introduo ao Desenvolvimento de Aplicaes Mveis 2. Configurando o ambiente de desenvolvimento 3. Criando um projeto utilizando Eclipse IDE 4. Explorando a Plataforma 5. Componentes de Interface Grfica 6. Instalao em dispositivo real

1. Introduo

why mobile!?
Tecnologias mveis produzem vrios benefcios para as diversas reas do conhecimento. Em geral: simplificao do acesso e da atualizao de informaes. Em sade: diminuio de erros e inconsistncias. Em educao: auxlio no processo de construo do conhecimento.
O governo vai distribuir tablets para alunos de escolas pblicas do pas a partir de 2012 com o objetivo de universalizar o acesso tecnologia por parte dos alunos - Fernando Haddad, ministro da educao.

1. Introduo

why mobile!?
Dispositivos mveis so pequenos computadores com tela menor e mecanismo de entrada de dados limitado quando comparados a computadores desktop. Permitem: execuo de algumas tarefas enquanto o operador se movimenta. J uma aplicao computacional mvel um pedao de software embutido em um dispositivo mvel. O poder computacional de dispositivos mveis est em intenso avano e j se pode compar-lo ao dos microcomputadores de mesa.

1. Introduo

why mobile!?
Ademais, novos elementos de hardware nos dispositivos mveis j so comuns, como: acelermetro: calcula a acelerao; utilizada em HDs parando-o em caso de queda. implantado em diversos dispositivos mveis,
produzindo uma nova interao com a mquina. GPS: sistema de posicionamento global

sistema de navegao por satlite que fornece a


um aparelho receptor mvel sua posio;

1. Introduo

why mobile!?
Ademais, novos elementos de hardware nos dispositivos mveis j so comuns, como: display touch-screen: telas sensveis ao toque, ou ecr
que capaz de reconhecer o toque na tela como entrada de dados; entre diversos outros.

1. Introduo

why mobile!?
Desse modo j possvel usufruir de aplicaes em smartphones e tablets com funcionalidades que seriam inviveis se aplicadas em computadores desktop. Essa convergncia de tecnologias em um nico dispositivo faz dos smartphones, a nova tendncia do mercado tecnolgico. Em 2010, no mundo: vendas de dispositivos mveis crescem 31,8%; 1,6 bilhes de unidades vendidas entre celulares e
smartphones.

Em 2012, no Brasil: ~1 celular por habitante.

1. Introduo

Mobile.. ok. Why Android!?

1. Introduo

Mobile.. ok. Why Android!?

Java #not

1. Introduo

Mobile.. ok. Why Android!?

2,4 bilhes de aplicaes em 3 meses; mais de 200 milhes de dispositivos ativados; com uma mdia de 550 mil ativaes dirias; est presente em 137 pases e regies.

Grfico de download de aplicativos para Android at o terceiro trimestre de 2011

1. Introduo

Mobile.. ok. Why Android!?


As principais caractersticas do Android so: Application framework: proporciona a reutilizao e
substituio de componentes;

Dalvik virtual machine: otimizada para dispositivos mveis; Browser Integrado: baseado no webkit engine; Grficos Otimizados: (acelerao de hardware opcional); SQLite: um poderoso e leve engine de banco de dados relacional
disponvel para todas as aplicaes;

1. Introduo

Mobile.. ok. Why Android!?


As principais caractersticas do Android so:

Suporte multimdia para udio, vdeo e formatos de imagem (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF); Telefonia GSM (dependente de hardware); Bluetooth, EDGE, 3G, e Wi-Fi (dependente de hardware); Cmera, GPS, compasso, e acelermetro (dependente de hardware); Rico ambiente de desenvolvimento, incluindo um emulador de dispositivo, ferramentas de depurao, memria, performance e um plugin para o Eclipse (ADT).

1. Introduo

Como meus vizinhos codificam?

O Symbian foi o primeiro sistema operacional (SO) para celulares, criado pela Psion para a srie Palm. A Nokia iniciou a utilizao da plataforma Symbiam 60 em seus smartphones em 2002.

O Symbiam possui suporte a servio de mensagens multimdia (do ingls, Multimedia Messaging Service MMS), Bluetooth, wireless, infravermelho, dentre outros. Quanto a desempenho, o Symbian realiza um bom consumo de memria, energia, processamento, entre outros fatores essenciais. Permite tambm, o uso de vrias linguagens de programao, tais como: Symbian C/C++, Java ME, Python, etc. Existem ferramentas de desenvolvimento para Symbiam que so distribudas gratuitamente.

1. Introduo

Como meus vizinhos codificam?

O iPhone o smartphone da Apple, que utiliza como plataforma de desenvolvimento uma SDK exclusiva, o Cocoa, que utiliza a linguagem de programao Objective-C, muito utilizada na plataforma Mac.

O custo para utilizao desta SDK de U$99 dlares anuais. Alm disso, as aplicaes desenvolvidas para o iPhone so disponibilizadas somente na loja da Apple, a AppStore. Entretanto, qualquer softwatre desenvolvido para o iPhone antes de ir para AppStore passam por uma reviso da Apple.

A SDK do iPhone roda somente em sistemas computacionais Mac.

1. Introduo

Como meus vizinhos codificam?


O BlackBerry o SO para smartphones
BlackBerry da empresa Research in Motion RIM.

O BlackBerry utiliza o Java como linguagem de


desenvolvimento e compatvel com aplicaes J2ME.

Entre seus maiores feitos destaca-se sua


ferramenta de sincronizao de e-mails. Assim que o servidor recebe o e-mail este enviado para o dispositivo.

1. Introduo

android dev

Inicialmente desenvolvido pela Google. Atualmente gerido pela Open Handset Alliance OHA, um grupo formado por mais de 30 empresas, dentre as quais se destacam Google, Motorola, HTC, LG, Sony Ericsson, T-Mobile, ASUS, Intel, dentre outras.

O Android tem sua distribuio feita pelo Android Market, com o custo de 25 dlares de registro. Apesar de ter sido desenvolvido inicialmente para smartphones, hoje ele roda em diversas outras plataformas como tablets e netbooks, e seu uso tem se expandido cada vez mais em dispositivos portteis e sistemas embarcados em geral, inclusive relgios.

1. Introduo

android dev
A plataforma de desenvolvimento Android possui as seguintes principais caractersticas:

possui grande parte de seu cdigo livre; as aplicaes do Google j vm integradas no


sistema do Android;

e permite que com uma mesma conta seja


possvel acessar uma srie de ferramentas: Email, chat, sites, docs, grupos, calendrios, etc;

alm de utilizar uma mquina virtual (Dalvik)


projetada para aperfeioar a memria e os recursos de hardware em um dispositivo mvel

1. Introduo

android dev
No desenvolvimento do S.O. foi utilizada a
verso 2.6 do kernel do Linux para os servios centrais do sistema, tais como segurana, gesto de memria, gesto de processos, etc.

O kernel tambm atua como uma camada de


abstrao entre o hardware e o resto do software.

1. Introduo

android dev

1. Introduo

android dev

Toda aplicao roda em seu prprio processo, com sua prpria instncia da mquina virtual Dalvik. O Dalvik no consome byte-code Java, mas sim dexcode. Para isso, o Google desenvolveu uma ferramenta, chamada dx, que converte Java bytecodes (*.class) em dexcodes (*.dex). Alm disso, desde a verso 2.2 (Froyo), compila-se dexcodes para a arquitetura-alvo em tempo de execuo, tornando a execuo dos processos consideravelmente mais rpidas, j que no precisa ficar interpretando dexcodes.

1. Introduo

android dev

1. Introduo

android dev
Como linguagem de programao base para
desenvolvimento de suas aplicaes, o Android utiliza o Java.

Faz uso de um conjunto de bibliotecas C/C++


usadas por diversos componentes expostas para os desenvolvedores atravs do framework.

1. Introduo

android dev

Media Libraries bibliotecas que suportam os mais populares formatos de udio, vdeo e imagens. Surface Manager gere o acesso ao subsistema de exibio bem como as mltiplas camadas de aplicaes 2D e 3D. LibWebCore um web browser engine utilizado tanto no Android Browser quanto para exibies web. SGL o engine de grficos 2D. 3D libraries uma implementao baseada no OpenGL ES 1.0 APIs; as bibliotecas utilizam acelerao 3D via hardware (quando disponvel) ou o software de renderizao 3D includo no Android.

FreeType renderizao de fontes bitmap e vector.

1. Introduo

android dev

2. Configurando

android dev config


Software necessrio para iniciar o desenvolvimento:

JDK (Java Development Kit) Android SDK Eclipse IDE ADT (Android Development Tools) Plugin

2. Configurando
android dev config

JDK

O JDK possui as ferramentas necessrias para desenvolvimento de aplicaes utilizando a linguagem Java.

Download: http://www.oracle. com/technetwork/java/javase/downloads/index.html Na instalao do JDK a partir do arquivo baixado deve-se apenas seguir as instrues do programa instalador.

2. Configurando
android dev config

Android SDK

Na instalao do Android SDK a partir do arquivo baixado deve-se apenas seguir as instrues do programa instalador. Caso seja exibida a mensagem Java SE Development Kit (JDK) not found. mesmo j tendo instalado o JDK, devese voltar e avanar novamente no instalador. A mensagem no se repetir.

Utilizar o caminho de instalao: C:\Android\Android-sdk. Ao trmino da instalao, rodar o SDK Manager, no qual sero identificadas e disponibilizadas atualizaes das diversas Plataformas (verses) do sistema Android. A verso utilizada no minicurso ser a Android 2.2 API 8, no entanto aconselhvel instalar todos os pacotes. Clicar em "Accept All" e em seguida, "Install".

2. Configurando
android dev config

Android SDK

2. Configurando
android dev config

Eclipse IDE

O Eclipse uma ferramenta de integrao da linguagem de programao Java. Nele, tambm necessrio integrar o Android SDK para o desenvolvimento de aplicaes Android.

Download: http://www.eclipse.org/downloads/ Dentre as opes apresentadas no website da IDE, utilizaremos o Eclipse IDE for Java Developers. Para o Eclipse no necessrio instalao, pois os arquivos rodam direto da pasta onde foram descompactados, basta extrair o contedo do arquivo baixado para o local desejado e execut-lo.

2. Configurando
android dev config

ADT Plugin
O ADT (Android Development Tools) um plug-in para o Eclipse que foi projetado para fornecer um ambiente para desenvolvimento de aplicativos Android. Instalao:

1. 2.

Inicie o Eclipse, clique em Help > Install New Software. Clique no boto Add.

2. Configurando
android dev config

ADT Plugin

2. Configurando
android dev config

ADT Plugin
O ADT (Android Development Tools) um plug-in para o Eclipse que foi projetado para fornecer um ambiente para desenvolvimento de aplicativos Android. Instalao:

3. 4.

Na janela que abrir digite ADT Plugin para Name e a URL https://dl-ssl.google.com/Android/eclipse/ para Location. Aps dar OK, na janela que segue, selecione Developer Tools e avance.

2. Configurando
android dev config

ADT Plugin

2. Configurando
android dev config

ADT Plugin
O ADT (Android Development Tools) um plug-in para o Eclipse que foi projetado para fornecer um ambiente para desenvolvimento de aplicativos Android. Instalao:

5. 6. 7.

Ser exibida a lista de ferramentas que sero baixadas. Avance novamente. Aceite os termos de licena e clique em Finalizar. Aguarde o trmino da instalao e reinicie o Eclipse.

2. Configurando
android dev config

Configurando o Emulador
No Eclipse IDE, preciso configurar o Emulador Android.

1. 2.

Acesse o caminho Windows > Preferences > Android. Clique em Browser, localize a pasta de instalao da SDK Android (C:\Android\Android-sdk) e clique em Ok.

2. Configurando
android dev config

Configurando o Emulador

2. Configurando
android dev config

Configurando o Emulador
Pode-se executar uma aplicao atravs de um Dispositivo Virtual.

1.

Para configurar um Dispositivo Virtual, abrir o SDK Manager (pode ser feito pelo Eclipse IDE acessando Windows > Android SDK e AVD Manager) e clicando em new.

2.

Na tela em seguida, preencher os dados como segue na figura. Em seguida, clicando em Create AVD, um dispositivo criado e est pronto para emular aplicaes Android em seu computador. Selecione o dispositivo criado e clique em Start para inicializar o emulador.

2. Configurando
android dev config

Configurando o Emulador

3. Criando um projeto

Criando um projeto no Eclipse IDE


Para criar um novo projeto no Eclipse IDE, pode-se seguir:

File > New > Project ou clicar com o boto direito sob a rea do Project Explorer e em seguida New > Project.

Obs.: Caso no veja o Project Explorer, pode ir em: Windows > Show View > Project Explorer.

3. Criando um projeto

Criando um projeto no Eclipse IDE


Na tela que se abrir selecione Android Project dentro da pasta Android e clique em Next. Na tela seguinte, em Project Name digite um nome para seu projeto, nesse exemplo do minicurso utilizaremos o nome MyApp. Deixe selecionada a opo Create New Project in Workspace e Use Default Location. Ento, pressione Next.

3. Criando um projeto

Criando um projeto no Eclipse IDE


Na tela seguinte, escolhe-se a qual verso mnima do Android se vai desenvolver juntamente com sua API. No minicurso escolheremos a verso 2.2, API 8. Na tela posterior coloca-se o nome do pacote. Nesse exemplo utilizaremos: br. erbase.Android.myapp e em seguida clica-se em Finish.

3. Criando um projeto

Estrutura de arquivos

3. Criando um projeto

Estrutura de arquivos
Pasta src: Inclui o pacote para a aplicao, que no exemplo br.erbase.Android.myapp. Pasta gen: Inclui o pacote da aplicao com arquivos gerados. R.java: O ADT cria esse arquivo automaticamente, que representa as constantes necessrias para acessar diversos recursos da aplicao Android. Ou em outras palavras, esta classe usada como um atalho para referenciar os recursos da pasta res no cdigo.

3. Criando um projeto

Estrutura de arquivos
MyAppActivity.java: Implementao da classe principal da aplicao. Diferentemente das aplicaes comuns de Java, toda classe para aplicao Android deve ser derivada da classe Activity (Atividade) e possui como mtodo principal, o mtodo onCreate. Dentro desse mtodo ele invoca o mtodo onCreate da super classe passando o mesmo parmetro. Logo aps esse mtodo, vem o mtodo setContentView, responsvel por exibir a tela da minha aplicao, baseado nos layouts xml. Por padro ele chama o arquivo main.xml. Bibliotecas de referncia (Android <verso>): Contm o arquivo Android.jar, que o arquivo da classe de runtime do Android, localizado no Android SDK.

3. Criando um projeto

Estrutura de arquivos

Pasta res/: Contm os recursos para a aplicao, incluindo: cones (por exemplo, os arquivos ic_laucher.png separado em vrias resolues);

Arquivos de layout (o arquivo main.xml), nos quais so montados os elementos visveis da interface com usurio das telas; Strings (o arquivo strings.xml), que contm as constantes ligadas strings.

3. Criando um projeto

Estrutura de arquivos

AndroidManifest.xml: Descritor de implementao da aplicao de exemplo. Contm uma descrio mais detalhada da aplicao do que a que encontrada no arquivo main.xml. No exemplo, o cdigo do manifest o que segue:

3. Criando um projeto

Estrutura de arquivos
Antes do Android poder iniciar um componente de aplicao, o sistema deve saber que o componente existe lendo o arquivo AndroidManifest.xml da aplicao (o arquivo manifest). Sua aplicao deve declarar todos seus componentes neste arquivo, que deve estar na raiz do diretrio do projeto da aplicao.

3. Criando um projeto

Estrutura de arquivos
O manifest faz uma quantidade de tarefas em adio declarao de componentes da aplicao, como:

Identificar quaisquer permisses de usurio necessrias aplicao, como acesso Internet ou acesso de leitura nos contatos do usurio. Declarar o API Level mnimo necessrio pela aplicao, baseado nas APIs que a aplicao usa. Declarar as caractersticas de hardware e software usadas ou requeridas pela aplicao, como cmera, servio de Bluetooth. Bibliotecas de API necessrias para a execuo (alm das nativas das APIs do framework Android), como a biblioteca do Google Maps.

3. Criando um projeto

usando o emulador
Inicialmente, deve-se procurar o smbolo de play na barra de menu superior e em seguida, Run Configurations.

3. Criando um projeto

usando o emulador
Na tela que se abrir deve-se no lado esquerdo selecionar New_configuration (que est em Android Application) e no lado direito deve-se selecionar o projeto, no exemplo MyApp, ao clicar em browser. possvel tambm alterar o nome da configurao, nesse exemplo utilizou-se MyApp_Sim.

3. Criando um projeto

usando o emulador
Ento, seleciona-se o emulador j cadastrado na aba Target. Em seguida, pode-se clicar em Run.

3. Criando um projeto

usando o emulador
Aguarde alguns minutos at que o emulador seja iniciado e, se necessrio, destrave-o arrastando a barra esquerda para a direita, de modo semelhante a como se faz com o aparelho real. Ento sua aplicao ser instalada e executada. Como o emulador simula um aparelho real, todas as aplicaes contidas no workspace que foram executadas no mesmo AVD so carregadas quando o simulador iniciado.

3. Criando um projeto

usando o emulador

3. Criando um projeto

depurao
A plataforma Android possui algumas ferramentas para auxiliar no trabalho de desenvolvimento de aplicativos. Para utilizar essas ferramentas na IDE Eclipse deve-se navegar no menu Window at a opo Show View. Nesse menu, entre as opes mostradas se encontram o LogCat e o File Explorer que sero as ferramentas que irmos analisar.

Quando executamos uma aplicao escrita na linguagem Java o console do Eclipse exerce a funo de mostrar as sadas do programas, que podem ser mensagem que o programador deseja que sejam exibidas ou at mesmo excees que ocorreram durante a execuo do cdigo. No entanto, quando estamos utilizando o simulador o console se torna o responsvel por mostrar informaes relacionadas ao estado da simulao.

3. Criando um projeto
depurao

LogCat

Para observar informaes sobre a execuo do cdigo foi criado o LogCat. O LogCat traz informaes sobre a execuo do simulador e das aplicaes. Caso ocorra uma exceo no cdigo como uma exceo de ponteiro nulo, o erro aparecer no LogCat. Essa ferramenta ajuda o desenvolvedor a achar erros de execuo com maior facilidade.

3. Criando um projeto
depurao

File Explorer

O File Explorer permite que o desenvolvedor tenha acesso ao esquema de pastas da simulao, podendo inclusive adicionar arquivos as pastas.

3. Criando um projeto
depurao

File Explorer

Entre as pastas existentes, uma pasta que representa o carto de memria do dispositivo chamada sdcard. Poder inserir arquivos no simulador um recurso til, tendo em vista que aplicaes que manipulam arquivos das mais diversas formas precisam ter um teste dessa manipulao antes de irem para o dispositivo de fato.

Essa ferramenta muito til tambm para manipular arquivos de bancos de dados, extraindo esses arquivos e manipulando o banco com um gerenciador externo ao Eclipse IDE.

4. A Plataforma

Explorando a Plataforma

Uma aplicao Android possui blocos de construo essenciais. Cada bloco, ou componente, um ponto diferente atravs do qual o sistema operacional pode entrar em sua aplicao.

Nem todos os componentes so pontos de entrada reais para o usurio e alguns dependem uns dos outros, mas cada um existe como uma entidade prpria e desempenha um papel especfico, cada um um bloco de construo singular que ajuda a definir o comportamento geral do aplicativo.

4. A Plataforma

Explorando a Plataforma
H quatro tipos diferentes de componentes fundamentais de aplicao. Cada tipo tem uma finalidade distinta e tem um ciclo de vida distinta que define como o componente criado e destrudo. Abaixo esto os quatro tipos de componentes de aplicao:

Activity Service Content Provider Bradcast Receiver

4. A Plataforma

Activity

Classe gerenciadora de interface com o usurio. Quando uma aplicao Android executada, na verdade a sua Activity principal que lanada. Embora as Activities trabalhem juntas para formar uma experincia de usurio coesa numa aplicao, cada uma independente das outras. Desta forma, uma aplicao diferente pode iniciar qualquer uma das suas Activities (se sua aplicao permitir).

Por exemplo, uma aplicao de cmera pode iniciar a Activity na aplicao de email para compor um novo email, visando o envio da foto por email. Uma Activity implementada como uma subclasse da classe Activity. Falaremos mais dela em tpicos seguintes.

4. A Plataforma

Service

Componente que roda em background para executar operaes demoradas ou para executar processos remotos. Um Service no possui interface do usurio. Por exemplo, um Service pode tocar msica no background, enquanto o usurio est em uma aplicao diferente, ou pode carregar dados atravs da rede sem bloquear a interao do usurio com uma Activity. Outro componente, como uma Activity, pode iniciar o Service e deix-lo rodando ou conectar-se nele para interagir com o mesmo.

Um Service implementado como uma subclasse de Service e devido ao foco do minicurso no sero trabalhados mais a fundo.

4. A Plataforma

Content Provider

Gerencia um grupo de dados de aplicao compartilhados. Voc pode armazenar dados no sistema de arquivos, uma base SQLite, na web, ou em qualquer outro local de armazenamento persistente que sua aplicao possa acessar. Atravs do Content Provider, outras aplicaes podem consultar ou mesmo modificar os dados (se o Content Provider permiti-lo).

Por exemplo, o sistema Android prov um Content Provider que gerencia as informaes dos contatos do usurio. Desta forma, qualquer aplicao com as permisses apropriadas pode consultar parte do Content Provider (como um ContactsContract.Data) para ler e escrever informaes sobre uma pessoa em particular.

4. A Plataforma

Content Provider

Um Content Provider implementado como uma subclasse de ContentProvider e deve implementar um conjunto de APIs que permite a outras aplicaes executarem transaes. Devido ao foco do minicurso no sero trabalhados mais a fundo.

4. A Plataforma

Broadcast Receiver

Componente que responde a notificaes a nvel de sistema. Muitas notificaes originam-se do sistema - por exemplo, uma notificao anunciando que a tela foi desligada, a bateria est fraca, ou uma foto foi tirada.

Aplicaes tambm podem iniciar broadcasts por exemplo, para deixar outras aplicaes sabendo que alguns dados foram baixados para o dispositivo e esto disponveis para uso.

4. A Plataforma

Broadcast Receiver

Embora Broadcast Receivers no exibam interface ao usurio, eles podem criar notificaes na barra de status para alertar o usurio quando um evento broadcast ocorre. Mais comumente, embora, um Broadcast Receiver somente um "gateway" para outros componentes e intencionalmente criado para fazer a menor quantidade de trabalho. Por exemplo, ele pode iniciar um Service para executar alguma tarefa baseada no evento.

Um Broadcast Receiver implementado como uma subclasse de BroadcastReceiver e cada broadcast entregue como um objeto Intent.

4. A Plataforma

Broadcast Receiver

Um aspecto nico do design do sistema Android que qualquer aplicao pode iniciar um componente de outra aplicao. Por exemplo, se voc quer que o usurio tire uma foto com a cmera do dispositivo, provavelmente existe uma outra aplicao que faz isso e que sua aplicao pode usar, ao invs de desenvolver uma Activity sua para tirar a foto. Voc no precisa incorporar ou mesmo linkar cdigo da aplicao da cmera. Ao invs disso, voc simplesmente inicia a Activity na aplicao da cmera que tira a foto. Quando completada, a foto retornado para sua aplicao e ento voc pode us-la. Para o usurio, parece que a cmera na verdade parte de sua aplicao.

4. A Plataforma

dev activity

Classe que herda de Android.app.Activity ou suas subclasses. Activity responsvel por tratar os eventos da tela como, por exemplo, tratar o clique do boto na tela, escrever um texto dinamicamente na tela, etc. As Activities sobrescrevem o mtodo onCreate(Bundle) que responsvel por realizar a inicializao da tela atravs do mtodo setContentView(view), essa view passada como parmetro a tela que ser inicializada. Pode-se interpretar Activity como tela.

4. A Plataforma

dev activity
Ciclo de Vida de uma Activity

4. A Plataforma

dev activity
Ciclo de Vida de uma Activity

4. A Plataforma

dev new activity



Para executar outras Activities, basta usar startActivity(). Adicionou-se um boto, que ocupa toda a rea da aplicao na tela, na a Activity que implementa a interface OnCLickListener. Alm de passar uma String como parmetro e inicializar uma nova Activity.

4. A Plataforma

dev new activity

Importante lembrar que toda nova Activity criada deve ser declarada no Manifest, sendo assim, este foi alterado tambm da seguinte forma: <Activity Android:name=".Tela2" />

Criou-se uma nova classe que extende Activity com o nome de Tela2 que recebe a String passada pela Activity que a inicializou e exibindo-a no Log.

4. A Plataforma

dev new activity

4. A Plataforma

ListActivity

Quando necessrio listar dados em uma tela ou apresentar mapas existem tipos especficos (nesses casos, ListActivity e MapActivity, respectivamente) que encapsulam diversas caractersticas para facilitar ao programador.

Por exemplo, a ListActivity j implementa o componente ListView. Vamos ver como usar uma ListActivity para mostrar ao usurio uma lista de dados. Para tal, foi adicionada ao projeto MyApp uma nova Activity chamada ListActivity1, na qual criado um array de String e utilizado um adapter passando os dados do array para a lista da tela.

4. A Plataforma

ListActivity

4. A Plataforma

ListActivity

A ListActivity uma classe que extende a classe Activity e possui o objetivo de mostrar ao usurio uma Lista (uma ListView). Em suma, uma Activity com alguns mtodos para gerenciamento de listas, criada com o intuito de facilitar a criao de telas com essa configurao. So muito comuns nas aplicaes Android.

Importante lembrar de declarar a Activity no Manifest da forma que segue:


<Activity Android:name=".ListActivity1"> <Intent-filter> <action Android:name="Android.Intent.action.MAIN" /> <category Android:name="Android.Intent.category.LAUNCHER"

/> </Intent-filter> </Activity>

4. A Plataforma

ListActivity
Para executar a aplicao com essa ListActivity1 como principal necessrio, antes de emular, ir em Run > Configurations e setar o campo Launch para ListActivity1.

4. A Plataforma

Adapter

Adapters so classes responsveis por fazer o que chamado de bind: Receber os dados de um Cursor (ou de alguma outra fonte de dados) e coloc-los nos seus respectivos lugares no layout da Activity.

Para Activities complexas, tipicamente so criadas subclasses da classe CursorAdapter (Adapter dedicado a tratar cursores). No exemplo utilizou-se apenas um ArrayAdapter que posua um array de Strings. Ademais, utilizou-se um mtodo para setar o ListActivity com esse array, chamado (setListAdapter).

4. A Plataforma

Intent

Intent refere-se s intenes. So determinados comandos que se pode enviar ao S.O. para realizar alguma ao. Com Intents pode-se enviar ou recuperar dados entre activities, por exemplo.

s vezes, pode-se querer receber um resultado da atividade que for inicializada a partir de outra. Nesse caso, deve-se iniciar a atividade chamando startActivityForResult() em vez de startActivity(). Para ento receber o resultado da atividade subseqente, aplicar o onActivityResult(), mtodo de retorno. Quando a atividade subseqente feita, ele retorna um resultado de uma Intent para o seu mtodo onActivityResult().

4. A Plataforma

Intent

Intent refere-se s intenes. So determinados comandos que se pode enviar ao S.O. para realizar alguma ao. Com Intents pode-se enviar ou recuperar dados entre activities, por exemplo.

s vezes, pode-se querer receber um resultado da atividade que for inicializada a partir de outra. Nesse caso, deve-se iniciar a atividade chamando startActivityForResult() em vez de startActivity(). Para ento receber o resultado da atividade subseqente, aplicar o onActivityResult(), mtodo de retorno. Quando a atividade subseqente feita, ele retorna um resultado de uma Intent para o seu mtodo onActivityResult().

5. Componentes de Interface Grfica

Componentes de Interface Grfica


A plataforma Android fornece uma srie de componentes de interface grfica desenvolvidos para atender as necessidades de aplicaes embarcadas. Para posicionar e modificar a forma desses componentes a plataforma se utilizou de um esquema onde os componentes so declarados em um arquivo XML. A partir do momento que esses elementos so adicionados eles recebem um identificador nico e so tratados pelo sistema como um recurso

5. Componentes de Interface Grfica

Componentes de Interface Grfica

5. Componentes de Interface Grfica

Componentes de Interface Grfica

5. Componentes de Interface Grfica

Componentes de Interface Grfica


Uma vez montado o layout o cdigo da aplicao pode fazer uso dos componentes que foram adicionados. Para manipular os componentes como objetos preciso declarar uma varivel do tipo do componente e fazer a ligao entre essa varivel e o componente. Para estabelecer essa ligao utilizado o mtodo findViewById(id) herdado da classe Activity. O mtodo nos retorna um objeto do tipo View e por isso h a necessidade de fazer uma operao de converso de tipo antes de atribuir seu retorno a varivel.

5. Componentes de Interface Grfica

Componentes de Interface Grfica

5. Componentes de Interface Grfica

TextView

5. Componentes de Interface Grfica

EditText

5. Componentes de Interface Grfica

Alert
Esse componente no declarado no arquivo de layout. Para utiliz-lo necessrio fazer uma chamada no cdigo como no exemplo a seguir:

AlertDialog.Builder dialogo = new AlertDialog.Builder (ExemploActivity.this); dialogo.setTitle("Resultado"); dialogo.setMessage("Teste alerta"); dialogo.setNeutralButton("Ok",null); dialogo.show();

5. Componentes de Interface Grfica

Alert
Existe ainda a possibilidade de inserir mais de um boto no Alert, podendo esse ser usado como um elemento de confirmao ou deciso da prxima ao a ser tomada. Observe o exemplo abaixo onde ao clicar no boto SIM outro Alert chamado:

5. Componentes de Interface Grfica

Toast

Toast.makeText(getBaseContext(),"Alguma mensagem", Toast. LENGTH_SHORT).show();

5. Componentes de Interface Grfica

Button

<Button Android:id="@+id/button1" Android:layout_width="match_parent" Android:layout_height="wrap_content" Android:text="Boto" />

5. Componentes de Interface Grfica

Button

5. Componentes de Interface Grfica

RadioButton & RadioGroup


<RadioGroup Android:id= "@+id/radioGroup1" Android:layout_width="wrap_content" Android:layout_height="wrap_content" > <RadioButton Android:id= "@+id/radio0" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:checked= "true" Android:text= "RadioButton" /> <RadioButton Android:id= "@+id/radio1" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text= "RadioButton" /> <RadioButton Android:id= "@+id/radio2" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:text= "RadioButton" /> </RadioGroup>

5. Componentes de Interface Grfica

CheckBox

5. Componentes de Interface Grfica

CheckBox

5. Componentes de Interface Grfica

ImageView
<ImageView Android:id="@+id/imageView1" Android:layout_width="178dp" Android:layout_height="270dp" Android:src="@drawable/ic_launcher" />

6. Exportao e Instalao
1. Para gerar o arquivo instalador .apk, deve-se, no Project Explorer do Eclipse IDE, clicar com o boto direito do mouse sob o ttulo do projeto e selecionar a opo Export. 2. Na tela que se abrir deve-se selecionar Export Android Application, em Android e clicar em Next. 3. Na tela seguinte, ir mostrar o ttulo do projeto selecionado, clique apenas em Next. 4. Na tela seguinte selecione Create New Keystore e escolha um local para salvar o keystore dando um nome a ele, alm de configurar uma senha com pelo menos 6 caracteres.

6. Exportao e Instalao
5. Na tela posterior, configure como segue e clique em next:

6. Em seguida escolha um local para salvar o arquivo .apk dando um nome a ele e clique em Finish.

6. Exportao e Instalao
Para instalar, conecte a USB do seu dispositivo com Android, transfira o arquivo . apk gerado e instale normalmente.

You might also like