前言:
今天看官们对“jar压缩算法”都比较关心,各位老铁们都需要知道一些“jar压缩算法”的相关文章。那么小编同时在网络上收集了一些关于“jar压缩算法””的相关知识,希望同学们能喜欢,咱们快快来学习一下吧!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。
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。