Estudo empírico de análise da compatibilidade de aplicações Android com diferentes versões da API da plataforma
Ano de defesa: | 2017 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | |
Tipo de documento: | Dissertação |
Tipo de acesso: | Acesso aberto |
Idioma: | por |
Instituição de defesa: |
Não Informado pela instituição
|
Programa de Pós-Graduação: |
PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO
|
Departamento: |
Não Informado pela instituição
|
País: |
Brasil
|
Palavras-chave em Português: | |
Área do conhecimento CNPq: | |
Link de acesso: | https://repositorio.ufrn.br/jspui/handle/123456789/23778 |
Resumo: | A plataforma Android é atualmente a mais popular para o desenvolvimento de aplicações móveis, ocupando mais de 80% do mercado de sistemas operacionais para dispositivos móveis, criando uma demanda por customizações de aplicações para lidar com diferentes dispositivos, tais como, tamanho de tela, poder de processamento e memória disponível, idiomas e necessidades específicas dos usuários. Já foram disponibilizadas 23 novas versões da plataforma Android desde o seu lançamento. De forma a permitir a execução com sucesso das aplicações em diferentes dispositivos, é fundamental oferecer suporte às múltiplas versões da API (Application Programming Interface). Esta dissertação de mestrado tem como objetivo: analisar, caracterizar e comparar técnicas utilizadas por aplicações Android para oferecer suporte a múltiplas versões da API. Em especial, o trabalho busca: (i) identificar na literatura quais as técnicas indicadas para suporte às múltiplas versões da API Android; (ii) analisar aplicações reais para quantificar o uso dessas técnicas; e (iii) comparar as características e consequências do uso de tais técnicas. Um estudo empírico foi conduzido para atingir tal objetivo, no qual foram analisadas 25 aplicações Android populares. Os resultados do estudo mostram que existem três técnicas para prover suporte àss múltiplas versões da API: i) pacote de compatibilidade, variabilidades de granularidade grossa da API que envolvam um conjunto de classes; ii) re-implementação de recurso, para situações pontuais e granularidade grossa em nível de classe ou quando o recurso não está disponível em pacote de compatibilidade; e iii) uso explícito da nova API, variabilidades de granularidade fina da API que envolva a chamada de métodos específicos. Através da análise de 25 aplicações identificamos que pacote de compatibilidade foi utilizada por 23 aplicações, re-implementação de recurso por 14 e uso explícito da nova API por 22. A API de fragmentos contêm os elementos mais comuns dentre os lançados em versões superiores da plataforma que são usados pelas aplicações durante sua evolução, sendo referenciados por 68% delas. No geral, as aplicações poderiam aumentar o seu mercado em potencial com adaptações de, em média, 15 trechos de código, por outro lado, os desenvolvedores das aplicações têm se preocupado em evitar código-morto em função da API da plataforma.Na análise de 7 aplicações, 4 delas continham código-morto, mas os quais em geral não representam mais do que 0,1% do seu código total. |
id |
UFRN_7208fae880cc4e31078953d18e78a679 |
---|---|
oai_identifier_str |
oai:https://repositorio.ufrn.br:123456789/23778 |
network_acronym_str |
UFRN |
network_name_str |
Repositório Institucional da UFRN |
repository_id_str |
|
spelling |
Araújo, Adorilson Bezerra dehttp://lattes.cnpq.br/9890253530896966http://lattes.cnpq.br/0189095897739979Aranha, Eduardo Henrique da Silvahttp://lattes.cnpq.br/9520477461031645Almeida, Rodrigo Bonifácio dehttp://lattes.cnpq.br/0368311142108150Kulesza, Uira2017-09-06T20:51:39Z2017-09-06T20:51:39Z2017-02-14ARAÚJO, Adorilson Bezerra de. Estudo empírico de análise da compatibilidade de aplicações Android com diferentes versões da API da plataforma. 2017. 87f. Dissertação (Mestrado em Sistemas e Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2017.https://repositorio.ufrn.br/jspui/handle/123456789/23778A plataforma Android é atualmente a mais popular para o desenvolvimento de aplicações móveis, ocupando mais de 80% do mercado de sistemas operacionais para dispositivos móveis, criando uma demanda por customizações de aplicações para lidar com diferentes dispositivos, tais como, tamanho de tela, poder de processamento e memória disponível, idiomas e necessidades específicas dos usuários. Já foram disponibilizadas 23 novas versões da plataforma Android desde o seu lançamento. De forma a permitir a execução com sucesso das aplicações em diferentes dispositivos, é fundamental oferecer suporte às múltiplas versões da API (Application Programming Interface). Esta dissertação de mestrado tem como objetivo: analisar, caracterizar e comparar técnicas utilizadas por aplicações Android para oferecer suporte a múltiplas versões da API. Em especial, o trabalho busca: (i) identificar na literatura quais as técnicas indicadas para suporte às múltiplas versões da API Android; (ii) analisar aplicações reais para quantificar o uso dessas técnicas; e (iii) comparar as características e consequências do uso de tais técnicas. Um estudo empírico foi conduzido para atingir tal objetivo, no qual foram analisadas 25 aplicações Android populares. Os resultados do estudo mostram que existem três técnicas para prover suporte àss múltiplas versões da API: i) pacote de compatibilidade, variabilidades de granularidade grossa da API que envolvam um conjunto de classes; ii) re-implementação de recurso, para situações pontuais e granularidade grossa em nível de classe ou quando o recurso não está disponível em pacote de compatibilidade; e iii) uso explícito da nova API, variabilidades de granularidade fina da API que envolva a chamada de métodos específicos. Através da análise de 25 aplicações identificamos que pacote de compatibilidade foi utilizada por 23 aplicações, re-implementação de recurso por 14 e uso explícito da nova API por 22. A API de fragmentos contêm os elementos mais comuns dentre os lançados em versões superiores da plataforma que são usados pelas aplicações durante sua evolução, sendo referenciados por 68% delas. No geral, as aplicações poderiam aumentar o seu mercado em potencial com adaptações de, em média, 15 trechos de código, por outro lado, os desenvolvedores das aplicações têm se preocupado em evitar código-morto em função da API da plataforma.Na análise de 7 aplicações, 4 delas continham código-morto, mas os quais em geral não representam mais do que 0,1% do seu código total.Android is currently the most popular platformfor the development of mobile applications, representing more than 80% of the operating systems market for mobile devices. This causes demands for application customizations to handle different devices such as screen size, processing power and available memory, languages, and specific user needs. Twenty-three new versions of Android platformhave been released since its first release. In order to enable the successful execution of applications on different devices, it is essential to support multiple versions of the Application Programming Interface (API). This dissertation aims to analyze, characterize and compare techniques used by Android applications to support multiple versions of the API. In particular, the work seeks: (i) to identify the used techniques to support multiple versions of the Android API in the literature; (ii) to analyze real applications to quantify the usage of these techniques; and (iii) to compare the characteristics and consequences of using such techniques. An empirical study, in which 25 popular Android apps were analyzed, was conducted to achieve this goal. The results of the study show that there are three techniques to support multiple versions of the API: i) compatibility package, that adrresses API coarse granularity variabilities involving a set of classes; ii) re-implementation of resource used for specific situations and coarse granularity at class level or when resource is not available in compatibility package; and iii)explicit use of the new API that allows implementing fine grained variabilities of the API that involves calling of specific methods. Through the analysis of 25 applications, we have identified that compatibility package was used by 23 applications, re-implementation of resource was used by 14 applications and the explicit usage of the new API was used by 22 applications. The API fragments contains the most common elements among those released in higher versions of the platformthat are used by applications during their evolution, and it is referenced by 68% of them. In general, applications could increase their potential market with adaptations of, on average, 15 code snippets. On the other hand, application developers have been worried about how avoiding dead code based on platform API. In the analysis of 7 applications, 4 of them contained dead code, but it did not represent more than 0.1% of total code.porCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAOGerência de variabilidadesImplementação de variabilidadesAplicações AndroidPlataforma de computação móvelEstudos empíricosSuporte multi-versão de APIEstudo empírico de análise da compatibilidade de aplicações Android com diferentes versões da API da plataformainfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisPROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃOUFRNBrasilinfo:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFRNinstname:Universidade Federal do Rio Grande do Norte (UFRN)instacron:UFRNORIGINALAdorilsonBezerraDeAraujo_DISSERT.pdfAdorilsonBezerraDeAraujo_DISSERT.pdfapplication/pdf1552513https://repositorio.ufrn.br/bitstream/123456789/23778/1/AdorilsonBezerraDeAraujo_DISSERT.pdfadf9fda2da94319cdb8a3d6be113416cMD51TEXTAdorilsonBezerraDeAraujo_DISSERT.pdf.txtAdorilsonBezerraDeAraujo_DISSERT.pdf.txtExtracted texttext/plain145127https://repositorio.ufrn.br/bitstream/123456789/23778/4/AdorilsonBezerraDeAraujo_DISSERT.pdf.txt7db2263268b7c1796ae3a4600b0917e6MD54THUMBNAILAdorilsonBezerraDeAraujo_DISSERT.pdf.jpgAdorilsonBezerraDeAraujo_DISSERT.pdf.jpgIM Thumbnailimage/jpeg3159https://repositorio.ufrn.br/bitstream/123456789/23778/5/AdorilsonBezerraDeAraujo_DISSERT.pdf.jpg22c56224ae312e915a26d219e93a71a6MD55123456789/237782017-11-04 22:04:03.036oai:https://repositorio.ufrn.br:123456789/23778Repositório de PublicaçõesPUBhttp://repositorio.ufrn.br/oai/opendoar:2017-11-05T01:04:03Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN)false |
dc.title.pt_BR.fl_str_mv |
Estudo empírico de análise da compatibilidade de aplicações Android com diferentes versões da API da plataforma |
title |
Estudo empírico de análise da compatibilidade de aplicações Android com diferentes versões da API da plataforma |
spellingShingle |
Estudo empírico de análise da compatibilidade de aplicações Android com diferentes versões da API da plataforma Araújo, Adorilson Bezerra de CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO Gerência de variabilidades Implementação de variabilidades Aplicações Android Plataforma de computação móvel Estudos empíricos Suporte multi-versão de API |
title_short |
Estudo empírico de análise da compatibilidade de aplicações Android com diferentes versões da API da plataforma |
title_full |
Estudo empírico de análise da compatibilidade de aplicações Android com diferentes versões da API da plataforma |
title_fullStr |
Estudo empírico de análise da compatibilidade de aplicações Android com diferentes versões da API da plataforma |
title_full_unstemmed |
Estudo empírico de análise da compatibilidade de aplicações Android com diferentes versões da API da plataforma |
title_sort |
Estudo empírico de análise da compatibilidade de aplicações Android com diferentes versões da API da plataforma |
author |
Araújo, Adorilson Bezerra de |
author_facet |
Araújo, Adorilson Bezerra de |
author_role |
author |
dc.contributor.authorID.pt_BR.fl_str_mv |
|
dc.contributor.authorLattes.none.fl_str_mv |
http://lattes.cnpq.br/9890253530896966 |
dc.contributor.advisorID.pt_BR.fl_str_mv |
|
dc.contributor.advisorLattes.none.fl_str_mv |
http://lattes.cnpq.br/0189095897739979 |
dc.contributor.referees1.none.fl_str_mv |
Aranha, Eduardo Henrique da Silva |
dc.contributor.referees1ID.pt_BR.fl_str_mv |
|
dc.contributor.referees1Lattes.none.fl_str_mv |
http://lattes.cnpq.br/9520477461031645 |
dc.contributor.referees2.none.fl_str_mv |
Almeida, Rodrigo Bonifácio de |
dc.contributor.referees2ID.pt_BR.fl_str_mv |
|
dc.contributor.referees2Lattes.none.fl_str_mv |
http://lattes.cnpq.br/0368311142108150 |
dc.contributor.author.fl_str_mv |
Araújo, Adorilson Bezerra de |
dc.contributor.advisor1.fl_str_mv |
Kulesza, Uira |
contributor_str_mv |
Kulesza, Uira |
dc.subject.cnpq.fl_str_mv |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO |
topic |
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::SISTEMAS DE COMPUTACAO Gerência de variabilidades Implementação de variabilidades Aplicações Android Plataforma de computação móvel Estudos empíricos Suporte multi-versão de API |
dc.subject.por.fl_str_mv |
Gerência de variabilidades Implementação de variabilidades Aplicações Android Plataforma de computação móvel Estudos empíricos Suporte multi-versão de API |
description |
A plataforma Android é atualmente a mais popular para o desenvolvimento de aplicações móveis, ocupando mais de 80% do mercado de sistemas operacionais para dispositivos móveis, criando uma demanda por customizações de aplicações para lidar com diferentes dispositivos, tais como, tamanho de tela, poder de processamento e memória disponível, idiomas e necessidades específicas dos usuários. Já foram disponibilizadas 23 novas versões da plataforma Android desde o seu lançamento. De forma a permitir a execução com sucesso das aplicações em diferentes dispositivos, é fundamental oferecer suporte às múltiplas versões da API (Application Programming Interface). Esta dissertação de mestrado tem como objetivo: analisar, caracterizar e comparar técnicas utilizadas por aplicações Android para oferecer suporte a múltiplas versões da API. Em especial, o trabalho busca: (i) identificar na literatura quais as técnicas indicadas para suporte às múltiplas versões da API Android; (ii) analisar aplicações reais para quantificar o uso dessas técnicas; e (iii) comparar as características e consequências do uso de tais técnicas. Um estudo empírico foi conduzido para atingir tal objetivo, no qual foram analisadas 25 aplicações Android populares. Os resultados do estudo mostram que existem três técnicas para prover suporte àss múltiplas versões da API: i) pacote de compatibilidade, variabilidades de granularidade grossa da API que envolvam um conjunto de classes; ii) re-implementação de recurso, para situações pontuais e granularidade grossa em nível de classe ou quando o recurso não está disponível em pacote de compatibilidade; e iii) uso explícito da nova API, variabilidades de granularidade fina da API que envolva a chamada de métodos específicos. Através da análise de 25 aplicações identificamos que pacote de compatibilidade foi utilizada por 23 aplicações, re-implementação de recurso por 14 e uso explícito da nova API por 22. A API de fragmentos contêm os elementos mais comuns dentre os lançados em versões superiores da plataforma que são usados pelas aplicações durante sua evolução, sendo referenciados por 68% delas. No geral, as aplicações poderiam aumentar o seu mercado em potencial com adaptações de, em média, 15 trechos de código, por outro lado, os desenvolvedores das aplicações têm se preocupado em evitar código-morto em função da API da plataforma.Na análise de 7 aplicações, 4 delas continham código-morto, mas os quais em geral não representam mais do que 0,1% do seu código total. |
publishDate |
2017 |
dc.date.accessioned.fl_str_mv |
2017-09-06T20:51:39Z |
dc.date.available.fl_str_mv |
2017-09-06T20:51:39Z |
dc.date.issued.fl_str_mv |
2017-02-14 |
dc.type.status.fl_str_mv |
info:eu-repo/semantics/publishedVersion |
dc.type.driver.fl_str_mv |
info:eu-repo/semantics/masterThesis |
format |
masterThesis |
status_str |
publishedVersion |
dc.identifier.citation.fl_str_mv |
ARAÚJO, Adorilson Bezerra de. Estudo empírico de análise da compatibilidade de aplicações Android com diferentes versões da API da plataforma. 2017. 87f. Dissertação (Mestrado em Sistemas e Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2017. |
dc.identifier.uri.fl_str_mv |
https://repositorio.ufrn.br/jspui/handle/123456789/23778 |
identifier_str_mv |
ARAÚJO, Adorilson Bezerra de. Estudo empírico de análise da compatibilidade de aplicações Android com diferentes versões da API da plataforma. 2017. 87f. Dissertação (Mestrado em Sistemas e Computação) - Centro de Ciências Exatas e da Terra, Universidade Federal do Rio Grande do Norte, Natal, 2017. |
url |
https://repositorio.ufrn.br/jspui/handle/123456789/23778 |
dc.language.iso.fl_str_mv |
por |
language |
por |
dc.rights.driver.fl_str_mv |
info:eu-repo/semantics/openAccess |
eu_rights_str_mv |
openAccess |
dc.publisher.program.fl_str_mv |
PROGRAMA DE PÓS-GRADUAÇÃO EM SISTEMAS E COMPUTAÇÃO |
dc.publisher.initials.fl_str_mv |
UFRN |
dc.publisher.country.fl_str_mv |
Brasil |
dc.source.none.fl_str_mv |
reponame:Repositório Institucional da UFRN instname:Universidade Federal do Rio Grande do Norte (UFRN) instacron:UFRN |
instname_str |
Universidade Federal do Rio Grande do Norte (UFRN) |
instacron_str |
UFRN |
institution |
UFRN |
reponame_str |
Repositório Institucional da UFRN |
collection |
Repositório Institucional da UFRN |
bitstream.url.fl_str_mv |
https://repositorio.ufrn.br/bitstream/123456789/23778/1/AdorilsonBezerraDeAraujo_DISSERT.pdf https://repositorio.ufrn.br/bitstream/123456789/23778/4/AdorilsonBezerraDeAraujo_DISSERT.pdf.txt https://repositorio.ufrn.br/bitstream/123456789/23778/5/AdorilsonBezerraDeAraujo_DISSERT.pdf.jpg |
bitstream.checksum.fl_str_mv |
adf9fda2da94319cdb8a3d6be113416c 7db2263268b7c1796ae3a4600b0917e6 22c56224ae312e915a26d219e93a71a6 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositório Institucional da UFRN - Universidade Federal do Rio Grande do Norte (UFRN) |
repository.mail.fl_str_mv |
|
_version_ |
1797777634372878336 |