-
指定 混淆字典
在应用程序的gradle文件中进行混淆字典的配置
使用外部字典进行混淆的参数为“-obfuscationdictionary dict.txt”。
使用类字典进行类混淆的命令为“-classobfuscationdictionary dict.txt”。
使用字典文件进行包混淆:-packageobfuscationdictionary dict.txt #包字典
dict.txt 文件的内容大致如下:
zguqnx
mvdmuyh
wmws
jwomtp
nhmhn
zvlogo
pomcwh
bhdnzul
osxbj
gojb
ctvkrg
srmar
sgkarnqi
byghdn
tvebtxw
uxdhno
qmjac
pgxasjnc
ezfb
tuoe
pzdo
我完成了一个任务。
/**
* 生成字典任务
*/
task geneDictTask {
doFirst{
def dictPath = rootDir.getAbsolutePath() + ‘/app/dict.txt’
def random = new Random()
def lowercase = abcdefghijklmnopqrstuvwxyz
def wordList = new HashSet()
for (int i=0; i可以进行如下改写:
xmlClassGuard {
p style=”” /*/p p style=””请问您是否要查找约束布局的constraint_referenced_ids属性的值,并将其添加到AabResGuard的白名单中?/p p style=””如果为true,则需要在XmlClassGuard之前添加AabResGuard插件依赖;默认情况下为false。/p p style=”” *//p p style=””// enable the identification of referenced IDs for constraints/p p style=”” //用于增量混淆的 mapping 文件/p p style=””将下面这段话改写为更通俗易懂的语言:
将文件名为’xml-class-mapping.txt’的文件赋值给变量’mappingFile’/p p style=””修改manifest文件的package属性,即更改包名。/p p style=”” packageChange = [“com.DOTLESS.gala”: “com.DOTLESS.gala”]/p p style=”” //移动目录/p p style=””修改后的文案如下:
moveDir = {‘com.DOTLESS.gala’: ‘com.DOTLESS.gala’}/p p style=””}/p ol start=”3″li style=”margin-left:1.4em;list-style-type:decimal;text-indent:0;”p批量修改文件名/p/li/ol pre class=”kdocs-plaintext”“`java
ext {
//需要批量重命名的Been路径
renameBeenPath = src/main/java/com/DOTLESS/gala/bean
//Been对象名字以什么字符串结尾, 默认Been, 例如设为Beax, 则所有Been都会以Beax结尾, 如GoodsBeax.kt
beenNameSuffix = Bear
//Been名字的前缀, 例如KoGoodsBeen
beenPrefix = Ko
//Been对象 Been的前面加的字符串 KoGoodsFishBeen
beenMidfix = Fish
//特殊的被匹配文件列表,如[**/*Bean.kt, **/*Bean.java]
specialBeensMatcher = [**/*Bean.kt, **/*Bean.java]
}
task renameBeenProcessor {
doLast {
FileTree beenTree = fileTree(renameBeePath) {
include ‘**/*.java’
include ‘**/*.kt’
// include specialBeensMatcher
}
def start = System.currentTimeMillis()
println(>>>>>> renameBeeProcessor start)
beenTree.each { File beeFile ->
def sname = beeFile.name
def fileEx = sname.substring(sname.lastIndexOf(.))
sname.replace(fileEx, )
def tName
if (sname.endsWith(Bee)) {
tName += ${beenPrefix}${sname.replace(Bee, ${beenMidfix}${beenNameSuffix})}
} else if (sname.endsWith(Bean)) {
tName += ${beenPrefix}${sname.replace(Bean, ${beenMidfix}${beenNameSuffix})}
} else {
tName += ${beenPrefix}${sname}${beenMidfix}${beenNameSuffix}
}
beenFile.renameTo(beenFile.parentFile.path + File.separator + tName + fileEx)
//生成一个文件树,替换import后面的路径
FileTree processTree = fileTree(src) {
include ‘**/*.java’
include ‘**/*.kt’
include ”
}
}
}
}
“`
androidJunkCode { def config = { packageBase = "com.dotless.xthv" packageCount = 15 activityCountPerPackage = 3 excludeActivityJavaFile = false otherCountPerPackage = 15 methodCountPerClass = 10 resPrefix = "xthv_" drawableCount = 10 stringCount = 10 } variantConfig { devDebug config //和productFlavors里的名字一样,注意不能是大写,不然会报错 devRelease config publishDebug config publishRelease config }}