聊聊Android 热修复Nuwa有哪些坑

Posted _区长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聊聊Android 热修复Nuwa有哪些坑相关的知识,希望对你有一定的参考价值。

原创地址:http://blog.csdn.net/sbsujjbcy/article/details/51028027

前面写了两篇关于Nuwa的文章

然后我说了Nuwa有坑,有人就问Nuwa到底有哪些坑,这篇文章对自己在Nuwa上走过的坑做一个总结,如果你遇到了其他坑,欢迎留言,我会统一加到文章中去。当然有些也不算是Nuwa的坑,算是ClassLoader这种方式进行热修复暴露出来的问题吧。

坑一、混淆有哪些坑

  • excludeClass没有参考混淆产物mapping.txt,导致无法exclude掉一些不需要处理的类

在不混淆的情况下,Nuwa在这一方面是没有什么问题的,但是一旦混淆了,有些类你不想让他注入字节码,它却注入了,这是为什么呢,原因是Nuwa处理的是混淆后的jar,混淆后的jar包名和类名发生了变化,你再使用配置进去的excludeClass是无法主动不进行字节码注入处理的,除非你加进去的是混淆后的类名,但是在没混淆前,我们是根本不知道混淆后的类名的,有人说,我可以先混淆一遍,混淆完了查看一下mapping文件,找到对应的混淆后的类名,加到excludeClass中去,可以是可以,难道你不觉得蛋疼吗,而且这样也很有可能出现差错。那么有没有更好的方法呢?当然有。

混淆后在outputs目录下会产生一个mapping.txt文件,我们能不能解析这个文件,将混淆后的类还原为原来的类名呢,这个文件的大致内容就像下面这样。