安卓 Java 代码重构:DPartner 工具详解
1. 卸载式安卓应用运行时架构示例
卸载式安卓应用的运行时架构是一个复杂但有序的系统。以一个由六个类(从 a 到 i)组成的应用为例,其运行时架构的处理步骤如下:
1. 识别锚定类 :DPartner 通过分析发现类 b 和 g 是锚定类,这意味着它们必须在手机上运行,而其他类则是可移动类。
2. 生成代理类 :对每个应用类进行转换,为其生成对应的代理类。
3. 类聚类 :DPartner 发现类 a、c、d、e 和 f 之间关系密切,将它们聚类在一起,以便作为一个整体进行卸载。
4. 打包部署 :将所有可移动类、代理类和端点类打包成一个 jar 文件,部署并在服务器上执行;同时将所有应用类、代理类和端点类打包成一个 Android apk 文件,部署并在手机上执行。
在运行时,端点会预测卸载某个类是否能提高应用的整体性能。例如,如果预测卸载类 d 可以提升性能,端点会停用手机上的类 d,并激活服务器上的类 d。手机上类 d 的代理会将传入的方法调用转发到服务器上的类 d。由于类 d 与类 a、c、e 和 f 聚类在一起,这些类在必要时也会通过停用、状态同步和激活等过程被卸载到服务器。当卸载相关条件变得不利时,如手机远离服务器导致网络延迟过高,这些类的计算会自动从服务器转移回手机。
2. DPartner 的实现
2.1 检测可移动类
DPartner 通过字节码分析将 Java 类分为锚定
超级会员免费看
订阅专栏 解锁全文
51

被折叠的 条评论
为什么被折叠?



