【Android Gradle 插件】AaptOptions 配置 ⑤ ( AaptOptions#noCompress 压缩配置 )

Android Plugin DSL Reference 参考文档 :





一、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 ;

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/han1202012/article/details/124605412