在 Google Play Store 上安装应用程序时,用户通常更喜欢较小的应用程序大小。这可能是因为存储空间有限或下载带宽有限,或者某些用户甚至更喜欢更快的安装。尽管如此,Spotify 有一个名为“Ruler”的工具,它可以用来测量和分析其 Android 应用程序的大小,以找出如何缩小应用程序的大小。现在,该公司正在将该工具开源并免费供任何想要使用它的开发人员使用。
在 Google Play Store 上发布的应用程序现在通常以 Android App Bundle 的形式上传。当用户请求安装应用程序时,Google Play 商店会为安装该应用程序的最终用户生成优化的 APK。Ruler 模仿这个过程来创建一个与最终用户应该收到的内容准确无误的 APK。对于每个文件,Ruler 然后捕获两个测量值:
- 下载大小: 用户下载应用程序时通过网络传输的字节数
- 安装大小:安装 应用程序后文件在设备上占用的字节数
然后,Ruler 可以扫描应用程序并找到其中的文件列表及其大小。它还可以找到所有影响应用程序大小的 Gradle 模块和依赖项。通过这个,创建了所有组件及其内容的第二个列表。结合这两个列表可以按源对应用程序的所有文件进行分组,并确定每个模块和依赖项对整个应用程序大小的贡献程度。还涉及其他方法,值得查看该公司的工程博客文章以了解更多信息。
Spotify 表示,主要的 Spotify 应用程序有 1,000 多个 Gradle 模块和数百个第三方依赖项,并且在过去六个月中,Ruler 帮助将应用程序大小减少了 9% 以上。该公司表示,它每天使用最新的主版本导出一次应用程序大小数据。它可以使用这些数据来跟踪整个应用程序以及单个模块和第三方依赖项的历史趋势。还分析了每个拉取请求对应用程序大小的影响,以便可以向开发人员提供早期反馈。
Ruler 完全用 Kotlin 编写,要使用它,您只需将插件应用到您的 Android 项目并运行单个 Gradle 任务即可。您可以查看 Ruler 的GitHub以了解如何将其集成到您的项目中。