1.Android热更新方案之微信Tinker源码分析
2.腾讯Bugly干货分享Android Patch 方案与持续交付
Android热更新方案之微信Tinker源码分析
接入Android热更新方案之微信Tinker源码分析,主要涉及Tinker接入过程、使用方法、实例构建以及补丁合成结果返回给主进程的处理。接入过程与使用方法可参考相关文档与指南,实践与接入指南详尽,以太猫源码具体步骤请参考官方文档。
在微信热更新方案中,实例构建采用默认方式,TinkerInstaller.install(appLike)为关键步骤。Applike默认的ApplicationLike在此之后被调用。
构建过程涉及DefaultTinkerResultService,这是一个IntentService,主要功能是补丁合成结果返回给主进程。在安装成功后,将删除patch,为patch重启生效做准备。
UpgradePatch与RepairPatch是处理patch的类,分别用于处理patch数据删除及尝试修复。dplayer网页源码
install多参数方法首先安装标志位为true,tinkerLoadResult.parseTinkerResult进行热修复结果处理并上报。下载patch后,安装patch方法中调用onPatchReceived,此方法在DefaultPatchListener执行。补丁检查后执行runPatchService,Intentservice跳转至TinkerPatchService,在onHandleIntent中调用result = upgradePatchProcessor.tryPatch(context, path, patchResult)方法。
默认情况下,wed网页源码此方法调用UpgradePatch的tryPatch方法。此步骤首先进行标志位与patch文件检验,接着进行签名与patch文件MD5校验。检验完毕后,进行dex补丁处理。
tryRecoverDexFiles->patchDexExtractViaDexDiff执行完毕后,将结果传递给AbstractResultService.runResultService(context, patchResult)。
在补丁加载过程中,自定义Application类的make源码编译加载导致无法修改补丁包。为了避免此问题,采用代码框架方式,而非InstantRun hook Application,以尽量减少反射,提升框架兼容性。主要工作是实现将原始Application类完全隔离,确保其他类无法引用自定义的Application。
腾讯Bugly干货分享Android Patch 方案与持续交付
腾讯Bugly开发者社区分享了一篇文章,探讨了Android应用的波胆源码版本更新问题,尤其是在面对多样的系统版本和市场审核差异时,Android应用升级速度较慢,影响了迭代效率和用户体验。文章提出,借鉴Chrome浏览器的patch升级方案,通过在用户无感知下提供补丁更新,来加速bug处理和版本迭代。
近年来,Android热补丁框架如AndFix、Dexposed和nuwa等兴起,但各有局限。作者团队经过评估,发现AndFix与现网版本匹配但存在代码修改限制和维护难度问题,nuwa仅支持Java代码更新,无法满足全部需求。因此,他们决定自研patch方案,将应用视为加载器,仅负责启动和资源定位,新功能或修复通过下发补丁文件实现。
该方案设计巧妙,通过代理Application的创建过程和生命周期管理,支持所有代码和资源的更新。尽管存在反射Application的复杂性,但通过精心设计,成功解决了加载问题。同时,通过将dex文件分包,解决了类引用变更引发的兼容性问题。然而,Multidex方案在某些特定设备上表现不佳,团队最终转向HackClassLoader,解决了多线程加载问题。
文章最后强调,团队的patch方案旨在提供无缝的开发流程,开发者只需正常打包,patch包生成和应用不会影响正向开发。通过与微信读书的试行,这种持续交付方式有望加速版本迭代,减少线上问题,并收集用户反馈,进一步优化产品。
2024-11-26 19:44489人浏览
2024-11-26 18:062513人浏览
2024-11-26 18:04282人浏览
2024-11-26 17:552672人浏览
2024-11-26 17:532618人浏览
2024-11-26 17:21939人浏览
1.源代码大家一般在哪?2.用什么软件能把整个网站的代码全部下载来吗3.如何下载网站源码4.如何下载网页源代码源代码大家一般在哪? 对于寻找源代码的开发者,以下几个网站是常用的下载源代码的途径:
1.买源码哪个网站比较靠谱?推荐几个国内精品靠谱的商业源码采购平台2.怎么获取小程序的源码3.怎么卖源码买源码哪个网站比较靠谱?推荐几个国内精品靠谱的商业源码采购平台 在互联网技术日新月异的今天,
1.QGIS二次开发一):环境配置与源码编译2.Qt编写的知名的开源软件列表3.Qt入门之基础篇 :Qt项目建立、编译、运行和发布过程解析4.如何用Qt实现Ribbon风格?附源码5.开发LinuxQ