不可混淆哪些资源 及 高级混淆文章

1、反射中使用的元素;

2、GSON的序列化与反序列化(本质还是用到了反射)

3、枚举也不要混淆(用到反射)

4、四大组件不要混淆(会导致Manifest名称与混淆后名称不一致)

5、其他:

①jni调用的java方法

②java的native方法

③js调用的java方法

④第三方库不建议混淆

⑤其他和反射相关的一些情况

⑥类之间有调用 static final常量

个人理解:不可混淆项目主要分两类:一类是反射;第二类是常量(final和Manifest等,都可以理解为常量)

参考文章:http://droidyue.com/blog/2016/07/10/understanding-android-obfuscated-code-by-proguard/


二、混淆进阶

-repackageclasses xxx.xxx.xxx(可以任意命名,比如包名)

https://medium.com/androiddevelopers/practical-proguard-rules-examples-5640a3907dc9

https://www.android-doc.com/m/view.php?aid=1160

添加该配置后,通过反编译打出来的APK,能看到,被混淆的代码(没keep的),会统一放到上面配置的xxx.xxx.xxx下,进一步降低代码的可读性。但是,同时会引入bug(google搜索’repackageclasses bug‘,即可搜到其他人遇到的bug情况)。经过权衡,目前我所开发的APP目前混淆的效果可以满足需要,且,参考了某宝、某信、某东APP,发现他们目前也没有使用上述配置的痕迹。所以,暂不配置。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容