Android 打包Apk太大 如何进行压缩APK文件
程序员文章站
2022-03-27 21:41:15
这个问题困扰了很久 一个项目代码量没多少 但是编译的APK文件却很大,有甚者超过了100M 除却很多图片资源 我还是一步一步的尝试了下各种方法 果然 一个120M的APK缩减到了70M 那我们就一步一步分析下我们的一个完整项目包括以下几个模块:assets/:包含应用可以使用AssetManager对象检索的应用资源。res/:包含未编译到的资源 resources.arsc。lib/:包含特定于处理器软件层的编译代码。resources.arsc:包含已编译的资源。classes.dex:包...
这个问题困扰了很久 一个项目代码量没多少 但是编译的APK文件却很大,有甚者超过了100M 除却很多图片资源 我还是一步一步的尝试了下各种方法 果然 一个120M的APK缩减到了70M 那我们就一步一步分析下
我们的一个完整项目包括以下几个模块:
assets/:包含应用可以使用AssetManager对象检索的应用资源。
res/:包含未编译到的资源 resources.arsc。
lib/:包含特定于处理器软件层的编译代码。
resources.arsc:包含已编译的资源。
classes.dex:包含以Dalvik / ART虚拟机可理解的DEX文件格式编译的类。
AndroidManifest.xml:包含核心Android清单文件。
我们都知道 我们的三方框架包 和资源文件都放在了 lib,res, 的下面 所以我们主要针对这里做操作
ndk {
//设置支持的SO库架构
//abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a' //, 'x86', 'x86_64', 'arm64-v8a'
abiFilters 'armeabi-v7a'
}
我们一般支持so库的时候 有的时候认为支持越多是越好的 其实不是 其实大多编译库 我们只需要支持’armeabi-v7a’或者armeabi就可以了,因为过度的便一支持会重复编译增加空间 座椅这里可以优化下
好的下一步
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
shrinkResources:移除未引用资源,和代码压缩协同工作。
minifyEnabled:ProGuard启用代码压缩,配合proguardFiles的配置对代码进行混淆并移除未使用的代码。
代码混淆在压缩apk的同时,也提升了安全性。
最后一个 我们的图片资源 网络环境支持的话 可以全部引用网络路径 更新维护也比较方便 减少本地内存
好的基本就这样了
本文地址:https://blog.csdn.net/qq_28643195/article/details/107484550
推荐阅读
-
Xamarin 打包生成 Android apk 文件
-
解决Android 打包为apk文件时已设置签名,在OPPO手机上安装时却出现“未设置签名”的错误
-
Android 打包Apk太大 如何进行压缩APK文件
-
详细步骤说明 IntelliJ IDEA 如何导出安卓(Android)apk文件
-
Android Studio打包APK文件具体实现步骤解析
-
VSCode开发react-native app进行android apk打包
-
Flutter 39: 图解 Flutter 打包之 Android APK 文件
-
java反编译工具_Android的APK文件如何反编译成Java文件
-
Mac Android显示SHA1和MD5值并生成签名文件打包APK
-
「 腾讯 Android 高级攻城狮 社招 面试题 」————类比于微信,如何对Apk进行极限压缩?谈下Android压缩8大步