Skip to main content
QUICK REVIEW

[论文解读] Trimming Mobile Applications for Bandwidth-Challenged Networks in Developing Regions

Qinge Xie, Qingyuan Gong|arXiv (Cornell University)|Dec 3, 2019
ICT in Developing Communities参考文献 24被引用 5
一句话总结

本文提出自动化技术,通过识别并移除冗余代码和资源,有效缩减Android应用的体积,显著降低应用大小。基于功能等价的微型程序作为基准,作者在2,920个测试应用中的2,617个上验证了该方法,实现Java代码大小减少60–80%,在70%的应用中节省超过5MB空间,部分应用节省超过20MB。

ABSTRACT

Despite continuous efforts to build and update network infrastructure, mobile devices in developing regions continue to be constrained by limited bandwidth. Unfortunately, this coincides with a period of unprecedented growth in the size of mobile applications. Thus it is becoming prohibitively expensive for users in developing regions to download and update mobile apps critical to their economic and educational development. Unchecked, these trends can further contribute to a large and growing global digital divide. Our goal is to better understand the source of this rapid growth in mobile app code size, whether it is reflective of new functionality, and identify steps that can be taken to make existing mobile apps more friendly bandwidth constrained mobile networks. We hypothesize that much of this growth in mobile apps is due to poor resource/code management, and do not reflect proportional increases in functionality. Our hypothesis is partially validated by mini-programs, apps with extremely small footprints gaining popularity in Chinese mobile networks. Here, we use functionally equivalent pairs of mini-programs and Android apps to identify potential sources of "bloat," inefficient uses of code or resources that contribute to large package sizes. We analyze a large sample of popular Android apps and quantify instances of code and resource bloat. We develop techniques for automated code and resource trimming, and successfully validate them on a large set of Android apps. We hope our results will lead to continued efforts to streamline mobile apps, making them easier to access and maintain for users in developing regions.

研究动机与目标

  • 解决因移动应用体积持续增长而加剧的数字鸿沟问题,尤其在带宽受限的发展中地区。
  • 探究应用体积的快速增长是否与功能提升成比例,还是主要源于代码与资源膨胀。
  • 开发自动化技术,识别并移除Android应用中的冗余代码与资源,以减小安装包大小。
  • 在大规模真实世界Android应用样本上验证精简技术的有效性。
  • 推动设计轻量化应用平台与工具,从开发初期即优先考虑低带宽环境下的可用性。

提出的方法

  • 使用功能等价的微型程序(如微信小程序)作为大小基准,识别完整Android应用中的膨胀问题。
  • 应用逆向工程工具(dex2jar、Apktool、enjarify)将Android APK反编译为可读的代码与资源结构。
  • 通过静态分析自动检测并移除冗余的Java代码及冗余资源(如未使用的图片、布局文件、字符串)。
  • 重新打包精简后的应用,并通过自动化测试验证其功能,确保精简后仍能正确运行。
  • 利用ProGuard和Android Lint等现有工具,指导开发人员在开发过程中预防膨胀问题。
  • 在3,200个流行Android应用的大数据集中测量代码与资源的压缩效果。

实验结果

研究问题

  • RQ1Android应用体积的增长在多大程度上源于功能改进,而非代码与资源膨胀?
  • RQ2在不破坏功能的前提下,有多少比例的代码与资源膨胀可被自动化识别并移除?
  • RQ3现代Android应用中膨胀的主要来源是什么?与微信小程序等轻量化替代方案相比有何差异?
  • RQ4自动化精简技术能否在实现显著体积缩减的同时保持应用功能完整?
  • RQ5由于代码混淆、无效字节码或加密等原因,自动化应用精简存在哪些实际限制?

主要发现

  • 在经过预处理的2,920个Android应用中,有2,617个(占89.62%)在自动化精简后通过验证,功能正常运行。
  • 超过70%的精简应用中,冗余代码减少超过5MB,部分应用减少超过20MB。
  • 大多数应用的代码大小减少了60%至80%,表明具有巨大的体积优化潜力。
  • 超过一半的Android应用中,超过50%的资源文件(assets)和超过80%的res资源被判定为冗余。
  • 本研究证实,大量应用膨胀源于资源与代码管理不善,而非功能扩展。
  • 微信小程序(大小上限2MB)表明,高度优化的轻量化应用平台在带宽受限环境中完全可行且高效。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。