JAVA和Nginx 教程大全

网站首页 > 精选教程 正文

Android如何进行资源压缩 android资源文件路径

wys521 2024-11-10 13:18:28 精选教程 22 ℃ 0 评论

AndResGuard是微信开源的一款资源压缩工具。

开源地址:https://github.com/shwenzhang/AndResGuard

他的原理类似Java Proguard,但是只针对资源。他会将原本冗长的资源路径变短,例如将res/drawable/wechat变为r/d/a。另外,还采用了7z算法将资源深度压缩。

此工具已发布在Bintray。



使用方法:

1、配置Gradle

在应用根build.gradle文件中添加插件:

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        ......
        classpath 'com.tencent.mm:AndResGuard-gradle-plugin:1.2.17'
    }
}

腾讯示例中将以上代码放到app的build.gradle下,也是可以的。但是我的工程统一还是习惯放到根build.gradle下。

在app的build.gradle文件中使用:

apply plugin: 'AndResGuard'

andResGuard {
    // mappingFile = file("./resource_mapping.txt")
    mappingFile = null
    use7zip = true
    useSign = true
    // 打开这个开关,会keep住所有资源的原始路径,只混淆资源的名字
    keepRoot = false
    // 设置这个值,会把arsc name列混淆成相同的名字,减少string常量池的大小
    fixedResName = "arg"
    // 打开这个开关会合并所有哈希值相同的资源,但请不要过度依赖这个功能去除去冗余资源
    mergeDuplicatedRes = true
    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",
    ]
    sevenzip {
         artifact = 'com.tencent.mm:SevenZip:1.2.17'
         //path = "/usr/local/bin/7za"
    }

    /**
    * 可选: 如果不设置则会默认覆盖assemble输出的apk
    **/
    // finalApkBackupPath = "${project.rootDir}/final.apk"

    /**
    * 可选: 指定v1签名时生成jar文件的摘要算法
    * 默认值为“SHA-1”
    **/
    // digestalg = "SHA-256"
}

2、执行Gradle

生成压缩后的apk。


本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表