文档

HotFix与代码注入框架是否冲突?

更新时间:

方法如果只是被运行时注解是可以被patch的, 注意是被运行时注解的方法可以被patch, 而不是运行注解本身可以被patch.

但是如果是编译期注解就值得商榷, 因为无法确保编译期注解前后两次打包生成apk中生成的注解帮助类是否一致, 就算前后两次编译期间生成的注解类一致, 但如果生成的注解帮助类反射调用了方法, 那该方法也是不能被patch的.

另外一方面鉴于一般的开发者对注解框架原理不大熟悉, 注解框架可能既使用了编译期也使用运行期注解, 此时是不支持被patch的.

当然如果没有使用注解框架, 那么自定义运行时注解那么是可以被patch的. 或者使用了注解框架, 开发者能确保前后两次编译生成的注解编译类一致, 同时能自行辨认该方法不受注解的影响(该方法不被反射调用), 这样的情况下也是可以被patch的.

鉴于此, 所以hotfix统一标识:注解的类不支持被patch.