有一个使用一些库的应用程序。看到lib有
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Run Code Online (Sandbox Code Playgroud)
并且proguard-rules.pro有一些规则来保留一些课程。
我相信,因为 R8 默认情况下会启用收缩/混淆功能,并且minifyEnabled false会禁用它。如果这是真的,是否意味着 lib 的 aar 将在不进行收缩/混淆的情况下构建?
如果应用程序默认启用 R8,应用程序将进行收缩/混淆,包括依赖的库?
小智 6
对于库项目,minifyEnabled false意味着最终的 AAR 不会使用 R8 进行处理,即不会执行代码优化或死代码删除。
如果应用程序项目具有minifyEnabled true,R8 将处理应用程序代码、所有外部 (Maven) 库和本地库项目,并且它将使用应用程序中指定的规则来执行此操作。
作为一般规则,R8 仅在生成最终二进制文件(AAR 或 APK 或应用程序包)时运行,并且是否启用它在生成该工件的项目(库或应用程序项目)中指定。
| 归档时间: |
|
| 查看次数: |
2894 次 |
| 最近记录: |