computação móvel 2012.2 - android

61
Aula 01 Configurando ambiente

Upload: tiago-bencardino

Post on 18-Nov-2014

623 views

Category:

Documents


3 download

DESCRIPTION

Aulas de Android ministradas no curso de Computação Móvel - Engenharia de Teleinformática, Universidade Federal do Ceará, 2012.2

TRANSCRIPT

Page 1: Computação Móvel 2012.2 - Android

Aula 01Configurando ambiente

Page 2: Computação Móvel 2012.2 - Android

IntroduçãoAndroid é um sistema operacional voltado para

dispositivos móveisDesenvolvido pela OHA - Open Handset Alliance

(aliança entre várias empresas: Google, HTC, LG, Samsung, Motorola...)

Sistema Operacional baseado no kernel 2.6 do Linux e kernel 3.x(Android versão 4.0 ou superior)

Page 3: Computação Móvel 2012.2 - Android

IntroduçãoSeu código é open source sob licença Apache,

permitindo que seja modificado livremente e redistribuídos

O ambiente de desenvolvimento oficial é o Eclipse + plugin ADT(Android Development Tools), usando a linguagem Java

Laptops, netbooks, smartbooks e TVs inteligentes já estçao utilizando o sistema operacional Android

Page 4: Computação Móvel 2012.2 - Android

AmbientaçãoDownload do Android ADT Bundle, encontrado

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

No ADT Bundle já se encontram todos os softwares que antes eram necessários ser baixados separadamente: Eclipse + ADT plugin, Android SDK Tools, Android Platform-tools, etc.

Page 5: Computação Móvel 2012.2 - Android

Criando uma aplicaçãoCom o Eclipse aberto(e já ambientado), basta

clicar em File -> New -> Android Application Project

Será necessário preencher alguns campos:Application Name – nome da aplicaçãoProject Name – nome do projeto no EclipsePackage Name – parâmetro bastante importante

pois serve como identificador único(dentre todos os outros publicados no Google Play) da aplicação

Acitivity Name – nome da ActivityLayout Name – nome do layout da tela inicial

Page 6: Computação Móvel 2012.2 - Android

Dalvik Debug Monitor Server (DDMS)

Ferramenta que possui diversas funções que interagem com o emulador ou o próprio celular

É possível utilizá-la para visualizar logs da aplicação, simular ligações telefônicas, simular envio de SMS, simular uma posição GPS, etc

Page 7: Computação Móvel 2012.2 - Android

LogCat

Local onde são exibidas as mensagens de log da aplicação

Se o método System.out.println() for chamado, sua saída não será no console, como de costume, e sim no LogCat

Page 8: Computação Móvel 2012.2 - Android

LogCatTipos de logs:

Informação – Log.i(“”,””)Erro – Log.e(“”, “”)Verbose – Log.v(“”,””)Alerta – Log.w(“”,””)Debug – Log.d(“”,””)

Cada tipo tem uma cor, melhorando a visualização no LogCat

Page 9: Computação Móvel 2012.2 - Android

Arquivos geradosactivity_main.xml

Localizado na pasta /res/layoutDefine a interface gráfica que será apresentada na

tela da aplicaçãoArquivo criado com basicamente duas tags:

<RelativeLayout> e <TextView>A tag <RelativaLayout> indica que o layout raiz da

aplicação será do tipo relativoA tag <TextView>, localizada dentro da tag

<RelativeLayout>, indica que a telá terá uma View do tipo TextView localizada no centro

Page 10: Computação Móvel 2012.2 - Android

Arquivos geradosstrings.xml

Localizado na pasta /res/values Permite a organização de todas as mensagens da

aplicação Além de ser uma boa prática de programação, facilita a

internacionalização do aplicativoR.java

Classe gerada automaticamente Contém constantes de todos os recursos da

aplicação(recursos estão localizados na pasta /res) Toda vez que um arquivo da pasta /res é retirado,

adicionado ou modificado, a classe R.java é regerada

Page 11: Computação Móvel 2012.2 - Android

Arquivos geradosMainActivity.java

Localizado no pacote definido no momento da criação do projeto

Classe que herda de Activity, representa uma tela na aplicação

Responsável por tratar os eventos de tela, como um clique em um botão, por exemplo

O primeiro método disparado dessa classe é o onCreate(Bundle). Nesse método é definido que o layout que será utilizado é o acitivity_main.xml

Page 12: Computação Móvel 2012.2 - Android

Arquivos geradosAndroidManifest.xml

Funciona como o coração da aplicaçãoContém todas as configurações de uma aplicação:

Nome da aplicaçãoPacote da aplicaçãoDeclaração de ActivitiesDeclaração de ServicesDeclaração de BroadcastReceiversQuais permissões a aplicação necessitará para ser

executadaÍcone da aplicação

Page 13: Computação Móvel 2012.2 - Android

Aula 02Activites e views básicas

Page 14: Computação Móvel 2012.2 - Android

O que é uma Activity?Representa uma tela do aplicativoTrata os eventos ocorridos – Ex: onClicksetContentView(View): define a interface que

será usadaonCreate (Bundle)AndroidManifest .xmlLayout em xml

Page 15: Computação Móvel 2012.2 - Android

Exemplo activity AndroidManifest.xml

Page 16: Computação Móvel 2012.2 - Android

Ciclo de vida

Page 17: Computação Móvel 2012.2 - Android

Ciclo de vidaonCreate(Bundle)onStart()onResume()onPause()onStop()onDestroy()onRestart()

Page 18: Computação Móvel 2012.2 - Android

ViewSuperclasse das classes de interface (UI) que

interagem com o usuárioPropriedades:

Layout – Tamanho do controle. Ex: (match, fill..)Padding – Distância para a margemGravity – Define a posição (ex: center, left, top..)TextBackgroundEntre outras…

Page 19: Computação Móvel 2012.2 - Android

TextView

Representa um texto na telaSimilar ao JLabel do SwingAlguns tipos comuns: normal, com hint, autolink,

password, etc..

Page 20: Computação Móvel 2012.2 - Android

EditTextUtilizado para entrada de

textoSimilar ao JTextField no

SwingTipos de entrada: texto

normal, apenas números, senha, etc

Page 21: Computação Móvel 2012.2 - Android

Button

Cria um botão na telaNormalmente associado a um evento de onClick,

definido no XML ou criado listener na activity

Page 22: Computação Móvel 2012.2 - Android

Button - XML1o: Define propriedade no nó do botão:

2o: Cria método na Activity

Page 23: Computação Móvel 2012.2 - Android

Button - onClickListener1o: Faça a activity implementar onClickListener:

2o: Implementar o método onClick(View v)

Solução alternativa: classe anônima!

Page 24: Computação Móvel 2012.2 - Android

Outras ViewsCheckBox

ToggleButton

Radio Button

Page 25: Computação Móvel 2012.2 - Android

Outras ViewsSpinner ImageView

SeekBar

Page 26: Computação Móvel 2012.2 - Android

PráticaCriar uma calculadora de IMC (peso/altura^2)

(kg/m^2), que receba o peso e a altura do usuário (EditText ou SeekBar), calcule e exiba o resultado (TextView, Image, etc) conforme a tabela abaixo:

Page 27: Computação Móvel 2012.2 - Android

Aula 03Layouts

Page 28: Computação Móvel 2012.2 - Android

LayoutClasses que herdam de ViewGroup

Usados para organizar componentes graficos na tela

Podem ser desenhados de duas formas:Via XML, pelo plugin gráfico do EclipseVia programação, em tempo de execução

Page 29: Computação Móvel 2012.2 - Android

Linear LayoutExibe seus componentes em uma única direção:

horizontal ou vertical

Page 30: Computação Móvel 2012.2 - Android

FrameLayoutOrganiza seus componentes em forma de pilha,

sendo o último componente adicionado o do topo da pilha

Muito utilizado quando se quer ter uma imagem de fundo

Page 31: Computação Móvel 2012.2 - Android

FrameLayout

Page 32: Computação Móvel 2012.2 - Android

RelativeLayoutAjusta seus componentes atraves de

relacionamentos entre os próprios componentes ou ao seu pai

Desvantagem: caso seja alterado a posição de um componente, pode acontecer de os outros componentes da tela perderem suas posições originais, pois um componente sempre estará posicionado em relação a outro.

Page 33: Computação Móvel 2012.2 - Android

RelativeLayout

Page 34: Computação Móvel 2012.2 - Android

ScrollViewClasse que herda de Frame Layout É bastante utilizada quando a tela possui

muitos elementos, necessitando de um scroll.

Page 35: Computação Móvel 2012.2 - Android

Exemplo - Instagram

Page 36: Computação Móvel 2012.2 - Android

Exemplo - Facebook

Page 37: Computação Móvel 2012.2 - Android

Exemplo - Foursquare

Page 38: Computação Móvel 2012.2 - Android

Prática 02 Criar três activites, navegando entre elas usando um menu

(criado com linear, table ou fragments), tal que o conteúdo das activites contenha:

activity1) três editText e três botões, dispostos em linhas activity2) 4 imagens dispostas nos cantos + um botão no na

parte inferior ocupando toda a linha activity3) Uma imagem grande, maior que a tela, com a opção

de visualizar toda

observação: certifique-se que não há grandes diferenças entre telas pequenas e telas grandes (de 2.7'' a 10.1''), principalmente na activity2

Page 39: Computação Móvel 2012.2 - Android

Prática 02 – Activity 1

Page 40: Computação Móvel 2012.2 - Android

Prática 02 – Activity 2

Page 41: Computação Móvel 2012.2 - Android

Prática 02 – Activity 3

Page 42: Computação Móvel 2012.2 - Android

Aula 04Views avançadas e notification

Page 43: Computação Móvel 2012.2 - Android

Toast

Exibe uma mensagem temporária ao usuárioNão interage com o usuário

Page 44: Computação Móvel 2012.2 - Android

NotificationsClasse que representa uma notificação ao

usuárioSe localiza na barra de status do celularBastante utilizada para notificar o usuário que

algo ocorreu de modo que não atrapalhe o que ele está fazendo no momento

Page 45: Computação Móvel 2012.2 - Android

Notifications

Page 46: Computação Móvel 2012.2 - Android

ListActiviyActivity especial para listar elementos, com uma

listView internaScrollableNecessário preencher um ArrayAdapter para

mostrar os dadosonListItemClick(ListView l, View v, int position,

long id)

Page 47: Computação Móvel 2012.2 - Android

Dialog

Pequena janela que exibe um alerta para o usuário e pode aguardar uma tomada de decisão dele

Page 48: Computação Móvel 2012.2 - Android

LayoutInflateTransforma um layout XML em uma View

Usado quando se quer modificar um layout em tempo de execução

Page 49: Computação Móvel 2012.2 - Android

Aula 05Intents e recursos do dispositivo

Page 50: Computação Móvel 2012.2 - Android

Intent“Intenção” de fazer algoClasse que representa uma mensagem enviada ao

sistema operacionalPode ser utilizada para:

Abrir uma Activity da aplicação atualAbrir uma Activity de outra aplicaçãoAbrir o Google mapsAbrir o browserAbrir o aplicativo de câmera fotográficaetc

Page 51: Computação Móvel 2012.2 - Android

Abrindo o browser

Page 52: Computação Móvel 2012.2 - Android

Abrindo a agenda de contatos

Page 53: Computação Móvel 2012.2 - Android

Fazendo uma ligação

Page 54: Computação Móvel 2012.2 - Android

Mostrando um endereço no Google Maps

Page 55: Computação Móvel 2012.2 - Android

Pratica 04Criar uma Activity que capture um Intent

enviado por uma nova Activity, de outra aplicação.

Page 56: Computação Móvel 2012.2 - Android

Aula 06Banco de dados: SQLite

SharedPreferences

Page 57: Computação Móvel 2012.2 - Android

SQLiteBiblioteca escrita em linguagem C que

implementa um banco de dados SQLRápido, leve e poderosoMultiplataformaSuporta tipo de dados integer, real, text e blobUma das formas de persistir dados no Android

Page 58: Computação Móvel 2012.2 - Android

SQLiteNão necessita de instalação, configuração ou

administraçãoEscreve os dados no próprio disco do

dispositivo(a biblioteca não se conecta a um servidor de banco de dados)

Não permite que os dados de uma aplicação sejam acessados por outra aplicação

Page 59: Computação Móvel 2012.2 - Android

SharedPreferencesPermite salvar dados do tipo primitivo(boolean’s, float’s,

int’s, long’s, e string’s) na forma de chave-valorOs dados ficam salvos mesmo quando a aplicação é

fechadaSharedPreferences geralmente não é utilizado para

salvar grandes cargas de dados, mas apenas para salvar configurações de usuário ou configurações da própria aplicação

Um exemplo bastante utilizado é salvar o login e senha de um usuário. Isto faz que o usuário não necessite digitar seu login e senha sempre

Page 60: Computação Móvel 2012.2 - Android

Aula 07Utilizando Services

Page 61: Computação Móvel 2012.2 - Android

Aula 08Dúvidas e projetos