Refactoring de aplicaciones moviles android utilizando tecnica de offloading - Ané, Juan Cruz (2016)
El uso de dispositivos móviles crece cada vez de forma más abrupta por la constante demanda de sus usuarios de realizar todo tipo de actividades en cualquier momento. Así, las necesidades que se presentan hace que las compañías que crean estos dispositivos móviles generen hardware cada vez más potente para satisfacerlas. Es decir, cámaras con más definición, pantallas más grandes, incremento de la velocidad táctil, entre otras cosas, haciéndolos cada vez más similares a pequeñas computadoras de escritorio. Todo esto hace que algunas características de los dispositivos móviles como lo es, por ejemplo, la batería, no avancen de la forma que lo hacen otros aspectos. En muchos casos, las baterías pasaron de durar semanas a sólo un día. Se han planteado gran cantidad de soluciones con respecto a los consumos excesivos a nivel hardware, por ejemplo, apagando y prendiendo ciertos sensores de acuerdo a su uso en los dispositivos. A raíz de esto, nace la principal motivación de este trabajo que es lograr reducir los consumos de batería de las aplicaciones móviles. Particularmente, el foco del trabajo es el sistema operativo Android, y utilizando la técnica de “offloading”. Esta se basa en usar servidores conectados a una red para ejecutar lógicas complejas provenientes desde el dispositivo móvil. Para aprovechar las ventajas que brinda esta técnica es necesario realizar una refactorización en el código fuente de estas aplicaciones móviles. Es por ello que se desarrolló una herramienta que genera estas refactorizaciones sobre las aplicaciones y permite así ejecución remota de cómputos intensivos. Durante el desarrollo de la misma se tomaron en referencia varios proyectos que siguen esta línea de mejoras y se enriquecieron ciertas características de los mismos. Además, se buscó que esta pueda ser utilizada por cualquier aplicación móvil sin importar la versión del sistema operativo Android en la que fuera ejecutada. Posterior al desarrollo de la misma se realizaron diversas pruebas bajo diferentes dispositivos móviles con aplicaciones que requieren lógicas computacionales intensivas, que son grandes consumidoras de batería. El objetivo de esto fue analizar los resultados obtenidos de las refactorizaciones y exponer los beneficios que trae la utilización de esta técnica sobre los consumos de batería. También se buscó resaltar la importancia de varios aspectos arquitectónicos de las aplicaciones refactorizadas que generan un importante impacto en la mejora obtenida a través de la técnica presentada.