Exploring Potential and Feasibility of Binary Code Sharing in Mobile Computing

Chao Wu,Lan Zhang,Zhenhua Li,Qiushi Li,Yaoxue Zhang
DOI: https://doi.org/10.1109/tcc.2019.2932386
IF: 5.697
2022-01-01
IEEE Transactions on Cloud Computing
Abstract:While tremendous growing mobile apps offer users rich services and functionalities, they also bring significant performance and energy issues. Code sharing is promising to address these issues, but existing application-level code sharing is rather restrictive. This paper develops the a transparent machine code sharing for mobile devices, and presents its design, implementation, and deployment. SnapCode enables machine code sharing across a wide variety of commercial off-the-shelf Android devices. By sharing and running machine code, SnapCode can offer significant speed-ups: an average speed-up of 9.9X for one-time trial apps, and up to 120X in apps' regular uses. In addition, it can save more than 80 percent energy consumption.
computer science, information systems, theory & methods
What problem does this paper attempt to address?
The paper primarily addresses the significant performance and energy consumption issues that mobile applications bring to users while providing rich services and functionalities. Specifically, it attempts to solve the following key problems: 1. **Performance and Energy Consumption Issues**: With the surge in the number of mobile applications, these apps impose a heavy workload on users' devices and frequent data exchanges, leading to rapid battery drain, data redundancy, and unacceptable service delays. 2. **Limitations of Code Offloading**: Although some methods like Google Now and Nextbit Robin mitigate these issues by offloading workloads from end devices to cloud servers, their effectiveness is limited under the current "walled garden" model of the mobile market. For instance, specific applications (such as the YouTube app on the Android platform) still require considerable time for installation or upgrades. 3. **Transparent Cross-Application Optimization**: Existing desktop-level machine code sharing technologies can achieve cross-application optimization to some extent, but effectively porting them to mobile platforms remains a challenge, especially with numerous issues in Java and native code compilation. To address the above problems, the paper proposes a new framework called SnapCode, which implements machine code sharing at the operating system level. In this way, SnapCode can significantly improve application launch speed (with an average acceleration of 9.9 times for first-time attempts and up to 120 times for frequently used applications) while saving up to 80% of battery consumption. Additionally, the framework supports effective management of user data, ensuring data security and privacy protection. In summary, SnapCode aims to provide a better application experience for users by reducing latency, minimizing energy costs, and ensuring effective management of user data.