时间:2023-02-26 08:36:02 | 栏目:Android代码 | 点击:次
在讨论如何缩减应用的大小之前,需要了解应用APK的结构。APK文件是由一个Zip压缩文件组成,其中包含构成应用的所有文件。其中包括Java类文件、资源文件及已编译资源的文件。
APK 包含以下目录:
APK 还包含以下文件。在这些文件中,只有 AndroidManifest.xml 是必需的。
Android Size Analyzer 工具可轻松地发现和实施多种缩减应用大小的策略。
首先在 Android Studio 中的插件市场下载安装 Android Size Analyzer 插件。安装插件后,从菜单栏中依次选择 Analyze > Analyze App Size,对当前项目运行应用大小分析。分析了项目后,系统会显示一个工具窗口,其中包含有关如何缩减应用大小的建议。
APK瘦身关键就在一个字:删!没用的就删了。
如果在应用的 build.gradle 文件中启用了资源缩减: shrinkResources ,则 Gradle 在打包APK时可以自动忽略未使用资源。 资源缩减只有在与代码缩减: minifyEnabled 配合使用时才能发挥作用。在代码缩减器移除所有不使用的代码后,资源缩减器便可确定应用仍要使用的资源 。
android { // Other settings buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } }
so文件是由ndk编译出来的动态库,是 c/c++ 写的,所以不是跨平台的。ABI 是应用程序二进制接口简称(Application Binary Interface),定义了二进制文件(尤其是.so文件)如何运行在相应的系统平台上,从使用的指令集,内存对齐到可用的系统函数库。在Android 系统中,每一个CPU架构对应一个ABI,目前支持的有:armeabi-v7a,arm64- v8a,x86,x86_64。目前市面上手机设备基本上都是arm架构, armeabi-v7a 几乎能兼容所有设备。因此可以配置:
android{ defaultConfig{ ndk{ abiFilters "armeabi-v7a" } } }
对于第三方服务,如百度地图、Bugly等会提供全平台的cpu架构。进行了上面的配置之后,表示只会把armeabi-v7a打包进入Apk。从而减少APK大小。