【Android Gradle 插件】AaptOptions 配置 ⑤ ( AaptOptions#noCompress 压缩配置 )
2023-06-13 09:18:05 时间
文章目录
Android Plugin DSL Reference 参考文档 :
- 文档主页 : https://google.github.io/android-gradle-dsl/2.3/
- AppExtension ( build.gradle#android 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.AppExtension.html
- build.gradle#android 模块配置文档 : android-gradle-dsl/2.3/com.android.build.gradle.AppExtension.html
- ProductFlavor ( build.gradle#android#defaultConfig 配置 ) 文档 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.ProductFlavor.html
- ProductFlavor#externalNativeBuild 配置 ( build.gradle#android#defaultConfig#externalNativeBuild 配置 ) : com.android.build.gradle.internal.dsl.ProductFlavor:externalNativeBuild
- ExternalNativeBuildOptions ( build.gradle#android#defaultConfig#externalNativeBuild 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.ExternalNativeBuildOptions.html
- NdkBuildOptions ( build.gradle#android#defaultConfig#externalNativeBuild#ndkBuild 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.NdkBuildOptions.html
- CmakeOptions ( build.gradle#android#defaultConfig#externalNativeBuild#cmake 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.CmakeOptions.html
- JackOptions ( build.gradle#android#defaultConfig#jackOptions 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.JackOptions.html
- AnnotationProcessorOptions ( 注解处理器配置 ) ( build.gradle#android#defaultConfig#javaCompileOptions配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AnnotationProcessorOptions.html
- NdkOptions ( build.gradle#android#defaultConfig#ndk 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.NdkOptions.html
- VectorDrawablesOptions ( build.gradle#android#defaultConfig#vectorDrawables 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.VectorDrawablesOptions.html
- BuildType ( build.gradle#android#buildTypes 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.BuildType.html
- SigningConfig ( build.gradle#android#signingConfigs 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.SigningConfig.html
- AaptOptions ( build.gradle#android#aaptOptions 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AaptOptions.html
- NDK 参考文档 : Add C and C++ Code to Your Project.
一、AaptOptions#noCompress 配置
AaptOptions ( build.gradle#android#aaptOptions 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AaptOptions.html
1、配置说明
AaptOptions#noCompress 配置 中 设置 不需要压缩的 文件扩展名 ;
注意 : 如果设置一个空的扩展名 , 即 配置
noCompress ''
内容 , 会导致所有的文件都不会压缩 , 打包出来的 apk 安装包会很大 ;
AaptOptions#noCompress 配置原型 :
Collection<String> noCompress
Extensions of files that will not be stored compressed in the APK. Adding an empty extension, i.e., setting noCompress '' will trivially disable compression for all files.
Equivalent of the -0 flag. See aapt --help
2、使用示例
配置
noCompress ''
内容 , 表示所有的文件都不压缩 ;
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "com.example.classloader_demo"
minSdkVersion 18
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
aaptOptions {
// aapt 附加参数
additionalParameters '--rename-manifest-package', 'com.example.classloader_demo2'
// 是否开启 png 图片优化检查
cruncherEnabled true
// 忽略所有的 jpeg 格式图片
ignoreAssets '*.jpg'
// 指定某些扩展名文件不压缩
noCompress ''
}
}
3、apk 文件对比
① 压缩文件后的 apk
下图是默认所有文件都压缩的 apk 文件 ,
使用
aapt l -v app\build\outputs\apk\debug\app-debug.apk
命令 , 分析该 apk 文件 ;
其中 Ratio
就是压缩比例 ;
D:\002_Project\002_Android_Learn\ClassLoader_Demo>aapt l -v app\build\outputs\apk\debug\app-debug.apk
Archive: app\build\outputs\apk\debug\app-debug.apk
Length Method Size Ratio Offset Date Time CRC-32 Name
-------- ------ ------- ----- ------- ---- ---- ------ ----
5285836 Deflate 2365166 55% 132 01-01-81 01:01 32c299f3 assets/classes.dex
5286216 Deflate 2365138 55% 2365346 01-01-81 01:01 7cbee33f assets/classes2.dex
55 Deflate 51 7% 4730533 01-01-81 01:01 bac0f866 META-INF/com/android/build/gradle/app-metadata.properties
2416 Deflate 841 65% 4730671 01-01-81 01:01 d273c0cd AndroidManifest.xml
388 Deflate 216 44% 4731561 01-01-81 01:01 6270df64 res/anim/abc_fade_in.xml
388 Deflate 218 44% 4731831 01-01-81 01:01 748bb31c res/anim/abc_fade_out.xml
852 Deflate 376 56% 4732104 01-01-81 01:01 9a93c4ea res/anim/abc_grow_fade_in_from_bottom.xml
508 Deflate 258 49% 4732551 01-01-81 01:01 b8ffd7e6 res/anim/abc_popup_enter.xml
508 Deflate 259 49% 4732867 01-01-81 01:01 53704157 res/anim/abc_popup_exit.xml
852 Deflate 377 56% 4733183 01-01-81 01:01 7694b074 res/anim/abc_shrink_fade_out_from_bottom.xml
396 Deflate 228 42% 4733634 01-01-81 01:01 cc6ffadf res/anim/abc_slide_in_bottom.xml
396 Deflate 229 42% 4733924 01-01-81 01:01 fef136ce res/anim/abc_slide_in_top.xml
396 Deflate 227 43% 4734212 01-01-81 01:01 eeb0006b res/anim/abc_slide_out_bottom.xml
396 Deflate 228 42% 4734502 01-01-81 01:01 f068f605 res/anim/abc_slide_out_top.xml
388 Deflate 217 44% 4734790 01-01-81 01:01 0775413b res/anim/abc_tooltip_enter.xml
388 Deflate 217 44% 4735067 01-01-81 01:01 20761d7c res/anim/abc_tooltip_exit.xml
② 未压缩文件的 apk
设置未压缩的 apk 后 , 最终生成的文件有 16.3MB , 远大于 默认状态所有文件都压缩的 7.9MB ;
相关文章
- Android Studio 和 SDK 下载、安装和环境变量配置
- mac 电脑android环境变量设置,mac上Android环境变量配置[通俗易懂]
- 测试android sdk是否安装成功,配置Android SDK
- android登录注册跳转的代码_Android开发代码
- Android保存图片到相册(适配android 10以下及以上)
- 【Android FFMPEG 开发】Android Studio 中 配置 FFMPEG 库最小兼容版本 ( undefined reference to 'atof' )
- 【Android 安装包优化】使用 lib7zr.so 动态库处理压缩文件 ( 拷贝 lib7zr.so 动态库到 Android Studio 工程 | 配置 build.gradle 构建脚本 )
- 【错误记录】Android Studio 编译报错 ( Could not find com.android.tools.build:gradle:4.2.1. )
- 【Android Gradle 插件】ProductFlavor 配置 ( applicationId 配置 | SdkVersion 相关配置 | version 应用版本配置 )
- 【Android Gradle 插件】ProductFlavor 配置 ( multiDexEnabled 配置 | multiDexKeepFile | multiDexKeepProguard )
- 【Android Gradle 插件】ProductFlavor 配置 ( ProductFlavor#ndk 配置 | ProductFlavor#proguardFiles 配置 )
- 【Android Gradle 插件】BuildType 编译类型配置 ② ( consumerProguardFiles 配置 | debuggable 配置 | embedMicroApp配置 )
- 【Android Gradle 插件】BuildType 编译类型配置 ⑦ ( BuildType#testCoverageEnabled 配置 )
- 【Android Gradle 插件】BuildType 编译类型配置 ⑧ ( versionNameSuffix 配置 | zipAlignEnabled 配置 | initWith 方法 )
- 【Android Gradle 插件】AaptOptions 配置 ⑥ ( Overlay 重叠包机制 | AaptOptions#additionalParameters 附加参数配置 )
- 【Android Gradle 插件】PackagingOptions 配置 ④ ( pickFirsts、merges、excludes 属性配置 Set<String> 类型属性值常用配置方法 )
- 【Android Gradle 插件】Android Module 模块 build.gradle 构建脚本 Groovy 语法分析 ① ( Gradle 二进制插件引入 | Gradle依赖配置 )
- 【Android Gradle 插件】Gradle 扩展属性 ② ( 定义在根目录 build.gradle 中的扩展属性 | 使用 rootProject.扩展属性名访问 | 扩展属性示例 )
- 【Android Gradle 插件】自定义 Gradle 插件模块 ② ( 在模块中定义插件 | 引入自定义 Gradle 插件模块 | 配置 Gradle 插件上传选项 | 配置分组名称版本号 )
- 【Android Gradle 插件】Gradle 构建工具简介 ① ( Gradle 环境配置 | 官网下载 Gradle 软件包 | 在本地用户目录下查找 | 配置 Gradle 环境变量 )
- 【Android Gradle 插件】Gradle 构建工具简介 ② ( Android 项目构建打包流程 | 构建工具发展 -> 手动配置 -> Ant -> Maven -> Gradle )
- Android系统简介详解手机开发