欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android中总结减小apk包大小教程

程序员文章站 2022-06-30 20:56:46
在android studio2.2中新添加APK Analyzer功能,可以分析apk包的构成。 主要地,res中是存放图片资源的;lib中是存放so库,各个cpu架构的;cl...

在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可以选择动态下发的形式延迟加载,代码上需要加一些判断逻辑。