[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2384616.2384634acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

Refactoring android Java code for on-demand computation offloading

Published: 19 October 2012 Publication History

Abstract

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%.

References

[1]
Android, http://www.android.com/
[2]
Smartphone Market Share, http://www.idc.com/getdoc.jsp?containerId=prUS23503312
[3]
Google Play, https://play.google.com/store
[4]
The applications number of the Google Play, http://en.wikipedia.org/wiki/Google Play
[5]
Apps drain battery power, www.droidforums.net/forum/droidrazr-support/216454-battery-drain.html
[6]
Android Application Requirements, ww.netmite.com/android/mydroid/development/pdk/docs/system_requirements
[7]
Karthik Kumar, Jibang Liu, Yung-Hsiang Lu, Bharat Bhargava. "A Survey of Computation Offloading for Mobile Systems". In the Journal of Mobile Networks and Applications, Springer, April, 2012.
[8]
Dpartner: http://code.google.com/p/dpartner/
[9]
Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts. "Refactoring: Improving the Design of Existing Code". Publisher:Addison-Wesley, First edition, 1999.
[10]
Roelof Kemp, Nicholas Palmer. "Cuckoo: a Computation Offoading Framework for Smartphones". In Proceedings of the International Conference on Mobile Computing, Applications, and Services (MobiCase), pp. 1--20, 2010.
[11]
Eduardo Cuervoy, Aruna Balasubramanianz, Stefan Saroiux, Ranveer Chandrax, Paramvir Bahlx. "MAUI: Making Smartphones Last Longer with Code Offload". In Proceedings of the International Conference on Mobile Systems, Applications, and Services (MobiSys), pp. 49 - 62, 2010.
[12]
Galen C. Hunt and Michael L. Scott. "The Coign Automatic Distributed Partitioning System". In Proceedings of the USENIX Symposium on Operating Systems Design and Implementation (OSDI), pp. 187--200, 1999.
[13]
Eli Tilevich and Yannis Smaragdakis. "J-Orchestra: Enhancing Java Programs with Distribution Capabilities". In ACM Transactions on Software Engineering and Methodology (TOSEM), Vol. 19, No. 1, Article 1, pp. 1--41, 2009.
[14]
Michael Philippsen and Matthias Zenger. "JavaParty: Transparent Remote Objects in Java". In Concurrency: Practice and Experience 9(11):1225--1242, John Wiley & Sons, Ltd., 1997.
[15]
Alan Messer, Ira Greenberg, Philippe Bernadat, DeJan Milojieie, Deqing Chen, T.J. Giuli, Xiaohui Gu. "Towards a distributed platform for resource-constrained devices". In Proceedings of the International Conference on Distributed Computing Systems (ICDCS), pp. 43--51, 2002.
[16]
Xiaohui Gu, Klara Nahrstedt, Alan Messer, Ira Greenberg, and Dejan Milojicic. "Adaptive Offloading for Pervasive Computing". In IEEE Pervasive Computing, pp. 66--73, 2004.
[17]
Byung-Gon Chun, Sunghwan Ihm, Petros Maniatis, et al. "CloneCloud: Elastic Execution between Mobile Device and Cloud". In Proceedings of the European Conference on Computer Systems (EuroSys), pp. 301--314, 2011.
[18]
Lei Wang and Michael Franz. "Automatic Partitioning of Object-Oriented Programs for Resource-Constrained Mobile Devices with Multiple Distribution Objectives". In Proceedings of the International Conference on Parallel and Distributed Systems (ICPADS), pp. 369--376, 2008.
[19]
J. Flinn, S. Park, and M. Satyanarayanan. "Balancing Performance, Energy, and Quality in Pervasive Computing". In Proceedings of the IEEE International Conference on Distributed Computing Systems (ICDCS), pp. 1--10, 2002.
[20]
E. Lara, D. S. Wallach, and W. Zwaenepoel. "Puppeteer: Component-based Adaptation for Mobile Computing". In Proceedings of the USENIX Symposium on Internet Technologies and Systems (USITS), pp. 159--170, 2001.
[21]
Eli Tilevich and Yannis Smaragdakis. "Portable and Efficient Distributed Threads for Java". In Proceedings of the ACM/IFIP/USENIX International Middleware Conference (Middleware), pp. 478--492, 2004.
[22]
Girvan, M. and NewMan, M.E. "Community structure in social and biological networks". In Proceedings of the National Academy of Sciences of the United States of America (PNAS), Vol. 99, pp. 7821--7826, 2002.
[23]
J. Han and M. Kamber. "Data Mining: Concepts and Techniques". Morgan Kaufmann Publishers, 2001.
[24]
Lu Zhang, Jing Luo, He Li, Jiasu Sun, and Hong Mei. "A Biting-Down Approach to Hierarchical Decomposition of Object-Oriented Systems Based on Structure Analysis". In the Journal of Software Maintenance and Evolution: Research and Practice, Vol. 22, No. 8, pp. 567--596, 2010.
[25]
Jonathan I. Maletic and Andrian Marcus. "Supporting Program Comprehension Using Semantic and Structural Information". In Proceedings of the International Conference on Software Engineering (ICSE), pp. 103--112, 2001.
[26]
Call Graph, http://en.wikipedia.org/wiki/Call graph
[27]
Walter Binder, et al. "Using Bytecode Instruction Counting as Portable CPU Consumption Metric". In Electronic Notes in Theoretical Computer Science, Elsevier, pp. 57--77, 2006.
[28]
HTC Tattoo, www.htc.com/europe/product/tattoo/overview.html
[29]
PowerTutor, http://powertutor.org/
[30]
L. Zhang, B. Tiwana, Z. Qian, Z.Wang, et al. "Accurate online power estimation and automatic battery behavior based power model generation for smartphones". In Proceedings of the International Conference on Hardware/Software Codesign and System Synthesis (CODES+ISSS), pp. 105--114, 2010.
[31]
Saleh E., Abdullahi, et al. "Garbage Collecting the Internet: A Survey of Distributed Garbage Collection". In ACM Computing Surveys, Vol. 30, No. 3, pp. 330--373, 1998.
[32]
Network Driver Interface Specification (NDIS), http://wikipedia.org/wiki/Network Driver Interface Spec
[33]
The Android application categories, http://www.appbrain.com/stats/android-market-app-categories
[34]
Wi-Fi Hotspots in Beijing, http://www.theregister.co.uk/2011/11/03/china free wifi/
[35]
Linpack, https://market.android.com/details?id=com.greenecomputing.linpack
[36]
Chess Game, http://code.google.com/p/andgoid/
[37]
Car Game, http://code.google.com/p/xrace-sa/
[38]
Android Service, http://developer.android.com/reference/android/app/Service.html
[39]
Android Interface Definition Language (AIDL), http://developer.android.com/guide/developing/tools/aidl.html
[40]
Android Api Demo, http://developer.android.com/resources/samples/ApiDemos/
[41]
The JavaTM Virtual Machine Specification, second edition, http://docs.oracle.com/javase/specs/jvms/se7/html/index.html
[42]
Java Reflection, http://java.sun.com/developer/technicalArticles/ALT/Reflection/
[43]
Dexmaker: Programmatic code generation for Android, http://code.google.com/p/dexmaker/
[44]
ASM: A Java bytecode engineering library, http://download.forge.objectweb.org/asm/asm4-guide.pdf
[45]
Remote Method Invocation (RMI), http://docs.oracle.com/javase/tutorial/rmi/overview.html
[46]
Android OpenGL ES, http://developer.android.com/guide/topics/graphics/opengl.html
[47]
Internetware Testbed, http://icloud.internetware.org/
[48]
Xen, http://www.xen.org/

Cited By

View all
  • (2023)Using deep learning to automatic inspection system of printed circuit board in manufacturing industry under the internet of thingsComputer Science and Information Systems10.2298/CSIS220718020Z20:2(723-741)Online publication date: 2023
  • (2023)Large-scale image classification with multi-perspective deep transfer learningComputer Science and Information Systems10.2298/CSIS220714015W20:2(743-763)Online publication date: 2023
  • (2023)Using neural network to automatic manufacture product label in enterprise under IoT environmentsComputer Science and Information Systems10.2298/CSIS220703019Z20:2(701-722)Online publication date: 2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '12: Proceedings of the ACM international conference on Object oriented programming systems languages and applications
October 2012
1052 pages
ISBN:9781450315616
DOI:10.1145/2384616
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 47, Issue 10
    OOPSLA '12
    October 2012
    1011 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/2398857
    Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 October 2012

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. android
  2. bytecode refactoring
  3. computation offloading
  4. energy

Qualifiers

  • Research-article

Conference

SPLASH '12
Sponsor:

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)1
Reflects downloads up to 13 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Using deep learning to automatic inspection system of printed circuit board in manufacturing industry under the internet of thingsComputer Science and Information Systems10.2298/CSIS220718020Z20:2(723-741)Online publication date: 2023
  • (2023)Large-scale image classification with multi-perspective deep transfer learningComputer Science and Information Systems10.2298/CSIS220714015W20:2(743-763)Online publication date: 2023
  • (2023)Using neural network to automatic manufacture product label in enterprise under IoT environmentsComputer Science and Information Systems10.2298/CSIS220703019Z20:2(701-722)Online publication date: 2023
  • (2023)Application Massive Data Processing Platform for Smart Manufacturing Based on Optimization of Data StorageACM Transactions on Management Information Systems10.1145/350839513:4(1-20)Online publication date: 14-Feb-2023
  • (2023)LegoDroid: flexible Android app decomposition and instant installationScience China Information Sciences10.1007/s11432-021-3528-766:4Online publication date: 27-Mar-2023
  • (2022)A Time-Driven Cloudlet Placement Strategy for Workflow Applications in Wireless Metropolitan Area NetworksSensors10.3390/s2209342222:9(3422)Online publication date: 29-Apr-2022
  • (2022)LAWOW: Lightweight Android Workload Offloading Based on WebAssembly in Heterogeneous Edge Computing2022 10th International Conference on Information Systems and Computing Technology (ISCTech)10.1109/ISCTech58360.2022.00124(753-758)Online publication date: Dec-2022
  • (2022)A survey of research on computation offloading in mobile cloud computingWireless Networks10.1007/s11276-022-02920-228:4(1563-1585)Online publication date: 1-May-2022
  • (2022)Using neural network to establish manufacture production performance forecasting in IoT environmentThe Journal of Supercomputing10.1007/s11227-021-04210-878:7(9595-9618)Online publication date: 18-Jan-2022
  • (2021)The Efficiency of Cooperative Learning in Physical Education on the Learning of Action Skills and Learning MotivationFrontiers in Psychology10.3389/fpsyg.2021.71752812Online publication date: 20-Oct-2021
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media