Upload
tiago-bencardino
View
617
Download
3
Embed Size (px)
DESCRIPTION
Aulas de Android ministradas no curso de Computação Móvel - Engenharia de Teleinformática, Universidade Federal do Ceará, 2012.2
Citation preview
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