Android gradle文件删除未使用的资源

时间:2013-09-22 08:29:32

标签: android optimization build.gradle android-lint

我想从我最终发布的apk文件中删除未使用的资源。我能够配置proguard但仅限于Java文件。我想删除未使用的布局,字符串,png等等任何想法?

我看了android链接可以帮忙;得到了这里的脚本:http://yltechblog.blogspot.in/2012/06/remove-unused-resource-from-android.html但我不知道如何将它与gradle集成。

同样:https://code.google.com/p/android-unused-resources/;声称提供帮助;但我无法弄清楚如何将它与gradle集成。

我的gradle文件如下

// COMMANDS::
// gradle --build-file adt_build.gradle clean  build 
// adb -e install  -r build/apk/rpsl-debug-unaligned.apk

buildscript {
    repositories {
        mavenLocal()
        maven { url 'http://repo1.maven.org/maven2' } 
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.2'
    }
}
apply plugin: 'android'

apply plugin: 'eclipse'

def artifactoryurl='http://10.10.8.10:8081/artifactory'
repositories {
    mavenLocal()
    maven { url 'http://repo1.maven.org/maven2' } 
    mavenCentral()
    maven {url "$artifactoryurl/jfrog-libs"}
    maven {url "$artifactoryurl/plugins-release"}
    maven {url "$artifactoryurl/libs-local"}    
}

dependencies {
    compile 'com.google.code.gson:gson:2.2.4' , 'android:support:v4', 'wavecrest.mobile.libraries:libraries:2'
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    signingConfigs {
        debugconfig {
            storeFile file("../configs/keystore.jks")
            storePassword "asdf"
            keyAlias "rpsl"
            keyPassword "asdf"
        }
    }

    buildTypes {
        debug {
            packageNameSuffix ".debug"
            signingConfig signingConfigs.debugconfig
            zipAlign true
            runProguard true
            proguardFile file('configs/proguard-android.txt')
        }

        release {
            signingConfig signingConfigs.debugconfig
            zipAlign true
            runProguard true
            proguardFile 'configs/proguard-android-optimize.txt'
        }
    }

    defaultConfig {
        versionCode 1
    }


    sourceSets {
        main {
            manifest{
                srcFile 'AndroidManifest.xml'
            }
            java {
                srcDir 'src'
            }
            res.srcDirs = ['res']
        }

        instrumentTest.setRoot('tests')
    }   

}

1 个答案:

答案 0 :(得分:0)

使用android gradle插件尚未完成Lint支持。它安排在next release

从那里,您可以使用lint结果。在gradle中执行脚本执行类似'script'.execute()

的操作