如何从Android应用的所有文件中删除未使用的商品?

时间:2017-06-27 07:57:09

标签: android android-studio android-gradle

我用一个开关构建了一个简单的手电筒应用程序,它工作正常。我决定查看apk生成的内容,所以我反编译了我的应用程序,在查看每个文件夹后,我在res /文件夹中发现非常不必要的文件,如 anim values-sr values-uk values-ur 颜色 drawable-v21 等等(约90) )每个包含2 kB XML。我没有在我的应用程序中使用所有这些,因为我只有一个开关,所有这些不必要的东西增加了我的apk大小,并且由于这个Android Studio也在R.java文件中生成了许多不必要的条目。任何人都可以帮助我防止在Android Studio中生成所有这些,以便我的apk变得更小。

编辑:这是gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"
    defaultConfig {
        applicationId "com.camera2"
        minSdkVersion 21
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        resConfigs "en"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    sourceSets{
        res {
            resources{
                exclude {'**/drawable-ldrtl-hdpi-v17/*'}
                exclude 'drawable-ldrtl-hdpi-v17'
            }
        }
    }

    buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug{
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.2.0'
    testCompile 'junit:junit:4.12'
    compile 'com.android.support.constraint:constraint-layout:1.0.2'
}

2 个答案:

答案 0 :(得分:1)

解压缩后生成的文件默认为应用程序,因为应用程序需要运行和显示这些文件。如果Refactor方法不起作用,您可以进入 AndroidStudioProjects 文件夹,搜索您的应用程序并手动删除不需要的文件。您可以将以下代码添加到build.gradle

defaultConfig {
// ...
resConfigs "en"
resConfigs "nodpi", "hdpi", "xhdpi"
}

您还可以使用shrinkResources true来缩小应用尺寸。

buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

答案 1 :(得分:0)

在AndroidStudio中

  

重构 - >删除未使用的Resoursces - >重构