互联网软件的实验与实践:Android应用计算卸载重构
立即解锁
发布时间: 2025-08-25 01:51:59 阅读量: 1 订阅数: 10 


互联网计算新范式:Internetware解析
### 互联网软件的实验与实践:Android应用计算卸载重构
在当今数字化时代,智能手机应用的性能和能耗问题备受关注。计算卸载技术为解决这些问题提供了一种有效的途径。本文将深入探讨如何通过重构Android应用实现按需计算卸载,以提高应用性能并降低能耗。
#### 1. 智能手机应用的挑战
智能手机应用面临着两大关键挑战:
- **电池续航**:复杂的Android应用通常具有大量计算任务,能耗极高。例如,Google Play上下载量前十的应用,如《水果忍者》和《愤怒的小鸟》,在HTC G13上运行约30分钟就会耗尽电量。尽管电池容量不断增加,但仍无法满足应用日益增长的能耗需求。
- **硬件差异**:不同智能手机的硬件配置差异较大,导致同一应用在不同设备上的性能表现截然不同。以HTC智能手机为例,2011年畅销款中,G13的CPU为600 MHz,G11和G12为1 GHz,G14为1.2 GHz。《水果忍者》在G13上运行缓慢,在G14上则运行流畅。用户往往会因为应用运行缓慢而放弃使用,这给开发者和供应商带来了巨大的市场损失。
#### 2. 计算卸载技术
计算卸载,也称为远程执行,是一种将应用中计算密集型代码转移到附近服务器(如PC)执行的技术。通过这种方式,应用可以利用服务器强大的硬件和充足的电源供应,提高响应速度并降低电池能耗。
然而,实现计算卸载并非易事,开发者需要解决以下三个关键问题:
- **正确性**:某些代码,如GPS、重力传感器等相关代码,只能在智能手机上运行。开发者必须明确应用中哪些部分不能进行卸载。
- **有效性**:计算卸载带来的执行时间减少必须大于网络延迟。开发者需要计算哪些部分值得卸载。
- **适应性**:智能手机应用的用户需求和运行环境经常变化,这可能导致计算卸载的需求发生改变。例如,当远程服务器因网络连接不稳定而不可用时,在服务器上执行的计算应及时转移回智能手机或切换到其他可用服务器。
#### 3. DPartner工具
为了解决上述问题,我们引入了DPartner工具。该工具可以自动重构Android应用,使其具备按需计算卸载的能力。具体步骤如下:
1. **分析字节码**:DPartner首先分析Android应用的字节码,找出值得卸载的部分。
2. **重写字节码**:根据分析结果,重写字节码以实现支持按需卸载的特殊程序结构。
3. **生成部署文件**:最后生成两个部署文件,分别部署到Android手机和服务器上。
通过对三个真实Android应用的评估,我们发现使用DPartner工具进行计算卸载后,应用的执行时间减少了46 - 97%,电池能耗降低了27 - 83%。
#### 4. 计算卸载的设计模式
Android应用是基于Java的程序,其基本构建单元是类。有意义的计算通常通过类的方法实现,这些方法可以使用类内部的数据和方法,也可以调用其他类的方法。因此,计算卸载可以通过远程部署和调用单个类或一组类来实现。
我们的目标是将Android应用自动重构为实现这种部署和调用的设计模式。重构的原则是在不改变代码外部功能的前提下,对代码进行结构调整。具体来说,重构涉及以下三个方面:
- **源结构**:在Java中,对象引用决定了两个类是本地交互还是远程交互。独立Android应用的源结构通常采用“本地引用”,即“in-VM引用
0
0
复制全文
相关推荐









