Android减小apk包大小的建设性方案

在android studio2.2中新添加APK Analyzer功能,可以分析apk包的构成。
在顶部导航的build下可以找到,分析一个apk可以看到:

需知:

res中是存放图片资源的;

lib中是存放so库,各个cpu架构的;

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

assets是存放不需要编译处理的文件;

resources.arsc是编译后的二进制资源文件,包括图片,文本索引;

META-INF是存放签名信息的;

AndroidManifest.xml是描述配置文件的。

观察上图发现res中占最大资源,因此可以有以下操作:
1)使用图片压缩工具Tinypng(https://tinypng.com/
2)删除无用的资源文件以及代码,在android studio中输入unUsed resource搜索到后将其删除。

另外还可以在以下方面做改善:
1.使用ProGuard,ProGuard 会自动处理应用的字节码,然后再将所有内容打包到.apk文件中。
2.合理的引入Library,有时项目中引入了一个Library,可能只会用到其中一部分方法或一种控件,但是我们却把整个Library引入了进来,这时应尝试换一种Library替代或者自己抽取其中有用的部分。
3.可使用xml替代一些背景图
4.减少语言支持,可以通过修改gradle配置,去除不需要部分,(80种减到5种,有一个default)apk可减少0.61M。
defaulConfig{
resConfigs "zh-rCN", "zh-rHK", "zh-rTW", "en"
}
5.架构支持,一般的应用完全可以根据自己业务需求选择使用armeabi或者armeabi-v7a一种支持就行。
可以通过gradle配置。
aaptOptions{
ignoreAssetPattern 'color-night-v8:drawable-night-v8'
}
6.动态下发,比较大的so可以选择动态下发的形式延迟加载,代码上需要加一些判断逻辑。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值