Desenvolvimento de Aplicações Móveis em Java

5,770 views

Published on

Semana da Informática da PUC Minas - SG
Parte 3

Published in: Technology

Desenvolvimento de Aplicações Móveis em Java

  1. 1. Agenda Parte 3 • Introdução • Porque o Google criou o Android? • Plataforma aberta: vantagens • Arquitetura • Características • Vantagens e desvantagens • Ferramentas e modelo de desenvolvimento • Google Phone HTC G1 • Android Developer´s Challenge • Links Interessantes • Conclusões
  2. 2. Plataforma Android Introdução • Plataforma de software para dispositivos móveis criada pela Google em 2007 – Pilha de SW composta por camadas de abstração • Gerenciada pela Open Handset Alliance – Operadoras, empresas de SW, fabricantes de dispositivos e semicondutores • Baseada na plataforma Linux – Versão mais simplificada, sem glibc, native windowing system • Desenvolvimento em Java • SDK para desenvolvimento – Windows, Linux e Mac OSX – Integração com IDEs populares (Eclipse e Netbeans) – Documentação e Emulador
  3. 3. Plataforma Android Introdução • Desenvolvimento em JavaSE 5.0, utilizando bibliotecas Java implementadas pelo Google – Máquina Virtual Dalvik (Não é uma máquina virtual Java) – Criada especificamente para dispositivos com CPUs mais lentos, pouca memória • Inclui – Sistema operacional (Linux 2.6), middleware e aplicações importantes • Independente de hardware – Smartphone, netbook, PDA
  4. 4. Plataforma Android Introdução • Acesso a Internet de forma ubíqua – Simplicidade em conexões a Web • Serviços Google • Igualdade para todas as aplicações – Acesso igual a recursos • Combinação de informações da Web e do dispositivo – Ex: contatos e localização geográfica
  5. 5. Plataforma Android Histórico • Datas importantes – Novembro de 2007: Primeiro SDK liberado ao público – Abril de 2008: Android Developer Challenge – Agosto de 2008: mercado Android anunciado, aplicações de graça (por enquanto) – Setembro de 2008: Primeiro aparelho no mercado com o Android, o T-Mobile G1 – Setembro de 2008: Versão 1.0 do Android SDK é lançado – Outubro de 2008: Código fonte do Android é aberto a comunidade Memória: RAM (192MB), ROM (256MB) Processador: Qualcomm 528 Mhz Peso: 158 Gramas Conectividade: WiFi 802.11b/g, 3G (HSDPA), Quadband GSM Tela: HVGA (320x480) Teclado: Qwerty Recursos: Câmera 2.0 MP, microSD slot, GPS, bússola e acelerômetro
  6. 6. Plataforma Android Porque o Google criou o Android? – Plataforma JavaME • Não é open-source, apenas no JavaSE é open-source • Está um pouco ultrapassada (CLDC + MIDP) • Necessidade de uma nova API de GUI – IPhone não possui suporte oficial a aplicações em Java – Grande comunidade de desenvolvedores Java • Utilizou a comunidade no provimento de sugestões na arquitetura, correções de bugs • O jeito “Google” de ser e fazer as coisas
  7. 7. Plataforma Android Porque o Google criou o Android? – Busca por uma plataforma aberta e rica de recursos • Licença Apache 2.0 e GPL v2 • Navegação pela Web • Serviços Google: Maps, GPS, StreetView, gráficos 2D, Open GL • Media Framework, SQLite – Criação de um novo modelo de desenvolvimento de aplicações móveis • Arquitetura baseada em componentes
  8. 8. Plataforma Android Plataforma Aberta: Vantagens – Consumidores • Dispositivos mais baratos e mais inovadores (recursos, aplicações) – Operadoras • Baixo custo de dispositivos, inovação mais rápida, flexibilidade de customização – Fabricantes de dispositivos • Custo de SW baixo, TTM mais rápido, flexibilidade para prover tipos de produtos diferentes
  9. 9. Plataforma Android Plataforma Aberta: Vantagens – Fabricantes de semicondutores • Acesso a recursos mais avançados do dispositivo, acesso por desenvolvedores – Empresas de software • Integração de aplicações mais simples, demanda por mais aplicações, investimentos em SW – Desenvolvedores • Acesso a API, ferramentas open-source e populares, melhor desenvolvimento de aplicações, custo menor de distribuição e comercialização de aplicações
  10. 10. Plataforma Android Arquitetura
  11. 11. Plataforma Android Arquitetura: Dalvik VM – Máquina virtual Java não padronizada – Dalvik VM != JavaSE VM – Não é baseada no JavaSE e/ou JavaME, não possui as APIs de GUI (Swing, AWT) – Otimizada para dispositivos embarcados – Usabilidade, energia, processamento, gerência de processos – APIs Java presentes • Apache Commons, HttpClient e Junit • Telefonia, Gerenciamento de energia e SMS
  12. 12. Plataforma Android Arquitetura: Dalvik VM – Compilação para Dalvik BC – Os programa são desenvolvidos em Java usando IDEs orientadas a Java. Porém ao invés de compilar para bytecode Java (.class), a compilação vai para dalvik bytecode (.dex) – Cada aplicação é executada em uma única e exclusiva instância da VM • Multitarefas – Utiliza o kernel para as funcionalidades de baixo nível • Gerenciamento de memória e threading
  13. 13. Plataforma Android Características • Filosofia – quot;Successful applications will offer an outstanding end-user experiencequot; • Fast • Responsive • Seamless • Interface gráfica – Modelo de componentes rico baseado em XML – Novos componentes: MapView, WebView ou customizado • Aplicações – Cliente de Email, mensagens por SMS, Calendário, mapas – Navegador, Contatos – Todas as aplicações foram desenvolvidas na linguagem Java
  14. 14. Plataforma Android Conjunto de Widgets
  15. 15. Plataforma Android Vantagens • Utiliza tecnologias como o Java e Eclipse – Grande quantidade de desenvolvedores adeptos • Modelo de UI rico utilizando uma programação declarativa por XML – Mais simples de construir interfaces • SDK com vários recursos • Oferece mais recursos que o JavaME • Possui dispositivos reais no mercado
  16. 16. Plataforma Android Vantagens • Plataforma aberta – Código aberto e independente de hardware • Permite a construção de aplicações complexas • Fácil instalação de aplicações em dispositivos – Menos restritivo que outras plataformas • Navegação Web – WebKit – Mesmo do IPhone, Safari, Chrome • Serviços de localização – Gmaps, Street view, GPS, alertas de proximidada
  17. 17. Plataforma Android Desvantagens • SDK sofre alterações significativas entre versões antes do 1.0 • Modelo de programação complexo comparada a outras existentes (AWT, Swing, MIDP) – Curva de aprendizado para desenvolvedores JavaME é alta • Dispositivos reais só recentemente – Somente dois no mercado • Plataforma nova, com pouco tempo de uso – Bugs, falhas de segurança • Concorrentes fortes no mercado – IPhone, Windows Mobile e outros
  18. 18. Plataforma Android Ferramentas de Desenvolvimento • JavaSE Systems Development Kit • Android SDK • Emulador • Ferramentas de linha de comando (ex: emulador, android debug bridge, etc.) • Documentação • Aplicações de exemplo • Eclipse • ADT: Android Development Tools Plugin • DDMS: Dalvik Debug Monitor Server • Interface gráfica • Baseada em XML • www.droiddraw.org
  19. 19. Plataforma Android Modelo de Desenvolvimento • Modelo de desenvolvimento voltado a componentes • Blocos básicos de construção – Atividades e intenções – Receptores de broadcast – Serviços – Provedores de conteúdo • Aplicações e serviços utilizam recursos de camadas inferiores – Aplicações – App Framework – Bibliotecas nativas – Linux Kernel
  20. 20. Plataforma Android Componentes de uma Aplicação • Visões (Views) – Interfaces de usuário (ex: listas, grids, botões) • Provedores de conteúdo (Content Providers) – Acesso a dados de outras aplicações (ex: contatos) • Gerenciador de recursos (Resource Mgr) – Acesso a recursos (ex: strings, gráficos e leioutes internacionalizador • Gerenciador de notificações (Notification Mgr) – Mostragem de alertas na barra de estado
  21. 21. Plataforma Android Componentes de uma Aplicação • Gerenciador de atividades (Activity Mgr) – Gerencia o ciclo de vida de aplicações • Gerenciador de serviços (Service Mgr) – Gerencia os serviços (sem UI) • Receptores de broadcast – Receptor e reagente a anúncios e eventos • Intenções (Intents) – Mensagens assíncronas de ativação, responsável por acionar as atividades, serviços e receptores de broadcast
  22. 22. Plataforma Android Ciclo de Vida de Atividades
  23. 23. Plataforma Android Ciclo de Vida de Serviços
  24. 24. Plataforma Android Hello, Android! package com.android.hello; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); tv.setText(quot;Hello, Androidquot;); setContentView(tv); } }
  25. 25. Plataforma Android Google Phone: HTC G1 • Android OS (baseado no Linux) • Tela 3.2 polegadas sensível ao toque, resolução HVGA – 65k cores, 320x480 (resolução do IPhone) • Teclado qwerty • Processador Qualcomm MSM 7201A 528 MHz, 192 MB RAM • Quadband GSM/GPRS/EDGE/HSDPA/HSUPA • Câmera de 3.15 MP • WiFi 802.11 b/g • GPS • Trackball • Sensor de acelerômetro e compasso digital
  26. 26. Plataforma Android Google Phone: HTC G1
  27. 27. Plataforma Android Google Phone: HTC G1
  28. 28. Plataforma Android Google Phone: HTC G1 • Vantagens • Desvantagens – É um celular do Google! – É um celular do Google! – Navegação em trackball – Sem suporte a video pela câmera (ligações e – Bom tempo de bateria (1 gravação) dia sobre uso pesado) – Sem suporte a Flash no – Boa responsividade na browser execução de aplicações – Bluetooth restrito – Sem radio FM – Sem auto-rotação da tela
  29. 29. Plataforma Android Android Developer's Challenge • Desafio para que desenvolvedores utilizassem a plataforma Android para o desenvolvimento de aplicações móveis • Mais de 1700 submissões • Os 50 melhores foram escolhidos de todas as submissões – Duas fases de submissão • Os 50 melhores receberam US$ 25,000.00 • Os melhores ganharam – Dez prêmios de US$ 275,000.00 – Dez prêmios de US$ 100,000.00
  30. 30. Plataforma Android Android Developer's Challenge • Áreas sugeridas – Redes sociais – Consumo, gerenciamento, edição ou compartilhamento de de mídia, etc. – Fotos – Produtividade e colaboração, tais como Email, IM, calendário, etc. – Jogos – Notícias e informações – Novas interfaces de usuário – Funcionalidade mash-up – Location-based services – Benefícios humanitários – Aplicações em serviço do desenvolvimento econômico global – Lista de candidatos
  31. 31. Plataforma Android Links Interessantes • Android Market – http://www.android.com/market/ – Loja de aplicações do Google – Permite a oferta de aplicações por desenvolvedores • US$ 25,00 por membro por ano – 70% do lucro vai para os desenvolvedores, restante para operadoras, custos, etc. – Processo similar ao YouTube • Feedback ao desenvolvedor • Publicação de aplicações: register, upload e publish, acompanhamento das aplicações • Android Developers – http://developer.android.com/ • Google APIs – GeoCoder, Maps API – http://code.google.com/android/add-ons/google-apis/index.html
  32. 32. Plataforma Android Conclusões • Mercado está amadurecendo rapidamente – Oportunidades e desafios • Alta demanda – Faltam profissionais especialistas no desenvolvimento de aplicações móveis – Caso comum: desenvolvedor para desktop ou servidor e prepará-lo para dispositivos móveis – Transações móveis, jogos, aplicações corporativas – Consumo de conteúdo (texto, mídia)
  33. 33. Plataforma Android Conclusões • Android como plataforma de desenvolvimento de aplicações ubíquas • Adotado pelo meio acadêmico • Convergência de serviços e tecnologias para o dispositivo móvel – Texto, mídia, dados, serviços baseados em IP • Plataformas de desenvolvimento em Java – Portabilidade, ubiquidade e número de desenvolvedores

×