dev*_*v90 8 android android-install-apk apk-expansion-files
由于我需要减小APK文件的大小,我已经按照Apk扩展指南将APK分成块.
该下载库定义的方式来下载expansion file,但我需要知道的排除方法resource files,并aar 从APK文件.
我发现以下,但这些既不删除resource-drawable files任何arr文件,也不删除任何文件,并且apk的大小保持不变.
出于测试目的,我添加drawables了大约4 MB几个arr文件3 MB.我是apk从Build->Build APK选项创建的.我不知道以下是否会影响已签名的APK.
sourceSets {
main {
resources {
exclude '**/drawable/*'
}
}
}
android {
packagingOptions {
exclude 'lib/armeabi/a.so'
}
}
Run Code Online (Sandbox Code Playgroud)
如果您希望保留或丢弃特定资源,请在项目中使用<resources>标记创建XML文件,并指定要保留在工具中的每个资源:在工具中保留属性和每个资源:discard属性.两个属性都接受以逗号分隔的资源名称列表.
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools"
tools:keep="@layout/l_used*_c,@layout/l_used_a,@layout/l_used_b*"
tools:discard="@layout/unused2" />
Run Code Online (Sandbox Code Playgroud)
将此文件保存在项目资源中,例如,在res/drawable/keep.xml中.构建不会将此文件打包到您的APK中.这样您就可以自定义要保留的资源.
您可以做两件事。
首先,您可以使用Lint。Lint 将帮助突出显示并删除代码中未使用的所有资源,包括可绘制对象。
其次你可以使用Proguard。使用Proguard您可以选择要缩小的 APK 版本,包括debug(或主版本,如您的示例中)版本。只需插入以下代码即可。
android {
buildTypes {
debug {
minifyEnabled true
useProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
} }
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
963 次 |
| 最近记录: |