APP太占内存怎么办?几个简单的修复将应用程序的大小缩减60%


APP太占内存怎么办?几个简单的修复将应用程序的大小缩减60%

文章插图
图源:unsplash
我在巴西一家P2P网络借贷金融科技公司Mutual工作,具体的工作任务是帮助寻求公平利率的借款人与寻求高于市场回报的贷方联系起来 。我们的ReactNative IOS和Android应用程序被广泛应用,在巴西国内的用户量很大,可以通过各种设备下载 。
然而,我们可以通过Facebook的设备-年份-类库了解到:在给定设备型号的情况下,该库会显示出在哪一年该设备被视为高端设备 。我们的大多数用户使用的是低端设备 。
例如,最受用户欢迎的手机是三星Galaxy A10,虽然它在2019年3月推出,但在2013年被认为是一款高端手机 。纵观所有用户的设备,其中85%在2015年或之前是高端产品 。
因此,我们打算把重点放在优化应用程序上,这样即使设备配置不怎么高端,我们的用户也能获得良好的体验 。
APP太占内存怎么办?几个简单的修复将应用程序的大小缩减60%

文章插图
每年旗舰产品设备的百分比
我们最近仔细研究了一下应用程序的大小,在Android上的应用程序大小是26.8MB 。虽然这个数字并不是很大,但绝对超过了同行的中位数,google Play控制台报告的中位数是16.3MB 。
对于那些由于数据计划有限,可用磁盘空间很少甚至根本没有,不得不选择保留或卸载哪些应用程序的用户来说,程序大小可能是一个决定因素 。
这一点对于Mutual尤为重要,因为借款人必须通过该应用程序支付每月的分期款项 。当借款人卸载该应用程序时,他们按时还款的机率会急剧下降,直接影响投资者在公司市场上的回报 。
APP太占内存怎么办?几个简单的修复将应用程序的大小缩减60%

文章插图
Mutual的应用程序(26.8 MB)比同类应用程序要大得多
应用程序的大小不仅影响卸载率,而且对安装激活转化率也有很大的影响 。APK的大小每增加6 MB,安装激活转换率就会降低1% 。
Google Play的一篇文章很深入地谈到了这个问题(
https://medium.com/googleplaydev/shrinking-apks-growing-installs-5d3fcba23ce2) 。在低端设备使用比例较大的发展中国家,这种影响甚至更大:在新兴市场,如果应用程序的APK删减10 MB,安装激活转换率就能增加约2.5% 。
APP太占内存怎么办?几个简单的修复将应用程序的大小缩减60%

文章插图
每个国家的APK大小每减少10MB,安装激活转换率的增加
因此,必须在不降低用户体验的前提下,尽可能地缩小应用程序大小 。我们要做的第一步是查看Android开发人员可用的官方资源 。
APP太占内存怎么办?几个简单的修复将应用程序的大小缩减60%

文章插图
 
Android App Bundle这一部分表明缩小应用程序大小的最简单方法是尝试新的Android App Bundle(AAB)分发方法 。在此之前,我们一直在编译一个可以在大多数Android设备中运行的旧Android Package(APK)文件,并将其上传到Google Play控制台来分发应用程序 。
然而,AAB包只包含编译过的代码和资源 。因此,上传时,通过了解其规格和CPU架构,Google Play本身就会为每种设备类型生成一个优化的APK 。
APP太占内存怎么办?几个简单的修复将应用程序的大小缩减60%

文章插图
图源:unsplash
所以只要对构建管道做一个简单的改变,就可以免费获得缩减程序大小的好处!
在浏览了这篇文章之后,我们修改其React Native Gradle构建脚本去运行bundleRelease,而不是当前的assembleRelease 。就这样,我们有了AAB文件 。
在对FastlaneConfig的supply进行了一些更深一步的修改之后,就可以直接自动上传到Play Store了,新版本将会出现在Google Play控制台上 。通过这一改变,我们将已交付的APK大小缩减了9.1MB~12.4MB!
APP太占内存怎么办?几个简单的修复将应用程序的大小缩减60%

文章插图
旧的APK为26.8 MB,而新的AAB为14.4至17.7 MB
但是要小心:如果在Hermes中使用React Native,那么可能要根据这个问题更新soloader依赖,否则就有可能让用户使用到一个有严重错误的应用程序 。
好在我们能够通过在alpha发布轨道中的测试捕捉到这个问题 。但它可能很容易通过,因为它不会在本地或建立一个APK时出现 。
APP太占内存怎么办?几个简单的修复将应用程序的大小缩减60%

文章插图
 
使用Android Size Analyzer优化资产下一个建议是Android Size Analyzer 。这是一个命令行工具,可以分析一个Android应用程序,指出可以对尺寸进行多少缩减 。
在使用命令size-analyzercheck-bundle[BUNDLE]运行它之后,会收到一个可以优化的大型资产和映像列表,还包括配置ProGuard 。


推荐阅读