Garbage collecting the Internet: a survey of distributed garbage collection
ACM Computing Surveys (CSUR)
The Coign automatic distributed partitioning system
OSDI '99 Proceedings of the third symposium on Operating systems design and implementation
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Data mining: concepts and techniques
Data mining: concepts and techniques
Supporting program comprehension using semantic and structural information
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Towards a Distributed Platform for Resource-Constrained Devices
ICDCS '02 Proceedings of the 22 nd International Conference on Distributed Computing Systems (ICDCS'02)
Balancing Performance, Energy, and Quality in Pervasive Computing
ICDCS '02 Proceedings of the 22 nd International Conference on Distributed Computing Systems (ICDCS'02)
Adaptive Offloading for Pervasive Computing
IEEE Pervasive Computing
Portable and efficient distributed threads for Java
Proceedings of the 5th ACM/IFIP/USENIX international conference on Middleware
Puppeteer: Component-based adaptation for mobile computing
USITS'01 Proceedings of the 3rd conference on USENIX Symposium on Internet Technologies and Systems - Volume 3
ICPADS '08 Proceedings of the 2008 14th IEEE International Conference on Parallel and Distributed Systems
J-Orchestra: Enhancing Java programs with distribution capabilities
ACM Transactions on Software Engineering and Methodology (TOSEM)
Using Bytecode Instruction Counting as Portable CPU Consumption Metric
Electronic Notes in Theoretical Computer Science (ENTCS)
MAUI: making smartphones last longer with code offload
Proceedings of the 8th international conference on Mobile systems, applications, and services
CODES/ISSS '10 Proceedings of the eighth IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis
Journal of Software Maintenance and Evolution: Research and Practice
CloneCloud: elastic execution between mobile device and cloud
Proceedings of the sixth conference on Computer systems
Report on the international symposium on high confidence software (ISHCS 2011/2012)
ACM SIGSOFT Software Engineering Notes
Refactoring multicore applications towards energy efficiency
Proceedings of the 2013 companion publication for conference on Systems, programming, & applications: software for humanity
AppMobiCloud: improving mobile web applications by mobile-cloud convergence
Proceedings of the 5th Asia-Pacific Symposium on Internetware
SM@RT offloader: supporting adaptive computation offloading for Android applications
Proceedings Demo & Poster Track of ACM/IFIP/USENIX International Middleware Conference
Proceedings of the 2013 ACM workshop on Mobile development lifecycle
Hi-index | 0.00 |
Computation offloading is a promising way to improve the performance as well as reducing the battery power consumption of a smartphone application by executing some parts of the application on a remote server. Supporting such capability is not easy for smartphone application developers due to (1) correctness: some code, e.g., that for GPS, gravity, and other sensors, can run only on the smartphone so that developers have to identify which parts of the application cannot be offloaded; (2) effectiveness: the reduced execution time must be greater than the network delay caused by computation offloading so that developers need to calculate which parts are worth offloading; (3) adaptability: smartphone applications often face changes of user requirements and runtime environments so that developers need to implement the adaptation on offloading. More importantly, considering the large number of today's smartphone applications, solutions applicable for legacy applications will be much more valuable. In this paper, we present a tool, named DPartner, that automatically refactors Android applications to be the ones with computation offloading capability. For a given Android application, DPartner first analyzes its bytecode for discovering the parts worth offloading, then rewrites the bytecode to implement a special program structure supporting on-demand offloading, and finally generates two artifacts to be deployed onto an Android phone and the server, respectively. We evaluated DPartner on three real-world Android applications, demonstrating the reduction of execution time by 46%-97% and battery power consumption by 27%-83%.