android apk 瘦身

App瘦身

代码瘦身

  1. 移除无用代码、功能,缩减方法数;
  2. 移除无用的库、避免功能雷同的库;
  3. 启用Proguard,让方法字符串长度变小;

资源瘦身

  1. 移除无用的资源文件;移除无用资源文件要比移除无用代码容易,在Android Studio的任何文件中右击,选择清除无用资源即可删除没有用到的资源文件。
    备注:另外在build.gradle中设置shrinkResources为true后,每次打包的时候就会自动排除无用的资源。shrinkResources需要配合minifyEnabled一起使用。但是根据我的实验:无用的资源还是会被打进Apk中,只是变成一张黑图,体积也非常小,只有不到100b(待验证)。
  2. Drawable目录尽量只保留一份资源;对UI不是最顶级要求的话根据自己的用户群体机型放在一个合适的目录下。
  3. 对图片进行压缩;可以考虑使用TinyPng、pngquant、ImageOptim等工具对图片进行压缩,这些工具可以减少PNG文件大小,同时保持图像质量
    有一个AndroidStudio插件:TinyPngPlugin,能够批量地压缩项目中的图片,更加方便。
  4. PNG转换JPG;PNG是无损压缩,JPG是有损压缩,根据UI情况可选。
  5. 使用矢量图;SVG,svg比较耗cpu,小图标等常见。
  6. 使用WebP;Android 4.2.1+才支持显示含透明度的WebP。
  7. 资源混淆;资源混淆,于是路径变短,resources.arsc中文件变小,如res/drawable-xhdpi/icon.png被修改为R/s/f.png。
    可参考微信的资源混淆方案:AndResGuard
  8. 资源在线化;不经常使用又非常大的资源放网上,按需下载。

So瘦身

在允许的情况下,针对用户机型分布保留特定架构的So;

其它

采用google的bundle机制,根据手机本身的特点按需下载对应的资源及so等,类似插件化,将Dex与资源文件放在服务端,需要时下载;但需考虑插件化实施以及与现有项目结合难度;通过在 build.gradle配置include来针对每个CPU架构生成单独的安装包,按照架构上传Apk;但是这个方案在国内应用市场几乎没有采用的,只能在Google Play上使用。

对Apk进行瘦身,瘦身So以及资源文件见效最快,而针对Dex的优化可能作用不会很明显。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 瘦身意味了什么呢?人们瘦身味了更好的身体和更匀称的身材。那么app呢?提高下载转化率,用户在无wifi情况下少用流...
    乐之飞于阅读 3,772评论 0 3
  • 要尽可能减小 APK 文件,我们应该启用压缩来移除发布构建中未使用的代码和资源。 1. 使用 ProGuard 混...
    云飞扬1阅读 8,014评论 0 51
  • Android APK瘦身经验总结 写在前面: 无论手机的内存有多大, 我们自然都希望一个应用的安装包能越小越好,...
    MeloDev阅读 10,072评论 1 35
  • 本文记录自己之前做的一些apk瘦身措施,都是在网上搜索整理的通用方法 依据官方文档进行瘦身 参考文章:压缩代码和资...
    小草凡阅读 5,719评论 0 0
  • 五月份吃西瓜按说是反季。小孩子馋,早上临上学走嘱咐晚上考完期中试要降降火。应了。 接近五点下班路过菜市场,拐进去菜...
    不言简书阅读 2,880评论 3 2

友情链接更多精彩内容