返回
Accelerating App Recompilation across Android System Updates by Code Reusing
DOI:10.1109/CGO68049.2026.11395212.png)
摘要
En 中文
Android利用提前编译(AOT)技术预编译应用程序并将编译后的代码存储在OAT文件中,从而提高应用程序性能。当Android系统更新时,旧的OAT文件失效。应用程序将回退到解释执行,导致性能下降。为了适应Android系统的频繁更新(大多数智能手机制造商通常每月进行一次),应用程序必须频繁重新编译为OAT文件,以迅速恢复最佳应用程序性能。然而,重新编译应用程序是一个资源消耗过程,无法快速完成。用户不得不忍受系统更新后性能下降导致的设备过热和卡顿等问题。本文评估了不同系统更新中的流行Android应用程序,并做出了一个重要观察:在不同系统更新之间可重用高达99%的编译代码,使得现有的大部分重新编译工作变得不必要。基于这一观察,本文提出了一种通过重用旧OAT文件来加速Android系统更新间应用程序重新编译的方法。我们使用八个流行应用程序,在十个开源Android系统对和一家智能手机制造商提供的一个闭源Android系统对上评估了所提出的方法。这些Android系统对具有相同的Android Runtime(ART)版本,并在速度和速度-配置文件模式下执行AOT编译。实验结果表明,所提出的方法重用了约95%的已编译方法,在速度-配置文件模式下实现了CPU时间2.12倍和挂钟时间1.39倍的平均加速。在速度模式下,所提出的方法重用了约99%的已编译方法,分别实现了CPU时间5.15倍和挂钟时间2.80倍的平均加速。所提出的方法不仅加速了应用程序重新编译,还生成了与原生AOT编译生成的OAT文件相同的文件,且未引入安全问题。因此,该方法在现实世界部署中具有显著前景,并通过加速应用程序新OAT文件的生成,有潜力提升用户体验。
Keyword:
Android Systems
AOT Compilation
OAT Files
Code Reusing

