Keyhan Asghari Keyhan Asghari -4 years ago 258
Android Question

Android support library increases APK size a lot

I'm using

support library in my Android project.
has plenty of drawables and resources which I don't use in my app. That unnecessary files increases my 900K app to above 2M, which I don't like.

Is there any way to exclude those files when creating the APK file? Or I should obfuscate the library in my code instead of making a dependency?
I'm using Gradle in Android Studio.


EDIT 1 I am using proguard already. but proguard can't know I don't want to have
for example.

EDIT 2 I am also using Android Lint, which can't help me, beacuse I don't access to lib's code directly, and android adds them when building the APK file.

Answer Source

From Android Gradle Build System, since version 0.7.0:

New option on product Flavor (and defaultConfig) allow filtering of resources through the -c option of aapt You can pass single value (resConfig) or multiple values (resConfigs) through the DSL. All values from the default config and flavors get combined and passed to aapt. See "basic" sample. In the "basic" sample:

defaultConfig {
    resConfig "en"
    resConfigs "nodpi", "hdpi"

So, try the following to achieve what you asked for:

productFlavors {
    frOnly {
        resConfig "fr"

Note that you might also want to include *dpi, port, land, etc.. as well.

Answer is from: Android Studio exports strings from support library to APK, thanks to Primoz990

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download