Accepted in CGO 26!

03 Nov 2025

恭喜hongtao的论文《Accelerating App Recompilation Across Android System Updates by Code Reusing》被编译技术会议CGO 2026录用!

论文摘要如下: Android采用提前编译(AOT)技术预编译应用程序,并将编译后的代码存储在OAT文件中,从而提升应用性能。当Android系统更新时,旧的OAT文件会失效,应用程序将回退至解释执行模式,导致性能下降。鉴于智能手机厂商通常每月推送Android系统更新的频率,应用必须频繁重新编译为OAT文件以快速恢复最佳性能。然而,重新编译应用是资源密集型过程,无法快速完成。用户不得不忍受系统更新后因性能降级导致的设备发烫、卡顿等问题。

本文通过评估不同系统更新下的主流Android应用,获得一个重要发现:高达99%的编译代码在不同系统更新间可被重复使用,这使得现有的大部分重新编译工作变得不必要。基于此发现,我们提出一种通过复用旧OAT文件来加速Android系统更新后应用重编译的方法。我们在八款主流应用上对该方法进行了验证,测试环境包括十组开源Android系统对和一组由智能手机厂商提供的闭源Android系统对。这些系统对均采用相同版本的Android运行时(ART),并在speed与speed-profile两种模式下执行AOT编译。实验结果表明:在speed-profile模式下,该方法可复用约95%的编译方法,CPU时间和挂钟时间分别实现2.12倍与1.39倍的平均加速;在speed模式下,该方法能复用约99%的编译方法,CPU时间和挂钟时间分别实现5.15倍与2.80倍的平均加速。该方法不仅加速了应用重编译过程,且生成的OAT文件与原生AOT编译完全一致,不会引入安全问题。因此,该方案具备实际部署的重要价值,有望通过加速应用新OAT文件的生成来提升用户体验。