computação móvel 2012.2 - android

Post on 18-Nov-2014

623 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Aula 01Configurando ambiente

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)

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

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.

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

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

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

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

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

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

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

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

Aula 02Activites e views básicas

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

Exemplo activity AndroidManifest.xml

Ciclo de vida

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

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…

TextView

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

password, etc..

EditTextUtilizado para entrada de

textoSimilar ao JTextField no

SwingTipos de entrada: texto

normal, apenas números, senha, etc

Button

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

definido no XML ou criado listener na activity

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

2o: Cria método na Activity

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

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

Solução alternativa: classe anônima!

Outras ViewsCheckBox

ToggleButton

Radio Button

Outras ViewsSpinner ImageView

SeekBar

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:

Aula 03Layouts

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

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

horizontal ou vertical

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

FrameLayout

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.

RelativeLayout

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

muitos elementos, necessitando de um scroll.

Exemplo - Instagram

Exemplo - Facebook

Exemplo - Foursquare

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

Prática 02 – Activity 1

Prática 02 – Activity 2

Prática 02 – Activity 3

Aula 04Views avançadas e notification

Toast

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

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

Notifications

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)

Dialog

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

LayoutInflateTransforma um layout XML em uma View

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

Aula 05Intents e recursos do dispositivo

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

Abrindo o browser

Abrindo a agenda de contatos

Fazendo uma ligação

Mostrando um endereço no Google Maps

Pratica 04Criar uma Activity que capture um Intent

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

Aula 06Banco de dados: SQLite

SharedPreferences

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

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

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

Aula 07Utilizando Services

Aula 08Dúvidas e projetos

top related