Vous êtes sur la page 1sur 54

Android

EDVALDO SANTANA S. ACAYABA JNIOR

Sobre o Instrutor

Graduando em Cincia da computao pelo Cin/UFPE Cursando o 7 perodo

Integrante do CITi de 2010 a 2012


Engenheiro de Software no Projeto Samsung - CIn/UFPE Email para contato: essaj@cin.ufpe.br

Agenda

Introduo e motivao Configurao de Ambiente

Estrutura e criao de projetos


Introduo estrutura do Android Conceitos importantes do Android Activity Views Exerccios

Motivao

Introduo

Crescimento tecnolgico e quantitativo dos smartphones

GPS, Cmera, Bluetooth, Internet, TV, Microfone, Jogos..

Desenvolvimento de plataformas livres e flexveis, de grande evoluo tecnolgica


Entrada rpida do Google em um mercado recentemente criado

O que o Android

Plataforma para dispositivos mveis desenvolvida pelo Google com sistema operacional baseado em Linux

Interface rica com diversos aplicativos instalados e disponveis


Liberdade de customizao e otimizao Possibilita a utilizao da linguagem Java para o desenvolvimento de aplicativos

Evoluo

1.0

1.5 Cupcake

Evoluo

2.3 Gingerbread

3.0 Honeycomb

Evoluo

4.2 Jellybean

Cdigo Aberto e Livre?


Primeira plataforma com cdigo aberto e livre Programadores podem baixar e fazer melhorias no cdigo

Empresas podem personalizar o sistema como quiserem

Arquitetura Android

SDK Android

Alm de manter a plataforma, o Google disponibiliza e atualiza constantemente um SDK para o desenvolvimento de aplicaes para o Android O SDK disponvel utiliza a famosa e conhecida linguagem JAVA O Google tambm disponibiliza o plugin para o Eclipse chamado ADT (Android Development Tools) que facilita o desenvolvimento dos aplicativos

Dalvik Virtual Machine


Pilha (JVM) x registradores (Dalvik) Menor tamanho

Compilao e formato .dex


Android Package File (.apk)

Compactao dos arquivos .dex e de recursos utilizados

Configurao do ambiente

Baixar o SDK pelo site para desenvolvedores do Android

http://developer.android.com/sdk/index.html

A IDE utilizada ser o Eclipse


O Google j disponibiliza o SDK em conjunto com o Eclipse e o ADT, no necessrio instalaes separadas necessrio possuir o Java Development Kit (JDK) instalado na mquina

Instalando o SDK

Descompactar o SDK em qualquer diretrio, no necessria instalao Dentro do SDK h uma pasta chamada tools que possui vrias ferramentas e o emulador Android O emulador a principal ferramenta de teste de aplicativos em caso de no haver um dispositivo para teste O SDK possui diversas ferramentas que utilizaremos

Eclipse + ADT Plugin


SDK Tools Plataform-Tools System emulator

Configurando o emulador

Para utilizar o emulador, necessrio incluir o Android Virtual Device (AVD) com target da verso desejada do Android e recursos especficos, como o Google Maps por exemplo. O emulador pode simular qualquer verso do Android

Configurando o Emulador

Para cadastrar um AVD novo, acessar o menu Window -> Android Virtual Device Manager. Ento clicar no boto NEW

Configurando o Emulador

Na incluso do AVD, informar um nome para o mesmo e escolher o TARGET da verso do SDK

Clicar em Create ADV para concluir

Iniciando o Emulador

Aps cadastrar o AVD, seleciona-lo e clicar em START para iniciar o emulador

Emulador

A maioria dos recursos est disponvel como em um celular fsico

Browser, Email, aplicativos, configuraes, contatos e muito mais

Emulador

Demonstrao do Browser

Android Debug Bridge (ADB)


Ferramenta para gerenciar dispositivos e emuladores a partir do PC Funes de debug, instalao e cpia de arquivos .apk

Eclipse realiza funes ADB automaticamente


Outras funes

Listar dispositivos Navegao por shell

Testes
Log

Primeiro Projeto

Criao de um projeto no Eclipse Estrutura de diretrios

Arquivos padres

Criando o Projeto

Para criar um projeto, clique em File -> New -> Project Selecione Android Project e clique em Next

Criando o Projeto

Na prxima tela sero exibidos os seguintes campos:

Project name: Nome do projeto a ser criado

Build target: Verso do SDK que o projeto utilizar


Application name: Ttulo da aplicao. Aparecer quando o app for inicializado no emulador Package name: Nome do pacote em que a Activity principal estar. Deve ser nico Create Activity: Nome da Activity principal do projeto e ponto de partida da aplicao. Uma aplicao pode ter uma ou vrias activities que representam telas da aplicao

Criando o Projeto

Estrutura do Projeto

Estrutura do Projeto

src: Pasta source, contm as classes java do projeto assets: Guarda arquivos opcionais do projeto como .zip, .txt e outros

libs: Armazena bibliotecas de terceiros (.jar)


res: Contm recursos da aplicao

drawable: Diretrio com imagens que sero utilizadas pelo app layout: Contm arquivos XML para criao de layouts

values: Possui arquivos XML com valores de internacionalizao da aplicao e configuraes de tamanho, entre outros valores

Diretrios drawable

Diretrios de armazenamento de imagens Como os aparelhos Android so fragmentados, necessrio criar diretrio especficos para a densidade e resoluo de cada aparelho, entre smartphones e tablets O Android determina automaticamente qual densidade cada aparelho usa Tipos de densidades/resoluo

Ldpi, mdpi, hdpi, xhdpi, xxhdpt, tvhdpi.. Large, xlarge, medium..

Diretrios values

Diretrios para informaes de valores da aplicao Estes diretrios tambm so divididos por densidade/resoluo

Neles, possvel criar alguns tipos de arquivos xml, como o strings.xml, alm do dimens.xml
dimens.xml

Arquivo contendo os calores especficos de dimensionamento de imagens e views para cada tipo de densidade e resoluo Arquivo contendo os valores das strings

strings.xml

Algumas regies pr-definidas

Arquivos do projeto

/res/layout/activity_main.xml

Arquivo que define a interface grfica principal da tela

No primeiro projeto, est apenas definido um <TextView>, que exibe uma mensagem de texto
A mensagem buscada como referncia no atributo android:text=@string/hello. A chave hello buscada no arquivo strings.xml

Outros arquivos de layout podem ser criados e includos no diretrio /res/layout

Arquivos do projeto

/res/layout/main.xml

Arquivos do projeto

/res/values/strings.xml

Constem as mensagens da variveis de texto utilizadas na aplicao

Cada texto tem seu identificador @string/chave

Porque no colocar texto hardcoded?


Internacionalizao Organizao do projeto

Organizao do cdigo
Muito importante!!!

A classe R.java

Essa classe possui constantes que referenciam recursos localizados na pasta res do projeto, como por exemplo, a strings.xml

A classe modificada automaticamente toda vez que um recurso atualizado, deletado ou adicionado, aps o build do projeto.
A classe R NO pode NEM deve ser modificada manualmente.

A classe R.java

Android Manifest

AndroidManisfest.xml

Arquivo principal de configurao do projeto

Registro de todas as activities, inclusive a principal


Registro de Intents, permisses, cone, nome e outras configuraes da aplicao

Android Manifest

Permisses

Para acessar recursos do aparelho, deve ser declarado no manifest a permisso para uso Ex: Para escrever no sdcard

<uses-permission android:name=android.permission.WRITE_EXTERNAL_STORAGE />

Para realizar chamadas

<uses-permission android:name=android.permission.CALL_PHONE />

Para Acessar contatos

<uses-permission android:name=android.permission.READ_CONTACTS />

Activity

Na criao do projeto, gerada automaticamente uma classe que representa a tela inicial do projeto

Cada tela herda da classe android.app.Activity


Cada activity controla o estado e eventos da tela e define qual view (TextView, ImageView, etc..) desenhar uma interface grfica para o usurio Ao herdar de Acitivity criado o mtodo onCreate(bundle) que chamado automaticamente quando a activity criada

Activity

Mtodo setContentView(view) informando a constante R.layout.main, faz com que a view definida no arquivo main.xml seja exibida.

Android Manifest

obrigatrio que cada Acitivity do projeto esteja declarada no arquivo AndroidManifest.xml

<activity android:name=.PrimeiroExemploActivity />

AndroidManifest

Tag <intente-filter> customiza como a activity ser iniciada A ao MAIN significa que a Activity principal pode ser iniciada isoladamente, como ponto inicial da aplicao

<action android:name=android.intente.action.MAIN />

A categoria LAUNCHER indica que a activity estar disponvel na lista de aplicaes junto com as outras no aparelho

<category android:name=android.intente.category.LAUNCHER />

Executando o projeto

Para iniciar um projeto Android, clique com o boto direto no projeto e selecione Run as/ Android Application

O emulador ser iniciado automaticamente e rodar sua aplicao

Ciclo de vida de uma Activity

Todas as aplicaes possuem ciclo de vida ligado s suas Activities, os possveis estados de uma Activity so:

Executando Temporariamente interrompida, em segundo plano Destruda

Cada activity iniciada colocada no topo da pilha do sistema operacional, chamada activity stack. Se uma nova activity iniciada, a antiga fica abaixo. O Android coordena automaticamente a pilha. Se uma activity est pausada, ele pode decidir encerrar o processo para liberar recursos para outras aplicaes

Ciclo de vida de uma Activity

Recuperando objetos

Quando construmos telas usando XML de layout, precisamos recuperar objetos definidos no arquivo dentro do cdigo-fonte

Ex: Recuperar uma ImageView quando definimos uma imagem

No exemplo a seguir, definimos a tag <ImageView> no arquivo de layout Alm disso, definimos um id, que servir para recuperarmos o objeto na execuo

Recuperando objetos

Tipos de views

Views so atributos XML que sero recuperados para a tela. Alguns tipos de views so

TextView

Um label, campo de texto no editvel

ImageView

Componente que exibe uma imagem

Todas as views possuem atributos XML comuns e alguns particulares, que devem ser definidos no arquivo de construo da view.

Recuperando objetos

Se um objeto foi bem definido no XML, ao dar build no projeto, a classe R exibir o id do objeto definido. Isso alterado automaticamente. Lembre-se, a classe R no deve ser modificada manualmente.

Recuperando objetos

Precisamos utilizar o mtodo findViewById(R.id.nome) para recuperarmos de fato o objeto XML para a classe java

Exerccio

Crie um projeto Android e defina em seu layout dois componentes, um TextView e um ImageView

Para cada componente, defina um id


Na activity principal, recupere ambos utilizando o mtodo findViewById(id) Para o ImageView, escolha uma imagem qualquer (No se esquea de adicion-la a pasta drawable) Para o componente TextView, crie um texto qualquer e coloque-o no strings.xml

Outros tipos de Views

Button

Objeto clicvel que leva a alguma ao Parecido com o TextView, mas editvel em tempo de execuo Mtodo rpido de criar uma lista selecionvel Grupo com um lista selecionvel e rolvel

EditText

Spinner

ListView

Checkbox

RadioButton

Button