来到新公司一般第一步是安装吃饭的工具,而第二部一般就是熟悉代码啦,我第一眼看到我们应用居然 >37M((汗!!))这还是1.0版本,功能也不多。。。我在优化的时候正好写一下文章,技术大牛请略过,因为都是一些基础的东西。
第一步:优化资源文件
1、查看图片,居然有几个500k的无用图片。。。,就算有用也太大,直接可以找设计让他们进行无损压缩。什么?他们不知道??我给你工具 TinyPNG 用法嘛,百度君知道。
不能把工作放到后面处理,我们开发在以后收图标和图片的时候,一定要注意大小,当时直接打回去,一个icon,3X的差不多也就1k~3k,图片最多接受100k
2、查看无用drawble文件,layout文件,这个有专门的工具进行排查
第二步:除去无用第三方
我在优化的过程发现有好几个没有用的第三库和/Android库,写到build里就会打包到我们的apk中
第三步:去掉市场率占用很低的cpu架构的so
这其实不是一个正确缩减apk大小的方式,英文每一个cpu架构他都有各自的处理机制,虽然有些可以做到兼容,但是优化的功能就用不了,当然这个也看自己应用的情况,像我们公司,刚开始创业,市场率很低,就没必要了,就连淘宝,qq他们都不是全部兼容,光说不练假把式,我们看下他们的apk
qq的apk分析.png
我们可以看到,QQ只有一个armeabi
淘宝的apk分析.png
淘宝也是只有armeabi
当然,你的项目里可以提供支持多个 CPU 架构的 SDK ,可以同时提供多个目录的 so,虽然此时 SDK 相对较大,但是被编译的 so 还是以你在 gradle 里设置的支持的 ndk 为准:
defaultConfig {
ndk { //只编译armeabi架构
abiFilters ‘armeabi’ // , ‘arm64-v8a’, ‘x86’, ‘x86_64’ ,"armeabi-v7a’"
}
}
不太懂cpu架构这块的可以查看Android 多CPU架构支持所需要了解的知识
进行这一步,来看下apk已经到了21M,降了16M,是不是很有成就感
不过路还有很长,我的目标是降到15M左右,越往后降的大小就越少!
未完待续~~~
大最后分享一下接下来我的任务,大家都知道65K这个事情吧,解决方案是弄多个dex,我发现我们应用有70+个dex文件(汗一直流~~~)
我们的apk分析.png