AndFix从放弃到捡起

前一文AndFix从入门到放弃说到这版要放弃AndFix了
我真的放弃了吗?
不可能!
我是那种说放弃就放弃的人吗?


从0开始
找不到原因也找不到解决方法,没有头绪的时候,我决定从0开始,从最最简单的demo开始,再试试会不会也会有问题。
神奇的是,demo能跑起来,能成功Fix并且不黑屏,顿时看到了希望,因为demo非常非常简单,直接aar引用,也并没有去添加so库,也没有写什么下载patch什么的各种功能,那么问题就出现在我集成到项目中的过程中哪里出错了。
思来想去,最后想想难道是线程问题?项目中我下载patch,addPatch是放在IntentService中去执行的,而demo里是直接主线程做的,难道真是线程的问题?
于是,我把addPatch
放主线程里去,呵,一切都OK了!!!
AndFix中并没有提到这个,而我看这些操作都涉及到File,都是io流操作,非常本能的把这些操作都放到异步操作里去了,而且在我自己的手机上是OK的,所以从头至尾都没有考虑到线程这一块(没想到这么好的习惯也会有被坑的时候,表示无奈)
至此,所有暂时遇到的问题都解决了
总结一下使用AndFix需要注意的地方
合理封装,再包一层

PatchManager保持单例

初始化PatchManager的Context要用ApplicationContext

patch文件后缀为.apatch

patch文件记得用MD5校验

一个版本只有patch文件

当App升级AndFix会自动删除原有的apath文件,不需要自己动手

合理使用try catch
来降低AndFix带来的crash概率

在使用AndFix的catch块里上报所有的错误,以便观察

PatchManager.addPatch(path)
要在主线程调用

不能对同一个方法修复两次,否则App根本跑不起来

aar只有arm,x86的so库,想要兼容更多平台,需要自己再添加相应的so库

多看看它源码

多搜索,多问人,耐心,冷静,坚持,自信

暂时没想到,就这样吧

这可能是关于AndFix最好的建议了 **
热修复的功能,算是完成了,也顺利地随着这个版本上线。
虽然为了这功能折腾了挺久,也付出了不少,但是我希望,我永远不要用到它。
不知不觉感觉HotFix已经写了一个系列了:HotFix调研
HotFix的抉择
AndFix简单使用教程
AndFix从入门到放弃
还有本文『 AndFix从放弃到捡起』,希望这是完结篇!
另外也非常感谢帮助我给我建议给我留言的同学谢谢
oh,要五一了,提前
祝各位五一快乐**,好好享受假期吧
我也要放松放松了~

你可能感兴趣的:(AndFix从放弃到捡起)