[Android 之美] 那些你不知道的APK 瘦身,让你的APK更小

[Android 之美] APK 瘦身,减少APK的大小

让我们的apk文件尽可能更小,移除那些未使用的代码和资源文件。本章节介绍了如何做到让APK更小,性能更好,下载转化率会更高,以及如何指定在构建APK过程中保留或移除项目中的代码和资源,在我们还没有分析APK大小之前,项目中存在一些资源放置处理不当,没有统一的规范,依赖管理不合理,资源重叠,dex方法数过多、文件过大等问题,导致整个APK文件也比较大,对于下载转化率必然有一定的影响。
那么公司要求我们的产品APK体积大小要优化到3M左右。经过我们的努力终于达到要求,然而我们发现还能再小。

分析APK的大小

古人云:工欲善其事,必先利其器,我们得先有利器,下面就是我们常用的分析APK大小工具的利器做一些简单的介绍和使用,帮助我们分析造成APK体积较大的元凶,以便于我们从那些方面入手优化。

使用Android Studio 2.2

Android Studio 2.2 新功能直接能分析APK的大小,双击打开就能看到那些占用APK比例大,方法数等。

这里写图片描述

  • 分析任何的APK
  • 查看APK下载包的大小,解压后的实际大小
  • 反编译资源文件,还原layout中的资源id,代码
  • 分析dex,显示每部分的方法数,直接查看那些library体积比较大

使用方法:Build -> Analyz APK

有了Analyz APK这个利器,以下工具也可以基本不用了

NimbleDroid

NimbleDroid 是美国哥伦比亚大学的博士创业团队研发出来的自动化分析Android app性能指标的系统,分析的方式有静态和动态两种方式,其中静态分析可以分析出APK安装包中大文件排行榜,各种知名SDK的大小以及占代码整体的比例,各种类型文件的大小以及占排行,各种知名SDK的方法数以及占所有dex中方法数的比例,针对缓慢的方法,缓慢的第三方SDK和内存泄漏。
测量生成的速度、网络、内存和磁盘使用率。总之有非常多分析App性能的功能,如果要做性能优化,也可以尝试使用NimbleDroid

查看详细的方法耗时

具体使用方法请看官网:
https://nimbledroid.com/

不过需要注意的是不要上传任何未发布的产品

ClassShark

ClassShark 是一款查看Android执行文件(apk)的浏览工具,目前有两个android App(Apk)和桌面(jar)的版本。
使用这款工具,可以很方便的打开APK/Class/Jar/res
等 文件和分析里面的内容。

具体源码与使用方法详细在github中:
https://github.com/google/android-classyshark

通过以上任一工具分析我们知道我们项目中主要是以下文件占用APK大小:

  • classes.dex
    classes.dex是java源码编译后生成的java字节码文件,

  • res
    主要是存放我们的图片资源

  • resources.arsc
    编译后的二进制资源文件,非常多无效资源文件(语言)

  • assets
    主要存放了我们的缓存数据文件,已做最优化压缩,我们考虑能否云端存放。

  • lib
    主要是存放我们的so库&

  • 19
    点赞
  • 147
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值