26
Desenvolvimento para Android Aula 1 Prof. Markus Endler

Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

Desenvolvimento  para  Android  Aula  1  

Prof.  Markus  Endler  

Page 2: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

2  

O  que  é  o  Android?  

  A  plataforma  Android  é  composta  de  um  sistema  operacional,  middleware  e  aplicações.  

  O  Android  SDK  (So8ware  Development  Kit)  oferece  ferramentas  e  APIs  necessárias  para  o  desenvolvimento  de  aplicações  para  a  plataforma  Android  usando  a  linguagem  de  programação  Java.  

Page 3: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

3  

Open  Handset  Alliance  (OHA)  

  A    Open  Handset  Alliance  (OHA)  é  um  consórcio  de  mais  de  80  empresas  que    tem  o  objeKvo  de  desenvolver  padrões  abertos  para  disposiKvos  móveis.      

  Entre  as  empresas  parKcipantes  estão  Google,  HTC,  Sony,  Dell,  Intel,  Motorola,  Qualcomm,  Texas  Instruments,  Samsung  Electronics,  LG  Electronics,  T-­‐Mobile,  Nvidia,  entre  outros.  

hYp://www.openhandsetalliance.com  

Page 4: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

4  

Smartphones  

HTC  G1,  Droid,  TaYoo  

Motorola  Droid  (X)  

Suno  S880   Samsung  Galaxy  

Sony  Ericsson  

Page 5: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

5  

Tablets  

Velocity  Micro  Cruz  Gome  FlyTouch  

Acer  beTouch  

Dawa  D7   Toshiba  Android  SmartBook   Cisco  Android  Tablet  

Samsung  Galaxy  Tab  

Page 6: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

6  

Market  share:  plataformas  móveis  

  Relatório  da  comScore  em  setembro  de  2011  sobre  o  mercado  americano  de  assinantes  de  telefonia  móvel  

hYp://www.comscore.com/Press_Events/Press_Releases/2011/11/comScore_Reports_September_2011_U.S._Mobile_Subscriber_Market_Share  

Page 7: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

7  

Market  share:  versões  do  Android  

hYp://developer.android.com/resources/dashboard/plamorm-­‐versions.html  

Page 8: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

8  

CaracterísKcas  

  Framework  de  aplicação  que  permite  reuso  e  subsKtuição  de  componentes  

  Máquina  virtual  Dalvik  oKmizada  para  disposiKvos  móveis  

  Browser  integrado  baseado  no  WebKit  (open-­‐source)  

  Gráficos  oKmizados  uKlizando  biblioteca  gráfica  customizada  2D  e  gráficos  3D  baseados  na  especificação  OpenGL  ES  1.0  (aceleração  via  hardware  opcional)  

  Banco  de  dados  SQLite  para  armazenamento  local  

Page 9: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

9  

CaracterísKcas  (cont.)  

  Suporte  para  arquivos  de  mídia  –  áudio,  vídeo,  imagens  –  (MPEG4,  H.264,  MP3,  AAC,  AMR,  JPG,  PNG,  GIF)  

  Telefonia  GSM    (dependente  do  hardware)  

  Tecnologias  de  comunicação  Bluetooth,  EDGE,  3G,  e  WiFi  (dependente  de  hardware)  

  Câmera,  GPS,  compasso,  e  acelerômetro  (dependente  de  hardware)    Ambiente  de  desenvolvimento  que  inclui  emulador  de  disposiKvo,    

ferramentas  para  debug,  monitoração  de  memória  e  performance,  e  um  plugin  para  desenvolvimento  no  Eclipse  

Page 10: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

10  

Arquitetura  do  Android  

hYp://developer.android.com/guide/basics/what-­‐is-­‐android.html  

Page 11: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

11  

Arquitetura:  Aplicações  

  O  sistema  Android  vem  com  um  conjunto  de  aplicações  incluindo  um  cliente  de  email,  so8ware  para  SMS  (envio  e  recebimento),  calendário,  so8ware  para  visualização  de  mapas  (integração  com  Google  Maps),  browser,  contatos,  entre  outors.  

  Todas  as  aplicações  são  escritas  uKlizando  a  linguagem  Java.  

Page 12: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

12  

Arquitetura:  Framework    

  O  Framework  Android  permite  a  criação  de  aplicações  que  uKlizem  os  diversos  recursos  do  disposiKvo  móvel  e  se  integrem  ao  sistema  e  demais  aplicações.  É  possível  acessar  o  hardware  do  disposiKvo,  obter  a  localização  atual,  configurar  alarmes,  executar  serviços  em  background,  adicionar  noKficações,  entre  outros.  

  Desenvolvedores  tem  acesso  irrestrito  às  mesmas  APIs  uKlizadas  pelas  aplicações    que  já  vem  no  sistema,  já  mencionadas.  

  Uma  nova  aplicação  desenvolvida  pode  publicar  ao  Framework  suas  funcionalidades  e  outras  aplicações  podem  fazer  uso  dessas  funcionalidades.  Esse  mecanismo  permite  que  componentes  sejam  subsKtuídos  no  Framework.  

Page 13: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

13  

Arquitetura:  Framework  (cont.)  

  Para  todas  as  aplicações,  o  Framework  fornece  um  conjunto  de  serviços,  que  inclui:  •  Sistema  de  Views  uKlizado  para  construir  aplicações  contendo  listas,  grids,  

caixas  de  texto,  botões,  web  browser,  entre  outros  

•  Os  Content  Providers  permitem  que  as  aplicações  acessem  dados  de  outras  aplicações  (por  exemplo,  Lista  de  Contatos)  ou  comparKlhem  seus  próprios  dados  

•  Um  Resource  Manager,  que  fornece  acesso  a  recursos  como  textos  localizados,  gráficos  e  arquivos  de  layout  

•  Um  NoKficaKon  Manager  que  permite  que  aplicações  insiram  alertas  customizados  na  barra  de  status  

•  Um  AcKvity  Manager  que  gerencia  o  ciclo-­‐de-­‐vida  de  aplicações  e  fornece  uma  pilha  de  navegação  entre  telas  (AcKviKes)  entre  as  aplicações  que  estão  executando  

Page 14: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

14  

Arquitetura:  Bibliotecas    

  Estão  incluas  uma  série  de  bibliotecas  C/C++  que  são  usadas  por  vários  componentes  do  sistema  Android.    

  A  uKlização  destas  bibliotecas  é  possível  através  do  Framework  Android.    

Page 15: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

15  

Arquitetura:  Bibliotecas  (cont.)   SSL    SQLite    WebKit  (engine  de  browser  web  para  páginas  embuKdas)  

   Audio  Manager    Media  Framework  

•  Para  audio,  video,  e  formatos  de  imagens  (MPEG4,  H.264,  MP3,  AAC,  AMR,  JPG,  PNG,  GIF)  

Bibliotecas  Gráficas:  

  Scalable  Graphics  Library  (SGL-­‐  para  2D)  

  OpenGL  for  Embedded  Devices  (para  3D)    FreeType  (fontes  vector  and  bitmap  fonts)  

  Surface  Manager    Faz  composição  2D  e  3D  de  windows,  widgets,  apps,  toolbars    

Page 16: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

16  

Arquitetura:  RunKme  

  Android  incluí  um  conjunto  de  bibliotecas  padrão  que  fornece  a  maioria  das  funcionalidades  padrão  da  linguagem  Java.  

  Cada  App  Android  executa  em  seu  próprio  processo,  com  uma  instância  da  máquina  virtual  Dalvik.      

  A  Dalvik  foi  criada  de  forma  que  um  disposiKvo  móvel  possa  executar  múlKplas  VMs  eficientemente.  

  Pode-­‐se  criar  várias  threads  em  um  processo  (App  +  VM  Dalvik)    

Page 17: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

17  

Arquitetura:  RunKme  (cont.)  

  A  Dalvik  executa  arquivos  no  formato  .dex  (Dalvik  Executable)  –  oKmizado  para  uKlização  mínima  de  memória  

  É  uma  máquina  virtual  baseada  em  registros  que  executa  classes  compiladas  Java  que  são  transformadas  para  formato  .dex  pela  ferramenta  dx  

  A  Dalvik  depende  do  kernel  Linux  para  funções  de  baixo  nível  como  threading  e  gerenciamento  de  memória  

Page 18: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

18  

Arquitetura:  Linux  Kernel  

  O  Android  executa  sobre  Linux  2.6  para  serviços  de  sistema  padrão  como  segurança,  gerenciamento  de  memória,  gerenciamento  de  processos,  camadas  de  rede,  e  drivers.  

  O  kernel  também  atua  como  uma  camada  de  abstração  entre  o  hardware  e  o  resto  do  sistema  Android.  

Page 19: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

19  

Programação  

  O  SDK  fornece  um  grupo  de  ferramentas  para  facilitar  o  desenvolvimento  Android  

  Essas  ferramentas  são  acessadas  via  linha  de  comando  ou  através  do  plugin  para  Eclipse  chamado  ADT  (Android  Development  Tools)  

Passos  básicos  para  desenvolvimento  de  uma  

aplicação  Android  

Page 20: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

20  

Programação  –  Fases    Setup  –  fase  de  preparação  do  ambiente  de  desenvolvimento.  Criação  dos  

disposiKvos  virtuais  e  preparação  dos  dispisiKvos  reais  para  instalação  das  aplicações  desenvolvidas.  

  Development  –  fase  de  configuração  e  desenvolvimento  do  projeto  Android,  contendo  todos  os  arquivos  de  código  e  recursos  da  aplicação.  

  Debugging  and  TesKng  –  durante  esta  fase  será  produzido  um  arquivo  debugável  .apk  que  será  possível  ser  instalado  e  executado  em  um  disposiKvo  virtual  ou  real.  •  O  ADT  fornece  vários  recursos  para  isntrumentacão  e  depuracão  (através  da  

ferramenta  Android  Debug  Bridge  adb)  

  Publishing  –  fase  onde  a  aplicação  será  configurada  e  construída  para  distribuição  para  usuários.  Para  isso,  ela  terá  que  ser  assinada  com  um  cerKficado    •  (cifrado  com  uma  chave  pública)  

Page 21: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

21  

Elementos  do  Projeto  Android  

Page 22: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

22  

Criando  uma  App  

O  Desenvolvimento  de  uma  app  Android  Kpicamente  envolve:  

  Criar  as  telas  (layouts,  compostas  de  views)  –  editor  gráfico  para  os  arquivos  xml  

  Criar  uma    AcKvity  para  cada  layout  •  A  mainAcKvity  é  o  ponto  de  entrada  na  sua  App  

•  AcKviKes  devem  ser  subclasses  de  AcKvity  totalmente  independentes    

  Projetar  a  transferência  de  controle  entre  AcKviKes  (Intents)    Projetar  o  BD  SQLite  para  persisKr  o  estado  de  sua  app    Possivelmente:  

•  Implementar  interação  com  AcKviKes  de  outra  App    

•  Implementar  acesso/atualizacnao  um  content  provider  

•  Implementar  interação    com  algum  serviço  

  Editar  o  AndroidManifest  da  app,  incluindo  as  permissões,  declarando  as  compoenentes,  e  indicando  os  recursos  necessários    

Page 23: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

23  

Depuração    A  Android  Debug  Bridge  (adb)  é  uma  ferramenta  de  linha  de  comando  que  permite  

comunicação  entre  a  máquina  de  desenvolvimento  (Dev)  e  os  emuladores  ou  disposiKvos  reais  conectados  viaUSB,  pada  depuração,  redirecionamento  de  portas,  e  copia  de  arquivos.  

  É  um  programa  cliente-­‐servidor  (no  Dev)  e  interagem  com  adb  daemons  nos  emuladores/disposiKvos.      

  Execute  ./adb na  pasta  <pasta-­‐sdk>/plamorm-­‐tools    

  O  servidor  procura  por  emuladores/disposiKvos  conectados  e  cada  um  encontrado  recebe  um  par  de  portas  (na  faixa  5555  –  5585)  

server

cliente

Maq. Desenvolvimento

Adb daemon

Adb daemon

Emulator

Device

5555/5556

5557/5558

Page 24: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

24  

Assinatura  de  Apps  e  Updates    Todo  .apk  precisa  ser  assinado    Mas,  para  fim  de  testes  e  depuração  local  (rodar  no  emulador  ou  disposiKvo  

conectado  ao  PC),  o  próprio  Android  SDK  já  criou  um  debug  cerKficate,  que  está  em  <user-­‐home>/.android/debug.keystore  

•  Usando  o  comando  keytool  (Java  Cryptography  Architecture)  pode-­‐se  visualizar  esse  debug  cerKficate  

  Usa-­‐se  tb  comando  keytool,  para  gerar  uma  chave  privada  (em  outro  arquivo  keystore,  protegido  por  uma  senha)  .  

•   Chave  privada  é  usada  para  cifrar  um  digest  (um  hash)  do  arquivo  .apk  Isso  será  a  assinatura  de  sua  app.  

  Uma  vez  que  sua  app  foi  assinada,  toda  futura  atualização  dela  terá  que  ter  a  mesma  assinatura,  senão  o  disposiKvo  não  reconhecerá  o  desenvolvedor  original  da  app  

keytool -list -keystore debug.keystore Enter keystore password: android Keystore type: JKS Keystore provider: SUN

Your keystore contains 1 entry androiddebugkey, Jan 25, 2012, PrivateKeyEntry, Certificate fingerprint (MD5): 85:DF:2B:E4:F9:AC:16:1D:2F:DE:D3:D6:35:BD:FD:33

Page 25: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

26  

Suporte  para  outras  linguagens  

  Em  2009  Google  anunciou  o  Android  NaKve  Development  Kit  (NDK)  

•  Permite  desenvolvimento  de  componentes  em  C  e  C++    

•  Não  é  completo,  pensado  mais  para  ser  um  complemento  ao  Java  

  Google  apresenta  o  Android  ScripKng  Environment  (ASE)  –  permite  o  desenvolvimento  de  apps  usando  Python  e  Lua  

Page 26: Aula 1 - Introduçãoendler/courses/Android... · 12 Arquitetura:+Framework+ O!Framework!Android!permite!a criaçãodeaplicaçõesqueulizemosdiversos+ recursos+do+disposiKvo+móvel+e+se+integrem+ao+sistema+e+demais

27  

Referência  Primordial:  Android  Developers  

http://developer.android.com/