Android支持库大大增加了APK的大小
我正在Android项目中使用AppCompat支持库Android支持库大大增加了APK的大小,android,apk,android-support-library,android-gradle-plugin,android-appcompat,Android,Apk,Android Support Library,Android Gradle Plugin,Android Appcompat,我正在Android项目中使用AppCompat支持库AppCompat有很多我不在我的应用程序中使用的绘图工具和资源。不必要的文件将我的900K应用程序增加到2M以上,这是我不喜欢的。 在创建APK文件时,是否有任何方法排除这些文件?或者我应该在代码中混淆库,而不是建立依赖关系? 我在Android Studio中使用Gradle 谢谢 编辑1我已经在使用proguard了。但是proguard不知道我不想要可绘制的xxxhdpi或者值 编辑2我也在使用Android Lint,这对我没有帮助
AppCompat
有很多我不在我的应用程序中使用的绘图工具和资源。不必要的文件将我的900K应用程序增加到2M以上,这是我不喜欢的。在创建APK文件时,是否有任何方法排除这些文件?或者我应该在代码中混淆库,而不是建立依赖关系? 我在Android Studio中使用Gradle 谢谢 编辑1我已经在使用proguard了。但是proguard不知道我不想要
可绘制的xxxhdpi
或者值
编辑2我也在使用Android Lint,这对我没有帮助,因为我无法直接访问lib的代码,Android在构建APK文件时会添加这些代码。来自Android Gradle构建系统,自版本0.7.0起:
产品风格的新选项(和defaultConfig
)允许通过aapt的-c选项过滤资源
您可以通过DSL传递单个值(resConfig
)或多个值(resConfig
)。
默认配置和样式中的所有值都将合并并传递到aapt
。
参见“基本”示例。
在“基本”示例中:
因此,尝试以下方法来实现您的要求:
productFlavors {
...
frOnly {
resConfig "fr"
}
...
}
请注意,您可能还希望包括*dpi
,端口
,陆地
,等等。。还有
答案是:,多亏了Primoz990,shrinkResources也可以成为您的一个选择。它是从0.14开始提供的-但要小心-它仍然有一些坑,如虽然OP已经澄清他正在使用proguard,但如果它对某人有帮助,我想发布一些代码,因为我可以使用公认的答案将我的应用程序从3.8MB缩减到3.1MB,并通过proguard进一步缩减到仅1.8MB。我在我的应用程序级别build.gradle文件中使用了此配置:
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
从版本24.2.0开始,v4支持库
因此,除了使用shrinkResources
和proguardFiles
之外,还要确保您只使用应用程序所需的特定模块。e、 g
如果您的应用程序仅使用NotificationCompat、ContextCompat或ResourcesCompat等兼容工具,请仅使用Compat模块,如下所示:
compile 'com.android.support:support-compat:24.2.0'
你已经试过Proguard了吗?是的,我已经在用了。但是proguard不知道我不想要drawable xxxhdpi
或值,例如它
。您是否尝试过将support library jar作为依赖项添加到libs文件夹中,并将“-libraryjars libs”添加到proguard配置中?当您根本不需要应用程序兼容资源时,这可能会有所帮助。我只想排除其中一些我不需要的内容。@KeyhanAsghari使用可能会解决您的问题这看起来很有用,但您在发布版本APK文件的大小上有多大的改进?@Sam我不太记得了,但有很多改进。在添加此配置之前,我的APK中充满了我不想看到的大量本地化文件夹(值-*,…)。
compile 'com.android.support:support-compat:24.2.0'