美文网首页
AndResGuard简单使用教程

AndResGuard简单使用教程

作者: Singleton丶 | 来源:发表于2017-10-26 15:14 被阅读0次

    AndResGuard

    AndResGuard是一个帮助你缩小APK大小的工具,他的原理类似Java Proguard,但是只针对资源。他会将原本冗长的资源路径变短,例如将res/drawable/wechat变为r/d/a.
    项目地址:Android资源混淆工具使用说明

    AndResGuard配置到项目中

    gradle(Project)

    classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.7'
    

    gradle(app)

    apply plugin: 'AndResGuard'
    
    
    andResGuard {
        // mappingFile = file("./resource_mapping.txt")
        mappingFile = null
        // 当你使用v2签名的时候,7zip压缩是无法生效的。
        use7zip = true
        useSign = true
        // 打开这个开关,会keep住所有资源的原始路径,只混淆资源的名字
        keepRoot = false
       //保留不被混淆的资源文件
        whiteList = [
            // for your icon
            "R.drawable.icon",
            // for fabric
            "R.string.com.crashlytics.*",
            // for google-services
            "R.string.google_app_id",
            "R.string.gcm_defaultSenderId",
            "R.string.default_web_client_id",
            "R.string.ga_trackingId",
            "R.string.firebase_database_url",
            "R.string.google_api_key",
            "R.string.google_crash_reporting_api_key"
        ]
        compressFilePattern = [
            "*.png",
            "*.jpg",
            "*.jpeg",
            "*.gif",
            "resources.arsc"
        ]
        sevenzip {
             artifact = 'com.tencent.mm:SevenZip:1.2.7'
             //path = "/usr/local/bin/7za"
        }
    
        /**
        * 可选: 如果不设置则会默认覆盖assemble输出的apk
        **/
        finalApkBackupPath = "${project.rootDir}/final.apk"
    
        /**
        * 可选: 指定v1签名时生成jar文件的摘要算法
        * 默认值为“SHA1”
        **/
        digestalg = "SHA256"
    }
    

    如果是签名包还需要加上下面配置:

    //需要加上签名配置
    defaultConfig{
    ··········
    signingConfigs {
                signConfig {
                    storeFile file ('XXX/XXX.jks')//路径
                    storePassword '123456'
                    keyAlias 'XXXX'
                    keyPassword '123456'
                }
            }
    }
     buildTypes {
            release {
                signingConfig signingConfigs.signConfig
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    

    配置完成后在Android Terminal执行命令:

    //Windows
    gradlew.bat resguardRelease
    
    //OS X or Linux
    ./gradlew reguardRelease
    

    输出的包在app\build\outputs\apk\AndResGuard_app-release这个路径下。

    相关文章

      网友评论

          本文标题:AndResGuard简单使用教程

          本文链接:https://www.haomeiwen.com/subject/ydlkpxtx.html