Identificando variabilidades em aplicações para android

836 views

Published on

Slides resultantes de uma pesquisa (em andamento) sobre variabilidades entre aplicações para Android. Essa pesquisa está sendo feita na disciplina de Linha de Produto de Software, no mestrado na UFRN/Dimap.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
836
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Identificando variabilidades em aplicações para android

  1. 1. Introdução Desenvolvimento ConclusãoIdentificando variabilidades em aplicações para Android Adorilson Bezerra Universidade Federal do Rio Grande do Norte Departamento de Informática e Matemática Aplicada 8 de outubro de 2011 Adorilson Bezerra Identificando variabilidades em aplicações para Android
  2. 2. Introdução Motivação Desenvolvimento Metodologia ConclusãoDiversidade de aparelhos Adorilson Bezerra Identificando variabilidades em aplicações para Android
  3. 3. Introdução Motivação Desenvolvimento Metodologia ConclusãoProblema Diferentes características dos dispositivos Diferente disponibilidade de memória e tamanho máximo da aplicação Diferentes perfis (MIDP 1.0 e MIDP 2.0); Diferentes implementações de um mesmo perfil em J2ME (diferente JSRs); APIs proprietárias e pacotes opcionais; Bugs específicos Línguas internacionais Adorilson Bezerra Identificando variabilidades em aplicações para Android
  4. 4. Introdução Motivação Desenvolvimento Metodologia ConclusãoMetodologia Leitura de trabalhos relacionados Consulta à comunidade Consulta à API (http://developer.android.com/guide/basics/what-is-android.html) Leitura de código-fonte de projetos FLOSS Adorilson Bezerra Identificando variabilidades em aplicações para Android
  5. 5. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidAplicativos móveis (J2ME) Vander Alves, Ivan Cardim, Heitor Vital, Pedro H. M. Sampaio, Alexandre L. G. Damasceno, Paulo Borba, Geber Ramalho: Comparative Analysis of Porting Strategies in J2ME Games. ICSM 2005: 123-132 Pedro H. M. Sampaio, Alexandre L. G. Damasceno, Igor Sampaio, Vander Alves, Geber Ramalho, Paulo Borba: Portando Jogos em J2ME: Desafios, Estudo de Caso, e Diretrizes. SCENTIA 2004 vol. 15 Adorilson Bezerra Identificando variabilidades em aplicações para Android
  6. 6. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidComparative Analysis of Porting Strategies in J2ME Games Estratégias Incremental Approach: the Zaak Case Nokia S60 -> Nokia S40 Redução do tamanho: 186K -> 63K Carregamento de imagens Program Transformation: The Rain of Fire Nokia S40, Nokia S60 e Motorola T720 (ad hoc) Java Transformation System (JaTS) Preprocessing: The My Big Brother Case 8 versões para 50 aparelhos Compilação condicional Adorilson Bezerra Identificando variabilidades em aplicações para Android
  7. 7. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidComparative Analysis of Porting Strategies in J2ME Games Avaliação Adorilson Bezerra Identificando variabilidades em aplicações para Android
  8. 8. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidComparative Analysis of Porting Strategies in J2ME Games Lições aprendidas e boas práticas Iniciar o desenvolvimento pelos dispositivos com maiores restrições É possível combinar as estratégias Separar os interesses (código de lógico e código para elementos gráficos, por exemplo) Testar o software nos aparelhos reais Manter uma base de bugs conhecidos Adorilson Bezerra Identificando variabilidades em aplicações para Android
  9. 9. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidPortando Jogos em J2ME: Desafios, Estudo de Caso, eDiretrizes Aprofundamento do estudo de caso "Zaak"do artigo anterior Categoriza as soluções atuais: Ferramentas de pré-processamento (Antenna e J2ME Polish) Diretrizes específicas (Motorola Port Guide) Diretrizes amplas Ferramentas semi-automáticas (Tira Jump) Abordagens Formais (restrito a GUI) Adorilson Bezerra Identificando variabilidades em aplicações para Android
  10. 10. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidPortando Jogos em J2ME: Desafios, Estudo de Caso, eDiretrizes Efeitos no porte do código-fonte Adorilson Bezerra Identificando variabilidades em aplicações para Android
  11. 11. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidPortando Jogos em J2ME: Desafios, Estudo de Caso, eDiretrizes Síntese das atividades do estudo de caso Adorilson Bezerra Identificando variabilidades em aplicações para Android
  12. 12. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidSobre Android Benjamin Speckmann: The Android mobile platform. Eastern Michigan University. 2008. Jan Bosch: From Software Product Lines to Software Ecosystems. SPLC 2009. Adorilson Bezerra Identificando variabilidades em aplicações para Android
  13. 13. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidThe Android mobile platform Android vs Symbian vs Windows Mobile Adorilson Bezerra Identificando variabilidades em aplicações para Android
  14. 14. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidThe Android mobile platform Desenvolvimento para Android vs Desenvolvimento para Symbian OS Vantagens: todas Desvantagens: nenhuma de ordem técnica Adorilson Bezerra Identificando variabilidades em aplicações para Android
  15. 15. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidFrom Software Product Lines to Software Ecosystems Um ecossistema de software é um conjunto de soluções de software que possibilitam, suportam e automatizam atividades e transações... Adorilson Bezerra Identificando variabilidades em aplicações para Android
  16. 16. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidFrom Software Product Lines to Software Ecosystems Sistemas operacionais Característica: fornecedores de S.O.’s disponibilizam ferramentas de desenvolvimento visando a adotação do ecossistema por desenvolvedores de aplicações Fator de sucesso: minimização do esforço dos desenvolvedores para a criação de aplicações Desafio: rápida evolução dos dispositivos Adorilson Bezerra Identificando variabilidades em aplicações para Android
  17. 17. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidO que é o Android Android é um conjunto de softwares para dispositivos móveis, incluindo sistema operacional, middleware e aplicações chaves/básicas. O Android SDK provê as ferramentas e API’s necessárias para desenvolvimento de aplicações utilizando a linguagem de programação Java. Adorilson Bezerra Identificando variabilidades em aplicações para Android
  18. 18. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidCaracterísticas - independentes do aparelho Framework de aplicações possibilitando reuso e troca de componentes) Maquina virtual Dalvik Navegador web integrado (usando o motor WebKit) SQLite para armazenamento local de dados Suporte para midias comuns de audio, video e formatos de imagens (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) Ambiente de desenvolvimento inclue um emulador de dispositivo, ferramentas para depuração, analise dinâmica de memória e performance, e um plugin para o Eclipse IDE. Adorilson Bezerra Identificando variabilidades em aplicações para Android
  19. 19. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidCaracterísticas - dependentes do aparelho Otimizações gráficas graças a biblioteca 2D customizada; gráficos 3D baseados em Open GL ES 1.0 (aceleração por hardware opcional) Telefonia GSM Bluetooth, EDGE, 3G, e WiFi Câmera, GPS, bússola, e acelerômetro Adorilson Bezerra Identificando variabilidades em aplicações para Android
  20. 20. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidArquitetura Adorilson Bezerra Identificando variabilidades em aplicações para Android
  21. 21. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidArquitetura Aplicações: o Android é distribuído com diversas aplicações Framework de aplicações: componentes para serem utilizadas no desenvolvimento de aplicações Bibliotecas: conjunto de bibliotecas em C/C++ usadas por várias componentes do sistema Runtime: bibliotecas básica do Java Kernel Linux: versão 2.6 Adorilson Bezerra Identificando variabilidades em aplicações para Android
  22. 22. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidEstrutura padrão de diretórios Adorilson Bezerra Identificando variabilidades em aplicações para Android
  23. 23. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidDispositivos com ou sem sensores Acelerômetro Câmera Luminosidade Bluetooth ... Adorilson Bezerra Identificando variabilidades em aplicações para Android
  24. 24. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidSe tem acelerômetro... Figura: Testando se o dispositivo tem acelerômetro Adorilson Bezerra Identificando variabilidades em aplicações para Android
  25. 25. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidGráficos: 2D ou 3D Figura: Testando se o dispositivo tem suporte para gráficos 3d Adorilson Bezerra Identificando variabilidades em aplicações para Android
  26. 26. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidTamanhos e densidade das telas Adorilson Bezerra Identificando variabilidades em aplicações para Android
  27. 27. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidMecanismo de interação Teclado físico Trackball Botões de navegação (five-way navigation pad) Raro esse tipo de restrição Adorilson Bezerra Identificando variabilidades em aplicações para Android
  28. 28. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidVersão da API Adorilson Bezerra Identificando variabilidades em aplicações para Android
  29. 29. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidPacote de compatibilidade Suporte estático para API’s mais recentes A partir da API nível 4 Facilita o desenvolvimento na medida em que permite o desenvolver se preocupar menos com a versão da API Adorilson Bezerra Identificando variabilidades em aplicações para Android
  30. 30. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidVersão do OpenGL ES Adorilson Bezerra Identificando variabilidades em aplicações para Android
  31. 31. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidAndroid NDK Suporte para desenvolvimento em código nativo ARMv5TE (incluindo instruções Thumb-1) ARMv7-A (incluindo instruções Thumb-2 e VFPv3-D16, com suporte opcional para NEON/VFPv3-D32) x86 Aumenta a complexidade sem necessariamente aumentar a performance Adorilson Bezerra Identificando variabilidades em aplicações para Android
  32. 32. Introdução Trabalhos relacionados Desenvolvimento Plataforma Android Conclusão Variabilidades em aplicações para AndroidAndroidManifest.xml "Promete"mas não cumpre As restrições são válidas apenas para filtragem no Android Market Adorilson Bezerra Identificando variabilidades em aplicações para Android
  33. 33. Introdução Dificuldades Desenvolvimento Trabalhos futuros ConclusãoDificuldades Inexperiência com a plataforma Ausência de trabalhos na área de LPS relacionados à plataforma Adorilson Bezerra Identificando variabilidades em aplicações para Android
  34. 34. Introdução Dificuldades Desenvolvimento Trabalhos futuros ConclusãoTrabalhos futuros Aprofundar a pesquisa Adorilson Bezerra Identificando variabilidades em aplicações para Android
  35. 35. Introdução Dificuldades Desenvolvimento Trabalhos futuros ConclusãoPerguntas ? Cuidado como você usa o Android. Ele sabe quando o usuário é um macaco: http://is.gd/nDcoFc Adorilson Bezerra Identificando variabilidades em aplicações para Android

×