Treinamento	  em	  Google	  Android	   Por:	  	  	  	  	  Iury	  Teixeira	   Email:	  iuryteixeira@nooclix.com.br	   	  	 ...
Quem	  sou	  ?	  •  Bacharel	  em	  Sistemas	  de	  Informação	  •  Especialização	  em	  Desenvolvimento	  Web	  com	    ...
Quem	  é	  você?	  
Agenda	  •  Android	  ?	      –  O	  que	  é	  ?	             •    Um	  pouco	  mais	  de	  conceitos	      –  OHA	       ...
Bibliografias	  
Introdução	  •  O	  mercado	  mobile	  cresceu	  muito	  nos	  úlmos	     anos;	  •  Uma	  grande	  procura	  por:	  	    ...
Introdução	  •  Todos	  estamos	  nos	  acostumandos	  com	  a	     comodidade;	  •  Opções	  com	  valor	  elevado;	  •  ...
O	  Android	  !	  •  Para	  tanto	  surgiu	  o	  Google	  Android	  !	  •  Plataforma	  de	  Desenvolvimento	  para	     a...
O	  Android	  !	  •  É	  mando	  pela	  Google	  e	  	  outras	  instuições;	      –  Como	  assim	  ?	  •  Um	  grupo	  c...
Open	  Handset	  Alliance	  •  OHA	  –	  Open	  Handset	  Alliance	     –  São	  lideres	  de	  mercado,	  aliados	  e	  l...
Android	  •  Pode	  ser	  customizado	  de	  qualquer	  forma;	  •  Integrar	  aplicações	  navas	  com	  as	  suas;	  •  ...
Depois	  de	  tanto	  poder…	  
Android	  e	  o	  Linux	  •  Android	  é	  baseado	  no	  Kernel	  2.6	  do	  Linux;	  •  O	  Linux	  é	  responsável	  po...
Android	  e	  o	  Linux	  •  Gerenciamento	  de	  aplicações:	     –  Cada	  aplicação	  inicia	  um	  processo;	         ...
Máquina	  Virtual	    –  Assim	  como	  no	  Java,	  o	  Android	  possui	  uma	  VM,	       chamada	  Dalvik.	  VM	  omiz...
Máquina	  Virtual	                                        Como	  funciona	  a	  exportação	  de	  uma	  	  Código	  Java	 ...
Arquitetura	  da	  Plataforma	  Android	  
Licença	  •  1ª	  Plataforma	  móvel	  completamente	  Open-­‐   Source;	  •  Várias	  vantagens;	     –  Desenvolvedores;...
Android	  Market	  •  Objevo:	  	      –  Possibilitar	  aos	  desenvolvedores	  um	  local	  para	         disponibilizar...
Android	  Market	  •  Android	  Market	  já	  possui	  mais	  aplica3vos	     gratuitos	  que	  a	  AppStore,	  da	  Apple...
Plataformas	  ou	  Versões	  •  No	   mundo	   Android	   as	     versões	   são	   conhecidas	     como	  plataformas;	  
Plataformas	  ou	  Versões	  •  No	  dia	  10/05	  	       –  nova	   versão,	   Ice	   Cream	          Sandwich;	       –...
Android	  SDK	  •  Contém:	  	      –  toda	  a	  API	  necessária	  para	  desenvolver	  ulizando	         a	  linguagem	...
Android	  SDK	  •  Instalando	  o	  SDK...	      –  hvp://developer.android.com/sdk/	  •  Instalando	  o	  plugin	  no	  e...
Configurando	  a	  plataforma	  no	  SDK	  •  O	   SDK	   vem	   vazio,	   ou	   seja,	   sem	   plataforma	     alguma;	  ...
Android	  SDK	  And	  AVD	  Manager	  •  Instalar	  novas	  plataformas	  •  Documentação	  •  Add-­‐ons,	  como:	  Google...
Android	  SDK	  And	  AVD	  Manager	  •  Para	  iniciar	  a	  ferramenta	  clique	  em:	  
Android	  SDK	  And	  AVD	  Manager	  •  Poderá	  acontecer	  o	  seguinte:	  
Android	  SDK	  And	  AVD	  Manager	  •  Solução	        1º	  Passo	  
Android	  SDK	  And	  AVD	  Manager	  •  Solução	                                   2º	  Passo	  
Android	  SDK	  And	  AVD	  Manager	  •  Solução	                                   3º	  Passo	  
Android	  SDK	  And	  AVD	  Manager	  •  Solução	      4º	  Passo	  
Android	  SDK	  And	  AVD	  Manager	  •  Para	   visualizar	   os	   pacotes	   que	   estão	     instalados,	   clique	  ...
Android	  SDK	  And	  AVD	  Manager	  •  Para	  instalar	  uma	  nova	  plataforma,	  faça:	  
Android	  SDK	  And	  AVD	  Manager	  •  Mas	  o	  que	  é	  AVD	  ?	       –  Android	  Virtual	  Device	       –  Criaçã...
Android	  SDK	  And	  AVD	  Manager	                                                Android	  2.1	                        ...
Criando	  uma	  nova	  AVD	  •  Clique	  em	  New	  
HelloWorld	  !	  •  Crie	  um	  novo	  projeto	      –  File	  >	  New	  >	  Android	  Project	  
HelloWorld	  !	  •  Na	  proxima	  janela	         •  Project	  Name:	  Nome	  do	  projeto;	         •  Build	  Target:	 ...
Criando	  o	  HelloWorld	  !	  Após	  preencher	  	  todos	  os	  campos	  	  clique	  em	  Finish	  
Criando	  o	  HelloWorld	  !	  
Estrutura	  do	  Projeto	  •  Src	  –	  Código	  Java	  •  Gen	   –	   Classe	   R.	   Permi	   acessar	   os	   recursos	...
Executando	  o	  Projeto	    Botão	  direito	  no	  projeto	  e	  siga	  os	  passos	  abaixo:	  
Entendendo	  os	  arquivos	  do	  projeto	  •  /res/layout/main.xml	  •  Os	  arquivos	  XML	  na	  pasta	  layout	  repre...
Entendendo	  os	  arquivos	  do	  projeto	  •  /res/values/string.xml	  •  Chave	  -­‐	  Valor;	  •  Muito	  importante	  ...
Entendendo	  os	  arquivos	  do	  projeto	  •  A	  Classe	  R	  •  Possui	  constantes	  (do	  po	  INT)	  para	  todos	  ...
Entendendo	  os	  arquivos	  do	  projeto	  •  IMPORTANTE:	       Todos	  os	  recursos	  devem	  ter:	  nomes	     minusc...
Entendendo	  o	  Código	  
AndroidManifest.xml	  •  Deve-­‐se	  manter	  na	  raiz	  do	  projeto;	  •  Mantem	  todas	  as	  configurações	  do	  pro...
AndroidManifest.xml	  
AndroidManifest.xml	    O	  que	  significa	  essas	  linhas?	  Pode	  ser	  executada	  isoladamente,	  ponto	  inicial	  ...
Obtendo	  componentes	  •  Em	  certos	  casos	  é	  necessário	  capturar	  valores	  da	     visão,	  assim	  como	  adi...
Obtendo	  componentes	  Arquivo	  XML	  (	  layout/main.xml	  )	  Arquivo	  Java	  (	  Principal.java	  )	  
Tratamento	  de	  Eventos	  •  Para	  controlar	  eventos,	  iremos	  o	  ulizar	  o	     método	  setOnClickListener(list...
Exercicio	  1	  •  Crie	  um	  projeto	  chamado	  tandroid;	      –  Crie	  as	  seguintes	  Strings	  (string.xml)	     ...
E	  o	  SysOut	  ?	  	  •  Ao	  ulizar	  o	  método	  System.out.println(),	  nada	       acontece;	  •  Normal;	  •  É	  ...
Widgets	  Iniciando…	       Bem	  vindo	  ao	  mundo	  dos	               Widgets	  
TextView	  e	  EditText	  •  Propriedades:	     –    layout_width	  =	  [“wrap_content”	  	  ou	  “fill_parent”]	  	  -­‐>	...
CheckBox	  e	  ToggleBuvom	           •  Componentes	  para	  seleção	  de	  iten	  opcionais;	           •  Propriedades:...
CheckBox	  e	  ToggleBuvom	  Arquivo	  da	  visão	  anterior	  (XML)	  
RadioBuvom	  •  Seleção	  Única	  •  É	  ulizado	  com	  o	  auxilio	  de	  um	  RadioGroup	  •  Propriedades:	       –  T...
RadioBuvom	  •  Layout	  XML	  
Exercicio	  2	  •  Crie	  um	  novo	  layout,	  calc_salario	      –  Calcule	  a	  previsão	  salarial	  dos	  funcionári...
Exercicio	  2	  
Exercicio	  2	  
AutoCompleteTextView	  •  Efetua	  uma	  busca	  enquanto	  digita;	     –  Propriedades:	         •  comple3onThreshold:	...
AutoCompleteTextView	  •  Arquivo	  XML	  e	  Java	  
Buvon	  e	  ImageBuvon	  •  Ambos	  são	  botões;	  •  Porém,	  o	  Buvom	  não	  pode	  ter	  um	  icone;	  •  O	  ImageB...
ImageView	  •  Permi	  a	  visualização	  de	  imagens:	  JPG,	  PNG	  e	     GIF;	      –  A	  imagem	  no	  XML	  é	  ad...
ImageView	  •  Arquivo	  XML	  e	  Java	  
Spinner	  •  Funciona	  como	  um	  ComboBox;	  •  Propriedades:	     –  Prompt:	  Similar	  a	  um	  Titulo	  de	  Janela...
Spinner	  •  Arquivo	  XML	  e	  Java	  
ProgressDialog	  •  Mensagem	  de	  espera;	  •  Mantem-­‐se	  em	  execução	  através	  do	  método	     show()	  até	  q...
Exercicio	  3	  •  Criar	  uma	  tela	  com:	      –  Spinner	  com	  nome	  de	  carros;	      –  ImageView	  para	  exib...
ImageGallery	  •  Exibi	  diversas	  imagens	  de	  uma	  só	  vez;	  •  As	  fotos	  são	  passadas	  com	  o	  indicador...
ImageGallery	  •  Exemplo	  (	  adicione	  imagens	  em	  drawable)	            •  Criando	  o	  adapter	  	  
ImageGallery	  •  Exemplo	  (	  adicione	  imagens	  em	  drawable)	            •  Criando	  o	  adapter	  	  
ImageGallery	  •  Exemplo	  (	  adicione	  imagens	  em	  drawable)	            •  Criando	  o	  adapter	  	  
ImageGallery	  •  Criando	  a	  Acvity	  (	  deve	  ter	  um	  layout	  para	  isso	  )	  
ImageGallery	  •  Capturando	  a	  imagem	  selecionada	  
Acvity	  Iniciando…	       Bem	  vindo	  ao	  mundo	  dos	                 Ac3vity	  
Acvity	  •  Representa	  uma	  tela	  da	  aplicação;	  •  Tem	  a	  função	  de	  gerenciar	  os	  eventos	  da	  tela;	 ...
Acvity	  •  Deve	  herdar	  de	  Acvity	  ou	  subclasses;	  •  Deve	  implementar	  onCreate:	     –  Inicializar	  	  Vi...
Acvity	  •  Estados	  de	  uma	  acvity	                              Executando	               Temporariamente	  interrom...
Acvity	  •  Cada	  Acvity	  é	  adicionada	  a	  um	  stack	  acvity;	  •  Outras	  podem	  estar:	          •  Executando...
Acvity	  Ciclo	  de	  Vida	                                       Finish()	  
Navegando	  entre	  telas	  •  Para	  navegarmos	  entre	  várias	  telas,	     ulizaremos	  os	  seguintes	  métodos:	   ...
Enviando	  parâmetros	  •  Para	  se	  enviar	  parâmetros	  uliza-­‐se	  a	  classe	     Intent	  em	  união	  com	  a	  ...
Enviando	  parâmetros	  •  Para	  se	  enviar	  parâmetros	  abreviando…	  •  É	  similar	  a	  um	  HashMap;	            ...
Retornando	  valores	  •  Uliza-­‐se	  o	  método	  setResult(codigo,	  intent);	     –  Em	  seguida	  chama	  o	  método...
Retornando	  valores	  •  Capturando	  o	  retorno	     –  onAcvityResult(int	  requestCode,	  int	  resultCode,	  Intent	...
ListAcvity	  •  Exibe	  dados	  em	  forma	  de	  lista;	  •  Subclasse	  de	  Acvity;	  •  Já	  possui	  métodos	  relaci...
ListAcvity	  •  Já	  possui	  barra	  de	  rolagem;	  •  Método	  setContentView(listView),	  é	  chamado	     automáco;	 ...
ListAcvity	  •  Um	  rápido	  exemplo…	                                    Array	  com	  itens	  do	  ListView	  (Lista)	  
ListAcvity	  •  Um	  rápido	  exemplo…	  
Exercicio	  4	  •  Crie	  um	  Menu	  ulizando	  uma	  ListAcvity	     –  Com	  Icones	     –  Ao	  clicar	  em	  um	  ite...
Exercicio	  4	  •  Criando	  o	  layout_list.xml	  
Exercicio	  4	  •  Criando	  a	  classe	  Icones	          •  Representando	  cada	  item	  da	  lista	  
Exercicio	  4	  •  Criando	  o	  a	  classe	  Icones	  (Connuação)	         •  Representando	  cada	  item	  da	  lista	  
Exercicio	  4	  •  Criando	  o	  a	  classe	  IconesAdapter	  (Connuação)	         •  Adaptor	  para	  a	  List	  
Exercicio	  4	  •  Criando	  o	  a	  classe	  IconesAdapter	  (Connuação)	         •  Adaptor	  para	  a	  List	  
Exercicio	  4	  •  Criando	  o	  a	  classe	  IconesAdapter	  (Connuação)	         •  Adaptor	  para	  a	  List	  
Exercicio	  4	  •  Configurando	  a	  Acvity	  
Exercicio	  4	  •  Configurando	  a	  Acvity	  
Intent	  Iniciando…	       Bem	  vindo	  ao	  mundo	  das	                   Intent	  
Intent	  •  Representa	  uma	  “ação”,	  que	  será	  executada	     pela	  aplicação	  em	  conjunto	  com	  o	  sistema	...
Intent	  •  Algumas	  das	  avidades/intenções	  precisam	  de	     autorização/permissão;	     –  Internet:	         •  a...
Vamos	  a	  praca	  •  Abrindo	  o	  browser	  
Vamos	  a	  praca	  •  Faça	  uma	  ligação	      –  Ação:	  Intent.ACTION_CALL;	      –  URI:	  “tel:numerodesejado”;	   ...
Intent	  Finalizando	  •  Pode	  ser	  ulizado	  para	  comunicar	  aplicações	     disntas;	     –  IntentFilter	  •  Exe...
Layouts	  Iniciando…	       Bem	  vindo	  ao	  mundo	  dos	                Layouts	  
Layouts	  •  Define	  um	  forma	  de	  organizar	  os	     componentes	  na	  tela/View;	      –  Horizontal	  ou	  Vercal...
Layouts	  –	  Hierarquia	  de	  Componentes	                        View	                                            ViewG...
Layouts	  •  Propriedades	  como:	     –  Layout_width:	  receber	  inteiros(dpi,	  px)	         •  fill_parent,	  match_pa...
LinearLayout	  •  Possibilita	  a	  organização/alinhamento	  de	     componentes	  na	  vercal	  ou	  horizontal(padrão);...
TableLayout	  •  Semelhante	  a	  uma	  tabela;	      –  Ul	  para	  formulários;	  •  Cada	  linha	  é	  representada	  p...
Layouts	  Iniciando…	       Bem	  vindo	  ao	  mundo	  das	          No3fica3ons	  
Noficaons	  •  Classe:	  android.app.Noficaon	  •  Exibi	  uma	  mensagem	  na	  barra	  de	  	     	  status;	  •  Possui	 ...
Noficaons	  •  Úl	  para	  não	  abrir	  uma	  tela	  sem	  permissão;	  •  Aplicação	  em	  segundo	  plano	  disparar	  u...
Noficaons	  •  Configurando	  
Noficaons	  •  Configurando	  parâmetros	     –  New	  Noficaon	        •  Icone	        •  Texto	  para	  exibição	  na	  ba...
Noficaons	  •  Configurando	  parâmetros	     –  LatesEventInfo	        •  Contexto	        •  Titulo	  da	  noficaon	       ...
Noficaons	  •  Configurando	  para	  cancelar	       Ou	  adicionar	  no	  onDestroy(),	  para	  encerra	  junto	  com	     ...
Hvp	  Iniciando…	        Bem	  vindo	  ao	  mundo	  do	                     HEp	  
HTTP	  •  Muitas	  vezes	  manter	  os	  dados	  no	  disposivo	  é	     caro;	  complexo;	  inseguro;	  •  Para	  isso	  ...
HTTP	  •  Comumente	  existe	  a	  necessidade	  de	     comunicação	  com	  um	  servidor	  para	  troca	  de	     inform...
HTTP	  Post	  •  Indica-­‐se	  ulizar	  o	  método	  POST	  •  Por	  quê?	      –  1º:	  Dados	  colocados	  no	  corpo	  ...
HTTP	  Post	  •  Como	  efetuar	  a	  comunicação	  de	  envio?	  
HTTP	  Post	  •  Como	  efetuar	  a	  comunicação	  de	  retorno?	  
Exercicio	  Final	  •  Vamos	  criar	  uma	  aplicação	  para	  cadastro	  	     	  de	  clientes	  via	  HTTP;	      –  N...
Exercicio	  Final	  •  Vamos	  criar	  uma	  aplicação	  para	  enviar	  email	     	  via	  HTTP;	     –  Email	  enviado...
Obrigado	      Muito	  Obrigado!	  
Próximos SlideShares
Carregando em…5
×

Treinamento Android Nooclix

2.098 visualizações

Publicada em

Slides utilizados em um treinamento do google android, ministrado na nooclix - soluções e treianementos. Para mais informações entre em contato.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.098
No SlideShare
0
A partir de incorporações
0
Número de incorporações
1
Ações
Compartilhamentos
0
Downloads
0
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Treinamento Android Nooclix

  1. 1. Treinamento  em  Google  Android   Por:          Iury  Teixeira   Email:  iuryteixeira@nooclix.com.br                          franciury@gmail.com   Msn:      franciury@hotmail.com                
  2. 2. Quem  sou  ?  •  Bacharel  em  Sistemas  de  Informação  •  Especialização  em  Desenvolvimento  Web  com   JavaEE  (Cursando)  •  Jug  Leader  CaJUG  •  Sócio  na  nooclix  •  Professor  •  Cer3ficações:  SCJP  6          (CSM)    
  3. 3. Quem  é  você?  
  4. 4. Agenda  •  Android  ?   –  O  que  é  ?   •  Um  pouco  mais  de  conceitos   –  OHA   •  Componentes  Básicos   –  Estrutura   •  Widgets   –  Dalvik   •  Ac3vity   –  Kernel   •  Intent   –  Android  Market   •  Um  pouco  de  Layout   –  Emulador   •  No3fica3on   –  Config.  Ambiente   •  HEpConnec3on   –  HelloWorld  Android  !  
  5. 5. Bibliografias  
  6. 6. Introdução  •  O  mercado  mobile  cresceu  muito  nos  úlmos   anos;  •  Uma  grande  procura  por:     •  Jogos  3D   •  Internet  a  qualquer  hora   •  GPS   •  TV  Digital   •  Musicas   •  Ah,  e  fazer  ligações…!  
  7. 7. Introdução  •  Todos  estamos  nos  acostumandos  com  a   comodidade;  •  Opções  com  valor  elevado;  •  Solução  acessível,  flexivel  e  poderosa;   –  Para  empresas;   –  Para  usuários;   –  Para  operadoras;   –  Para  nós,  desenvolvedores.  
  8. 8. O  Android  !  •  Para  tanto  surgiu  o  Google  Android  !  •  Plataforma  de  Desenvolvimento  para   aplicavos  móveis;  •  Baseada  em  Linux;  •  Já  possui  diversos  recursos  instalados  e  pré-­‐ configurados;  
  9. 9. O  Android  !  •  É  mando  pela  Google  e    outras  instuições;   –  Como  assim  ?  •  Um  grupo  chamado  OHA,  formado  por  várias   empresas  do  seguimento;    •  Uniram-­‐se  ao  Google  para  desenvolver  um   solução  aberta,  moderna  e  que  compesse   com  a  Apple;  
  10. 10. Open  Handset  Alliance  •  OHA  –  Open  Handset  Alliance   –  São  lideres  de  mercado,  aliados  e  liderados  pelo   Google;   –  Como:   •  HTC,  Samsung,  Sony,  Motorola,  LG,  Toshiba,  Nextel,   •  T-­‐Mobile,  Asus,  Intel,  etc....   •  Em  tordo  de  50  empresas  integram  o  grupo!   •  Grande  vantagem  por  ser  OpenSource,  Free(Gratuito);  
  11. 11. Android  •  Pode  ser  customizado  de  qualquer  forma;  •  Integrar  aplicações  navas  com  as  suas;  •  Não  há  diferenças  entre  as  apps  navas  e  as   desenvolvidas  por  terceiros;  •  Recursos  3D  baseados  no  OpenGL  ES    
  12. 12. Depois  de  tanto  poder…  
  13. 13. Android  e  o  Linux  •  Android  é  baseado  no  Kernel  2.6  do  Linux;  •  O  Linux  é  responsável  por  gerenciar:     Memória   Redes   Threads   Processos   Drivers   Segurança  
  14. 14. Android  e  o  Linux  •  Gerenciamento  de  aplicações:   –  Cada  aplicação  inicia  um  processo;   •  Seja  com  telas  ou  em  background   –  Se  preciso  o  sistema  poderá  encerrar  um  processo   para  liberar  memória  e  recursos;   •  Podendo  ser  reiniciado...    -­‐  Para  cada  aplicação  existe  um  usuário  no  sistema  operacional;      
  15. 15. Máquina  Virtual   –  Assim  como  no  Java,  o  Android  possui  uma  VM,   chamada  Dalvik.  VM  omizada  para  baixo   consumo  de  recursos   –  Essa  mesma,  é  responsável  por  efetuar  toda   compilação  e  transformar  em  código  executável   no  Android;   –  Não  existe  uma  JVM  no  Android;   –  E  como  funciona  ?  
  16. 16. Máquina  Virtual   Como  funciona  a  exportação  de  uma    Código  Java   aplicação  Android  !   .class  (Java   Compilado)   .dex  (Dalvik   Executável)   .apk  (Aplicação,   imagens…)  
  17. 17. Arquitetura  da  Plataforma  Android  
  18. 18. Licença  •  1ª  Plataforma  móvel  completamente  Open-­‐ Source;  •  Várias  vantagens;   –  Desenvolvedores;   –  Fabricantes  de  Smartphones;   –  E  Usuários;   –  A  licença  da  Apache  possibilita  alterações  sem   obrigar  a  liberação  de  código;    
  19. 19. Android  Market  •  Objevo:     –  Possibilitar  aos  desenvolvedores  um  local  para   disponibilizar  suas  Apps.  •  Para  ulizar:   –  Cadastro,  pagamento  de  US$  25.00;   –  Após  isso  pode  ser  instalado  por  qualquer  usuário;  
  20. 20. Android  Market  •  Android  Market  já  possui  mais  aplica3vos   gratuitos  que  a  AppStore,  da  Apple   – Segundo  analistas,  loja  de  aplica6vos  do   Android  pode  superar  a  App  Store  em   número  total  de  programas  em  cinco  meses   02  de  Maio  de  2011  |  14:30h   – OlharDigital    
  21. 21. Plataformas  ou  Versões  •  No   mundo   Android   as   versões   são   conhecidas   como  plataformas;  
  22. 22. Plataformas  ou  Versões  •  No  dia  10/05     –  nova   versão,   Ice   Cream   Sandwich;   –  Unificar  as  plataformas   •  Smartphone  e  Tablets   –  Features:   •  Reconhecimento  de  Faces;   •  Reconhecimento  de  Voz   –  Superando  o  iOS;   •  Mudança  de  Foco    esse  ano   iliz ado  ainda D i sp o n i b
  23. 23. Android  SDK  •  Contém:     –  toda  a  API  necessária  para  desenvolver  ulizando   a  linguagem  Java;   –  Contém  o  emulador;   •  Sendo  possível  plugar  um  celular  na  USB  para  executar/ testar  a  aplicação;   •  Para   isso   necessita   do   driver   do   celular   instalado   na   máquina;  
  24. 24. Android  SDK  •  Instalando  o  SDK...   –  hvp://developer.android.com/sdk/  •  Instalando  o  plugin  no  eclipse  –  ADT   –  hvp://dl.google.com/android/ADT-­‐10.0.1.zip  
  25. 25. Configurando  a  plataforma  no  SDK  •  O   SDK   vem   vazio,   ou   seja,   sem   plataforma   alguma;  •  Vamos  ulizar  a  versão  2.2;  •  Para   isso   vamos   ulizar   a   ferramenta   inclusa   no   SDK   chamada,   Android   SDK   and   AVD   Manager.  
  26. 26. Android  SDK  And  AVD  Manager  •  Instalar  novas  plataformas  •  Documentação  •  Add-­‐ons,  como:  Google  Maps  •  Drivers  USB  
  27. 27. Android  SDK  And  AVD  Manager  •  Para  iniciar  a  ferramenta  clique  em:  
  28. 28. Android  SDK  And  AVD  Manager  •  Poderá  acontecer  o  seguinte:  
  29. 29. Android  SDK  And  AVD  Manager  •  Solução   1º  Passo  
  30. 30. Android  SDK  And  AVD  Manager  •  Solução   2º  Passo  
  31. 31. Android  SDK  And  AVD  Manager  •  Solução   3º  Passo  
  32. 32. Android  SDK  And  AVD  Manager  •  Solução   4º  Passo  
  33. 33. Android  SDK  And  AVD  Manager  •  Para   visualizar   os   pacotes   que   estão   instalados,   clique   no   menu   de   opções   a   esquerda  em,  Installed  Packages.  
  34. 34. Android  SDK  And  AVD  Manager  •  Para  instalar  uma  nova  plataforma,  faça:  
  35. 35. Android  SDK  And  AVD  Manager  •  Mas  o  que  é  AVD  ?   –  Android  Virtual  Device   –  Criação   de   uma   configuração,   para   que   o   emulador  possa  simular  a  mesma;  
  36. 36. Android  SDK  And  AVD  Manager   Android  2.1   AVD  1   SD  1024  MB   Resol.:  HVGA   Android  2.2   SD  500  MB   AVD  2   Resol.:  HVGA   Android  2.2   SD  1024  MB   AVD  3   Resol.:  WQVGA432  
  37. 37. Criando  uma  nova  AVD  •  Clique  em  New  
  38. 38. HelloWorld  !  •  Crie  um  novo  projeto   –  File  >  New  >  Android  Project  
  39. 39. HelloWorld  !  •  Na  proxima  janela   •  Project  Name:  Nome  do  projeto;   •  Build  Target:  Plataforma  ulizada  (2.2)   •  Applica3on  Name:  No  da  aplicação  que  será  exibida  no   celular;   •  Package  Name:  br.com.nooclix.zn     –  Manterá  a  Acvity  principal  (  Único  );   •  Create  Ac3vity:  Tela  principal  da  aplicação;   •  Min  SDK  Version:    Level  da  API  (  2.2  =  8)    
  40. 40. Criando  o  HelloWorld  !  Após  preencher    todos  os  campos    clique  em  Finish  
  41. 41. Criando  o  HelloWorld  !  
  42. 42. Estrutura  do  Projeto  •  Src  –  Código  Java  •  Gen   –   Classe   R.   Permi   acessar   os   recursos   (imagens,   arquivos,   componentes)   através   de   constantes;   Não   pode   ser   alterada   manualmente;  •  Assests  –  Contém  arquivos  customizados,  como  fontes;  •  Res  –  Contém  subpastas  de  recursos;  •  Drawable  –  Imagens  ulizadas  na  aplicação;  •  Layout  –  Pasta  com  layouts  em  XML;  •  Values  –  Arquivos  XML,  como:  Strings  para  internacionalização;   –  Cores,  Eslos,  etc.  
  43. 43. Executando  o  Projeto   Botão  direito  no  projeto  e  siga  os  passos  abaixo:  
  44. 44. Entendendo  os  arquivos  do  projeto  •  /res/layout/main.xml  •  Os  arquivos  XML  na  pasta  layout  representa  uma  tela  da  aplicação;  •  As  TAGS  representa  os  componentes,  a  criação  da  Visão;  •  Os  componentes  visuais  podem  ser  criados  via  API  Java;  
  45. 45. Entendendo  os  arquivos  do  projeto  •  /res/values/string.xml  •  Chave  -­‐  Valor;  •  Muito  importante  para  internacionalização;   Chave   Valor  
  46. 46. Entendendo  os  arquivos  do  projeto  •  A  Classe  R  •  Possui  constantes  (do  po  INT)  para  todos  os  recursos  criados;  •  Acessa  imagens;  •  É  atualizada  automacamente  pelo  ADT(Plugin),  quando  a  pasta  res   é  alterada;   –  R.drawable.imagem1;   –  R.layout.meu_layout;   –  R.string.valor_string;   –  R.style.meu_eslo;  
  47. 47. Entendendo  os  arquivos  do  projeto  •  IMPORTANTE:   Todos  os  recursos  devem  ter:  nomes   minusculos  e  sem  espaços.  Caso  não  siga  a   regra  a  classe  R  não  será  compilada.  
  48. 48. Entendendo  o  Código  
  49. 49. AndroidManifest.xml  •  Deve-­‐se  manter  na  raiz  do  projeto;  •  Mantem  todas  as  configurações  do  projeto:   –  Nome,  pacote  base,  ícone   –  Acvity’s   –  Versão  SDK   –  Permissões  •  Com  o  eclipse  existe  um  editor  visual;  •  Semelhante  ao  web.xml;  
  50. 50. AndroidManifest.xml  
  51. 51. AndroidManifest.xml   O  que  significa  essas  linhas?  Pode  ser  executada  isoladamente,  ponto  inicial   A  Acvity  estará  na  tela  inicial  
  52. 52. Obtendo  componentes  •  Em  certos  casos  é  necessário  capturar  valores  da   visão,  assim  como  adiciona-­‐los  de  forma   dinâmica;  •  Método  findById(id);  •  É  preciso  fazer  um  cast,  para  o  componente   ulizado;  
  53. 53. Obtendo  componentes  Arquivo  XML  (  layout/main.xml  )  Arquivo  Java  (  Principal.java  )  
  54. 54. Tratamento  de  Eventos  •  Para  controlar  eventos,  iremos  o  ulizar  o   método  setOnClickListener(listener);  Veja;  
  55. 55. Exercicio  1  •  Crie  um  projeto  chamado  tandroid;   –  Crie  as  seguintes  Strings  (string.xml)   •  Produto;  Quandade;  Valor;  Calcular;   –  E  faça:   Efetue  o  valor  total  da  compra  
  56. 56. E  o  SysOut  ?    •  Ao  ulizar  o  método  System.out.println(),  nada   acontece;  •  Normal;  •  É  preciso  usar  o  LogCat,  com  a  chamada:   Log.i(“categoria”,  “mensagem”);   Log.w(“categoria”,  “mensagem”);  
  57. 57. Widgets  Iniciando…   Bem  vindo  ao  mundo  dos   Widgets  
  58. 58. TextView  e  EditText  •  Propriedades:   –  layout_width  =  [“wrap_content”    ou  “fill_parent”]    -­‐>  Preenchimento  Lateral   –  layout_heigth  =  [“wrap_content”    ou  “fill_parent”]    -­‐>  Preenchimento  Altura   –  background  =  “#FFFF34”  -­‐>  Cor  de  Fundo   –  textColor  =  “#FFFF34”  -­‐>  Cor  da  Fonte   –  hint  =  “qualquer  texto”-­‐>  Mensagem  se  o  texto  esver  vazio.   –  autoLink  =  [“web  ou  map  e  etc”]  -­‐  >  o  TextView  Funciona  como  link.   –  password    =  [true|false]  -­‐>  Campo  de  senha(******)   –  layout_weight  =  [“valor  inteiro”]  -­‐>  Refere-­‐se  a  porcentagem  que  o   componente  irá  ocupar  na  tela;   OBS:  A  parr  da  API  Level  8(2.2  Froyo)  fill_parent  tornou-­‐se    match_parent  
  59. 59. CheckBox  e  ToggleBuvom   •  Componentes  para  seleção  de  iten  opcionais;   •  Propriedades:   –  textOn:  Exibe  um  texto  quando  selecionado;   –  textOff:  Exibe  um  texto  quando  não  está  selecionado;   •  Método  isChecked():   –  Retorna  a  situação  da  seleção;  om    
  60. 60. CheckBox  e  ToggleBuvom  Arquivo  da  visão  anterior  (XML)  
  61. 61. RadioBuvom  •  Seleção  Única  •  É  ulizado  com  o  auxilio  de  um  RadioGroup  •  Propriedades:   –  Text:  Texto  a  ser  exibido;   –  Checked:  Se  o  botão  iniciará  marcado  ou  não    [  true  |  false  ]  •  Método  para  obter  o  radio  selecionado,  pertence  ao  Group:   –  getCheckedRadioBuvonId();  
  62. 62. RadioBuvom  •  Layout  XML  
  63. 63. Exercicio  2  •  Crie  um  novo  layout,  calc_salario   –  Calcule  a  previsão  salarial  dos  funcionários:   •  Que  sejam  de  TI;   •  O  funcionário  escolherá  o  percentual  de  aumento;  
  64. 64. Exercicio  2  
  65. 65. Exercicio  2  
  66. 66. AutoCompleteTextView  •  Efetua  uma  busca  enquanto  digita;   –  Propriedades:   •  comple3onThreshold:  Número  minimo  para  iniciar  o   autocomplete  (default  =  2)   •  comple3onHint:  Texto  de  dica  exibido  abaixo  da  caixa;     –  É  necessário  ulizar  um  Adapter   •  ListAdapter  
  67. 67. AutoCompleteTextView  •  Arquivo  XML  e  Java  
  68. 68. Buvon  e  ImageBuvon  •  Ambos  são  botões;  •  Porém,  o  Buvom  não  pode  ter  um  icone;  •  O  ImageBuvon  tem  um  icone;  
  69. 69. ImageView  •  Permi  a  visualização  de  imagens:  JPG,  PNG  e   GIF;   –  A  imagem  no  XML  é  adicionada  através  da   propriedade  src=@drawable/suaimagem;   –  Em  Java:  
  70. 70. ImageView  •  Arquivo  XML  e  Java  
  71. 71. Spinner  •  Funciona  como  um  ComboBox;  •  Propriedades:   –  Prompt:  Similar  a  um  Titulo  de  Janela;  •  Métodos:   –  Object  getSelectedItem()  :  Item  selecionado;   –  long  getSelecteditemId()  :  id  do  item  selecionado;   –  int  getSelectedItemPosion()  :  Posição  do  Item;   –  Ligado  ao  Array;     setOnItemSelectedListener  
  72. 72. Spinner  •  Arquivo  XML  e  Java  
  73. 73. ProgressDialog  •  Mensagem  de  espera;  •  Mantem-­‐se  em  execução  através  do  método   show()  até  que  o  método  dismiss();  
  74. 74. Exercicio  3  •  Criar  uma  tela  com:   –  Spinner  com  nome  de  carros;   –  ImageView  para  exibir  as  fotos  quando     clicados  no  Spinner   –  Obtenha  uma  das  imagens  da  internet:  URL;   •  Ulize  a  ProgressDialog;   –  Adicione  um  efeito  de  transição  
  75. 75. ImageGallery  •  Exibi  diversas  imagens  de  uma  só  vez;  •  As  fotos  são  passadas  com  o  indicador (mouse);  •  É  necessário  a  criação  de  uma  classe  Adapter;   –  Herda  de  BaseAdapter  
  76. 76. ImageGallery  •  Exemplo  (  adicione  imagens  em  drawable)   •  Criando  o  adapter    
  77. 77. ImageGallery  •  Exemplo  (  adicione  imagens  em  drawable)   •  Criando  o  adapter    
  78. 78. ImageGallery  •  Exemplo  (  adicione  imagens  em  drawable)   •  Criando  o  adapter    
  79. 79. ImageGallery  •  Criando  a  Acvity  (  deve  ter  um  layout  para  isso  )  
  80. 80. ImageGallery  •  Capturando  a  imagem  selecionada  
  81. 81. Acvity  Iniciando…   Bem  vindo  ao  mundo  dos   Ac3vity  
  82. 82. Acvity  •  Representa  uma  tela  da  aplicação;  •  Tem  a  função  de  gerenciar  os  eventos  da  tela;  •  Regra  de  Visão;  •  Configurar  o  View  a  ser  exibido;  
  83. 83. Acvity  •  Deve  herdar  de  Acvity  ou  subclasses;  •  Deve  implementar  onCreate:   –  Inicializar    View;   –  Criar  os  elementos  da  tela;  •  Deve  ser  informado  no  AndroidManifest.xml  
  84. 84. Acvity  •  Estados  de  uma  acvity   Executando   Temporariamente  interrompida   Destruída  
  85. 85. Acvity  •  Cada  Acvity  é  adicionada  a  um  stack  acvity;  •  Outras  podem  estar:   •  Executando  em  segundo  plano;     •  Pausadas;   •  Paradas;  •  Toda  tela  é  uma  Acvity:  ligação,  mensagem…  
  86. 86. Acvity  Ciclo  de  Vida   Finish()  
  87. 87. Navegando  entre  telas  •  Para  navegarmos  entre  várias  telas,   ulizaremos  os  seguintes  métodos:   –  startAcvity(intent);   •  Pode  enviar  parâmetros   •  Exibe  uma  nova  acvity   –  startAcvityForResult(intent,codigo);   •  Pode  enviar  parâmetros   •  Exibe  uma  nova  acvity   •  Espera  um  retorno  da  mesma  
  88. 88. Enviando  parâmetros  •  Para  se  enviar  parâmetros  uliza-­‐se  a  classe   Intent  em  união  com  a  Bundle,  ou  não;  •  É  similar  a  um  HashMap;   Valor  INT  e  STRING    
  89. 89. Enviando  parâmetros  •  Para  se  enviar  parâmetros  abreviando…  •  É  similar  a  um  HashMap;   Valor  Boolean  
  90. 90. Retornando  valores  •  Uliza-­‐se  o  método  setResult(codigo,  intent);   –  Em  seguida  chama  o  método  finish();   –  Para  finalizar  a  Acvity  
  91. 91. Retornando  valores  •  Capturando  o  retorno   –  onAcvityResult(int  requestCode,  int  resultCode,  Intent  data);   –  Efetua  a  leitura  do  intent  de  acordo  com  resultCode   –  requestCode  =  codigo  da  Intent  do  startAcvityForResult(i,  codigo);  
  92. 92. ListAcvity  •  Exibe  dados  em  forma  de  lista;  •  Subclasse  de  Acvity;  •  Já  possui  métodos  relacionado  ao   componente  ListView;  
  93. 93. ListAcvity  •  Já  possui  barra  de  rolagem;  •  Método  setContentView(listView),  é  chamado   automáco;  •  Necessário  um  ListAdapter;   •  Fazendo  a  ligação  entre  o  ListView  e  os  dados.  
  94. 94. ListAcvity  •  Um  rápido  exemplo…   Array  com  itens  do  ListView  (Lista)  
  95. 95. ListAcvity  •  Um  rápido  exemplo…  
  96. 96. Exercicio  4  •  Crie  um  Menu  ulizando  uma  ListAcvity   –  Com  Icones   –  Ao  clicar  em  um  item,  navegar  para  a     respecva  tela;   –  Esse  Menu  deve  conter  Icones,  Imagem  de  Fundo   (Adicione  um  tela  de  Login);   •  Precisa-­‐se  de  um  layout.xml   •  Uma  classe  representando  cada  Item   •  Adapter   Códigos  
  97. 97. Exercicio  4  •  Criando  o  layout_list.xml  
  98. 98. Exercicio  4  •  Criando  a  classe  Icones   •  Representando  cada  item  da  lista  
  99. 99. Exercicio  4  •  Criando  o  a  classe  Icones  (Connuação)   •  Representando  cada  item  da  lista  
  100. 100. Exercicio  4  •  Criando  o  a  classe  IconesAdapter  (Connuação)   •  Adaptor  para  a  List  
  101. 101. Exercicio  4  •  Criando  o  a  classe  IconesAdapter  (Connuação)   •  Adaptor  para  a  List  
  102. 102. Exercicio  4  •  Criando  o  a  classe  IconesAdapter  (Connuação)   •  Adaptor  para  a  List  
  103. 103. Exercicio  4  •  Configurando  a  Acvity  
  104. 104. Exercicio  4  •  Configurando  a  Acvity  
  105. 105. Intent  Iniciando…   Bem  vindo  ao  mundo  das   Intent  
  106. 106. Intent  •  Representa  uma  “ação”,  que  será  executada   pela  aplicação  em  conjunto  com  o  sistema   operacional;  •  Exemplos:   –  Abrir  uma  nova  tela  startAcvity(intent);   –  Efetuar  uma  ligação;   –  Abrir  o  browser;   –  Abrir  um  mapa;  
  107. 107. Intent  •  Algumas  das  avidades/intenções  precisam  de   autorização/permissão;   –  Internet:   •  android.permission.INTERNET   –  Contatos:   •  android.permission.READ_CONTACTS   –  Ligação:   •  android.permission.CALL_PHONE  
  108. 108. Vamos  a  praca  •  Abrindo  o  browser  
  109. 109. Vamos  a  praca  •  Faça  uma  ligação   –  Ação:  Intent.ACTION_CALL;   –  URI:  “tel:numerodesejado”;   –  android.permission.CALL_PHONE  
  110. 110. Intent  Finalizando  •  Pode  ser  ulizado  para  comunicar  aplicações   disntas;   –  IntentFilter  •  Exemplos:   –  Nossas  aplicações;   –  Abrir  mapa  em  determinadas  coordenadas;   –  Listar  contatos  ou  UM  contato  por  id;   –  Tocar  músicas,  videos…  
  111. 111. Layouts  Iniciando…   Bem  vindo  ao  mundo  dos   Layouts  
  112. 112. Layouts  •  Define  um  forma  de  organizar  os   componentes  na  tela/View;   –  Horizontal  ou  Vercal;     –  Exatas  coordenadas;   •  Podendo  ser  indicado  X  e  Y;   –  Tabular;  
  113. 113. Layouts  –  Hierarquia  de  Componentes   View   ViewGroup   TextView   ImageView   AbsoluteLayout   LinearLayout   TableLayout  
  114. 114. Layouts  •  Propriedades  como:   –  Layout_width:  receber  inteiros(dpi,  px)   •  fill_parent,  match_parent,  wrap_content;   –  Layout_heightreceber  inteiros(dpi,  px)   •  fill_parent,  match_parent,  wrap_content;   –  Layout_weight   –  Layout_gravity   –  Layout_marginTop,  Layout_marginRight   –  background   –  Entre  outros….  
  115. 115. LinearLayout  •  Possibilita  a  organização/alinhamento  de   componentes  na  vercal  ou  horizontal(padrão);  •  Controlado  pela  propriedade  orientaon;  •  Pode-­‐se  controlar  alinhamento  com  gravity;  •  Pode-­‐se  controlar  preenchimento  com  weight;   –  Relevância  (quem  pode  mais);  
  116. 116. TableLayout  •  Semelhante  a  uma  tabela;   –  Ul  para  formulários;  •  Cada  linha  é  representada  por:   –  TableRow  subclasse  de  LinearLayout;   –  Cada  componente  inserido  representa  uma   coluna  automacamente;  
  117. 117. Layouts  Iniciando…   Bem  vindo  ao  mundo  das   No3fica3ons  
  118. 118. Noficaons  •  Classe:  android.app.Noficaon  •  Exibi  uma  mensagem  na  barra  de      status;  •  Possui  um  conteúdo/mensagem;  •  Visualizando  o  conteúdo  uma  Intent      pode  ser  disparada;  
  119. 119. Noficaons  •  Úl  para  não  abrir  uma  tela  sem  permissão;  •  Aplicação  em  segundo  plano  disparar  um   Alerta;  •  Evita  atrapalhar  o  usuário  de  forma  elegante;  
  120. 120. Noficaons  •  Configurando  
  121. 121. Noficaons  •  Configurando  parâmetros   –  New  Noficaon   •  Icone   •  Texto  para  exibição  na  barra  de  status   •  Hora  e  Data  de  inicialização   –  PendingIntent   •  Contexto   •  Codigo  da  requisicao   •  Intent  (a  ser  executada  no  clique  );   •  Controlar  a  abertura  da  Intent  
  122. 122. Noficaons  •  Configurando  parâmetros   –  LatesEventInfo   •  Contexto   •  Titulo  da  noficaon   •  Conteudo   •  PendingIntent   –  Nofy(id,  noficaon)   •  Id:  idenfica  a  noficacao  
  123. 123. Noficaons  •  Configurando  para  cancelar   Ou  adicionar  no  onDestroy(),  para  encerra  junto  com   a  Acvity  que  a  iniciou!  
  124. 124. Hvp  Iniciando…   Bem  vindo  ao  mundo  do   HEp  
  125. 125. HTTP  •  Muitas  vezes  manter  os  dados  no  disposivo  é   caro;  complexo;  inseguro;  •  Para  isso  a  solução  seria  ulizar  conexões  Hvp;   –  Teremos  acesso  a  dados  complexos;   –  Informações  seguras;  •  Atualmente  as  aplicações  tornam-­‐se  on-­‐line;   –  Tento  acesso  em  tempo  real;  •  Importante:   –  Quanto  maior  o  número  de  serviços  de  uma,  maior   será  o  seu  valor;  
  126. 126. HTTP  •  Comumente  existe  a  necessidade  de   comunicação  com  um  servidor  para  troca  de   informações;  •  Essa  comunicação  é  independente  de   linguagem,  visto  que  é  através  do  protocolo   HTTP;  
  127. 127. HTTP  Post  •  Indica-­‐se  ulizar  o  método  POST  •  Por  quê?   –  1º:  Dados  colocados  no  corpo  da  mensagem;   –  2º:  Separados  da  URI   –  3º:  São  encapsulados  para  o  usuário  
  128. 128. HTTP  Post  •  Como  efetuar  a  comunicação  de  envio?  
  129. 129. HTTP  Post  •  Como  efetuar  a  comunicação  de  retorno?  
  130. 130. Exercicio  Final  •  Vamos  criar  uma  aplicação  para  cadastro      de  clientes  via  HTTP;   –  Nome   –  Endereço,  Numero   –  Tipo  de  Pessoa(FISICA  ou  JURIDICA)   –  Isento  de  ICMS  
  131. 131. Exercicio  Final  •  Vamos  criar  uma  aplicação  para  enviar  email    via  HTTP;   –  Email  enviado  disparar  uma     noficação;  
  132. 132. Obrigado   Muito  Obrigado!  

×