1、XmlClassGuard 简介
XmlClassGuard是一个可混淆Android 4大组件、自定义View等任意类的插件
XmlClassGuard可以看作是ProGuard的补充,跟ProGuard没有任何关系,也不会有任何冲突
可快速更改manifest文件里的package属性,并同步到其他文件中
可快速移动n个目录到其他目录中,并同步到其他文件中
可查找constraint_referenced_ids属性的值,并自动添加到AabResGuard的白名单中
XmlClassGuard最主要的功能是混淆xml文件用到的类,故取名为XmlClassGuard,与AndResGuard、AabResGuard对应
2、有什么用?
弥补ProGuard不混淆4大组件等类的问题
增加aab、apk反编译的难度
极大降低aab包查重率,避免上架Google Play因查重率过高,导致下架或封号问题
关于第三点,有过上架Google Play 商店的同学应该知道,如果之前的包被下架或封号,想要同套代码再次上架,那99%概率是再次封号,很大一部分原因就是上述说到的类未被混淆,很容易被Google断定为包重复,从而导致再次封号,因此,如果想要再次上架,就必须要更改四大组件、自定义View等的包名+类名以降低查重率,然而,如果手动去完成这项任务,估计会累死一个程序员,于是乎,就有了XmlClassGuard,通过插件去完成手工的活,一个任务便可搞定
3、原理
XmlClassGuard不同于AndResGuard(apk资源混淆)、AadResGuard(aab资源混淆)侵入打包流程的方案,XmlClassGuard需要在打包前执行xmlClassGuard任务,该任务会检索AndroidManifest.xml及navigation、layout文件夹下的xml,找出xml文件中引用的类,如4大组件及自定义View等,更改其包名+类名,并将更改后的内容同步到其他