热更新

作者: _爱笑的eyes | 来源:发表于2019-06-11 21:20 被阅读0次

Android热更新

修改线上版本的bug,用技术去实现不更新整个apk的条件下,修改掉bug。

在开发过程中,没有一个app发布到市场之后,在用户的使用过程中百分百会发生崩溃,一般情况下不是B线的crash,只要控制app在crash一定的比例,常用的比例在千分之一以下就可以。但是在某些情况下,由于测试的不充分,比如开发人员开发的不严谨导致app经常性的崩溃,而这个崩溃的比率超过正常的话,比如说超过了千分之一,甚至超过了千分之二分贝以后,在这些情况下我们只能紧急的修复出现线上的问题,然后我们通过常用的方式,代码修改然后进行重新打包然后发布等等。同时在发布完要通过推送,消息的形式告诉用户要更新了要自动安装。安卓热修复技术出现,让我们能够更快速的解决一些问题,而不需要重新发布版本可以修复线上的BUG。

一,热更新流程

1.线上检测到严重的crash。因为每一个app都会集成一些线上的crash的sdk,这样会通过线上的sdk检查到app的运作状况,这其实就是一个热修复的基础。在线上的crash统计中,可以得知app是否存在需要快速在线热修复的问题,如果存在,会根据crash日志定位到代码所存在的问题所在。

2.拉出bugfix分支并在分支上修复问题。开发都是在debug分支上开发的,如果有单独的业务逻辑,可以从debug开启另外一个分支来进行开发,在bugfix分支上修复一些线上的问题

3.Jenkins构建和补丁生成

4.app通过推送或主动拉取布丁文件,并在合适时机推送给主用户。

5.将bugfix代码合到master上,这样会保证以后的代码不会出项这样的问题。

二,主流热更新框架介绍

1.Dexposed Dexposed是一个阿里巴巴无线事业部推出的Android平台的无侵入运行期AOP开源框架,基于 Xposed 开源项目,旨在解决像性能监控、在线热补丁等移动开发常见难题。

2.AndFix AndFix,全称是Android hot-fix。是阿里开源的一个热补丁框架,允许APP在不重新发布版本的情况下修复线上的bug。支持Android 2.3 到 6.0,并且支持arm 与 X86系统架构的设备。完美支持Dalvik与ART的Runtime,补丁文件是以 .apatch 结尾的文件。

3.Nuwa 基于类加载器ClassLoder加载desk,它的基础是desk分包的基础上。

三,热更新原理

1.Android类加载机制

*1 PathClassLoader 用于加载系统的类和应用类

*2 DexClassLoader 用于加载dex文件,jar文件jar包等等。用DexClassLoader加载文件的

2.热修复机制

*1 dexElements数组。

*2 ClassLoader会遍历这个数组。

然后根据crash定位,导到对应的类文件,然后把这个类文件打包成dex文件,修改这个类以后把这个dex文件打包放到dexElements数组最前面,然后再通过类加载器去加载的时候,他就不会加载到处于后面的dex文件,这样就完成了整个热修复的过程。

相关文章

  • 热更新

    参考文章 https://www.jianshu.com/p/2f356e3276b8

  • 热更新

    热更新技术背景 1.热更新定义,APP热更新,就是指软件不通过苹果APP Store的版本更新审核,直接可以自行更...

  • 热更新

    mono热更新 更新过程中强退导致dll损坏 问题的产生是这样的:我们的代码文件随着开发会越来越打,当更新一个 d...

  • 热更新

    需要前端把更新后的代码生成chcp.manifest 第一部: npm i -g cordova-hot-...

  • 热更新

    腾讯热更新 https://gold.xitu.io/post/584a70feac502e00691c4a07 ...

  • 热更新

    一、安装CodePush CLI 在项目根目录下,安装命令: yarn add code-push-cli 安...

  • 热更新

    游戏更新分为两种,一种是游戏内热更,这个不分渠道,所有的游戏包都去游戏的热更服务器去加载资源(一般是资源文件和非底...

  • 热更新

    一.QQ空间超级补丁技术 二.阿里百川HotFix 三.美团Robust 四.微信Tinker 五.QFix

  • 热更新

    腾讯: http://fanhang.me/ios/iosre-geng-xin-ji-chu-ji-yu-bug...

  • 热更新

    Android热更新 修改线上版本的bug,用技术去实现不更新整个apk的条件下,修改掉bug。 在开发过程中,没...

网友评论

      本文标题:热更新

      本文链接:https://www.haomeiwen.com/subject/rgrffctx.html