项目中使用了微信团队的热修复工具TinkerTinker,因为并没有搭建补丁包下发平台,所以使用的是bugly提供的热更新平台bugly热更新
Tinker的实现原理可以直接看官方文档,并且明确指出tinker暂不支持动态更新的地方:
- 不支持更新
AndroidManifest
文件,就是说不支持新增Android四大组件,不支持修改versionCode、VersionName、包名等。 - 不支持一些 os version android-21的Samsung 手机。
- 由于Google Play开发者分发协议,无法动态更新我们的apk。
- 不支持更新
使用bugly来集成Tinker,比较容易,因为bugly已经帮我们搭建好了补丁下发平台,而且补丁下发策略也很多,挺好用的,还是非常感谢bugly平台的。集成指南请看Bugly Android热更新使用指南。
- 针对多渠道的热更新文档Bugly Android热更新详解
- 使用productFlavors和walle的打渠道包的补丁包Bugly多渠道热更新解决方案,补充一点就是,使用walle的时候,其实所有的渠道,我们只需要打一个补丁包就可以了,使用的基线版本不是使用walle生成的渠道包,而是walle打渠道包时在outputs/apk目录下
app-release.apk
。 - 使用walle打渠道包的介绍walle,walle的实现原理新一代开源Android渠道包生成工具Walle。关于
Android N
的V2
签名资料如下:APK 签名方案 v2;V2签名源码;apksig资料。
- 使用productFlavors和walle的打渠道包的补丁包Bugly多渠道热更新解决方案,补充一点就是,使用walle的时候,其实所有的渠道,我们只需要打一个补丁包就可以了,使用的基线版本不是使用walle生成的渠道包,而是walle打渠道包时在outputs/apk目录下
相关资料
- Android中的
ClassLoader
,参考文章ClassLoader源码文档。
热修复入门:Android 中的 ClassLoader。
后面这个JAVA的类加载器文章也不错,放这里,有兴趣就学一下深入探讨 Java 类加载器。
这篇博客,主要是资料记录。
感谢各位博主的分享,努力!