博客
关于我
android开发笔记之APK大小优化
阅读量:128 次
发布时间:2019-02-26

本文共 957 字,大约阅读时间需要 3 分钟。

蛋痛引发的争论

晚上无聊的蛋痛,打开手机查看所有应用软件的信息时,突然发现一个APK文件,大小高达63M。与手机中其他191个APK应用对比,超过60M的只有这一个应用和谷歌的Chrome应用。其他应用大部分不超过10M,这在一部入门级手机上显然不合常理,值得进一步优化。

不愉快的争论

将问题反馈给SPM后,定位到这是一款公司自开发的回忆相册应用。SPM要求立即删除该应用,但商务和开发部门不同意。于是,在群里开始了一场公司里的扯蛋秀。

我在群里发表了自己的观点:“这个APK问题的关键还是优化APK大小,60多M肯定是太大了。”这一发言立刻引发了争议。一位高人回复:“里面都是第三方提供的素材,怎么优化,搞笑吧?”

我不甘示弱,立刻百度寻找APK大小优化的方法,并截图搜索结果发送给大家。高人迅速回复:“里面都是必须的素材,删除就不能正常使用,怎么优化?APK大小优化不是只有你知道。”

在此后,我屏蔽了这位高人的信息,表示对这种态度和能力的无奈和无语。优化APK的大小方法有很多,为什么一定要删除必须的素材呢?

抛出的砖头

经过反馈和争论,我决定自己定位到这款应用并解压APK,深入研究优化方法。经过分析,优化的核心在于优化占用空间的资源。

核心优化方向

  • 库文件优化

    查看APK的库文件发现,包含两个目录:arm64-v8a和armeabi-v7a。arm64-v8a下的库文件有6M,armeabi-v7a下的库文件有5M。由于项目是32位的,只需要针对对应的平台发布即可,删除不需要的平台库文件可节省6M的APK大小。

  • 图片资源优化

    在res目录下发现了多套分辨率的图片资源(如hdpi、mdpi、xhdpi、xxhdpi),这几套分辨率的图片都被包含在APK中,占用了大量空间。根据网上的优化方法,建议只针对需要的分辨率生成对应的资源文件,从而大幅减少APK的大小。

  • 谷歌的优化启示

    参考谷歌GMS包中的Duo应用的构建方法,可以总结为以下几点:

    • 根据不同的分辨率和平台分别提供对应的APK应用,尽量减少不需要的占用空间资源。

    通过这种方式,谷歌的APK优化方法简洁而高效,能够将APK的大小大幅降低。

    参考资源

  • Android APK大小优化之自我实践
  • Android产品研发(四)–>减小APK大小
  • 转载地址:http://mfuf.baihongyu.com/

    你可能感兴趣的文章
    php url路径问题和php文件以绝对路径引入
    查看>>
    PHP WebSehll 后门脚本与检测工具
    查看>>
    ReentrantLock源码解析
    查看>>
    PHP XSS攻击防范--如何过滤用户输入
    查看>>
    php zookeeper实现分布式锁
    查看>>
    PHP 中 this,self,parent 的区别、用法
    查看>>
    PHP 中如何高效地处理大规模数据的排序?
    查看>>
    PHP 之ftp客户端类封装实现
    查看>>
    php 代码改进
    查看>>
    php 代码混淆
    查看>>
    PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址及其安全性问题
    查看>>
    Redis系列之如何避免缓存击穿
    查看>>
    php 内存分析
    查看>>
    PHP 函数名前面加&
    查看>>
    redis报错
    查看>>
    php 删除包含某一字符的数组元素
    查看>>
    Redis学习总结(19)——Redis 5种集群方式对比
    查看>>
    php 反射
    查看>>
    php 处理 大并发
    查看>>
    php 大文件上传
    查看>>