Your SlideShare is downloading. ×
  • Like
Identificando variabilidades em aplicações para android
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Identificando variabilidades em aplicações para android

  • 558 views
Published

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 …

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
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
558
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
8
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. Introdução Motivação Desenvolvimento Metodologia ConclusãoDiversidade de aparelhos Adorilson Bezerra Identificando variabilidades em aplicações para Android
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Introdução Dificuldades Desenvolvimento Trabalhos futuros ConclusãoTrabalhos futuros Aprofundar a pesquisa Adorilson Bezerra Identificando variabilidades em aplicações para Android
  • 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