博客
关于我
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/

    你可能感兴趣的文章
    OpenFeign组件声明式服务调用
    查看>>
    openfeign远程调用不起作用解决_使用Spring Boot的spring.factories进行注入---SpringCloud Alibaba_若依微服务框架改造---工作笔记007
    查看>>
    openfire开发(四)消息拦截器
    查看>>
    openfire源码解读之将cache和session对象移入redis以提升性能
    查看>>
    Openfire身份认证绕过漏洞复现+利用(CVE-2023-32315)
    查看>>
    OpenForest 开源项目安装与使用指南
    查看>>
    OpenGL glBlendFunc() 设置颜色混合 透明度叠加计算
    查看>>
    opengl 深度详解,多重采样时,如何在OpenGL纹理中解析深度值?
    查看>>
    OpenGL 的内置矩阵种种
    查看>>
    OpenGL/OpenGL ES 入门:基础变换 - 初识向量/矩阵
    查看>>
    OpenGL中shader读取实现
    查看>>
    OpenGL中旋转平移缩放等变换的顺序对模型的影响
    查看>>
    Opengl中的gluProject函数认识
    查看>>
    OpenGl介绍
    查看>>
    OPENGL半透明图像产生黑色光环
    查看>>
    OpenGL和图形卡
    查看>>
    OpenGL学习
    查看>>
    openGL学习步骤
    查看>>
    OpenGL的基本概念介绍
    查看>>
    OpenGL着色器、纹理开发案例
    查看>>