Android中总结减小apk包大小教程
在android studio2.2中新添加APK Analyzer功能,可以分析apk包的构成。
主要地,res中是存放图片资源的;lib中是存放so库,各个cpu架构的;classes.dex是java源码编译后生成的java字节码文件;assets是存放不需要编译处理的文件;resources.arsc是编译后的二进制资源文件,包括图片,文本索引;META-INF是存放签名信息的;AndroidManifest.xml是描述配置文件的。
res文件夹占据最多资源,因此可以有以下操作:
1)使用图片压缩工具Tinypng
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可以选择动态下发的形式延迟加载,代码上需要加一些判断逻辑。
上一篇: 详解YII关联查询