Android支持库大大增加了APK的大小

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,这对我没有帮助

我正在Android项目中使用AppCompat支持库
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'