• Nenhum resultado encontrado

Desenvolvimento para Android Aula 1. Prof. Markus Endler

N/A
N/A
Protected

Academic year: 2021

Share "Desenvolvimento para Android Aula 1. Prof. Markus Endler"

Copied!
26
0
0

Texto

(1)

Desenvolvimento  para  Android  

Aula  1  

(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.  

(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.  

(4)

Smartphones  

HTC  G1,  Droid,  TaYoo  

Motorola  Droid  (X)  

Suno  S880   Samsung  Galaxy  

(5)

Tablets  

Velocity  Micro  Cruz  

Gome  FlyTouch   Acer  beTouch  

Dawa  D7   Toshiba  Android  SmartBook   Cisco  Android  Tablet   Samsung  Galaxy  Tab  

(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_Sub scriber_Market_Share  

(7)

Market  share:  versões  do  Android  

(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)  

(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  

(10)

Arquitetura  do  Android  

(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.  

(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.  

(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  

(14)

Arquitetura:  Bibliotecas    

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

(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  

(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.  

(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  

(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.  

(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  

(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    

(21)
(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    

(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

(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,

(25)

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  

(26)

Referência  Primordial:  Android  Developers  

Referências

Documentos relacionados

Se um roteador aprende sobre um destino de mais de um Routing Protocol, a distância administrativa será comparada e a preferência será atribuída às rotas com distância

O meu problema de pesquisa consistiu em investigar de que forma a imersão nas atividades do Lema, a partir dessas SSE’s, contribui na aprendizagem de saberes

S RI A UROBINDO Por último, sobre as palavras alto, dentro, dentro, alto: elas denotam referências e relações espaciais; para Sri Aurobindo, são também

“Linguagem e política: sobre uma Kehre implícita na filosofia de Martin Heidegger”, Heidegger, Linguagem e Tradução: colóquio internacional, Março de 2002, (org..

O objetivo principal deste trabalho foi mostrar que as orações de gerúndio presentes em construções com verbos do tipo de querer e de aguentar, como nos exemplos em (1), formam com

restrição for necessária para atender ao interesse público, nenhuma irregularidade existirá em sua previsão (Grifo Nosso). A inviabilidade não reside na restrição em si mesma, mas

Mas, no caso de não existir a temporização poderá ocorrer desarmes indevidos durante oscilação de tensão no sistema, seja por curto-circuito próximo

Fica  autorizada  pela  presente  Convenção  Coletiva  de  Trabalho  a  adoção  do  regime  de  compensação  de  horas