写点什么

阿里热修复技术,减少在 App 开发中踩坑

  • 2016-08-25
  • 本文字数:1334 字

    阅读完需:约 4 分钟

估计很多的开发者都有过这样的经历,当 App 发布之后,一旦在客户端出现问题,就只能干着急。紧接着各部门会焦头烂额:重新打包 App、测试、向各个应用市场和渠道换包、提示用户升级、用户下载、覆盖安装……有时候仅仅是为了修改了一行代码,也要付出巨大的成本进行换包和重新发布。

那么,有没有更好、更快的方法能更好更快的解决以上问题呢?当然有,热修复补丁技术。

首先,简单介绍一下热修复补丁(hotfix),它又称为 patch,指能够修复软件漏洞的一些代码,是一种快速、低成本修复产品软件版本缺陷的方式。

在移动开发里,热修复和常规升级不同,指的是在用户无感知的情况下修复应用存在的 bug。和升级软件版本相比,热补丁的主要优势是不用重新发布新版本,上传到各大应用商店,就可以对应用当前版本的缺陷进行修复。

目前,行业内大家所熟知的热修复技术包括:Dexposed、AndFix、ClassLoader 等。这里,我们来概述一下这几个热修复技术都有哪些特点。

1、Dexposed 是阿里巴巴无线事业部第一个重量级 Andorid 开源软件,基于 Root 社区著名开源项目 Xposed 改造剥离了 Root 部分,演化为服务于所在应用自身的 AOP 框架。它支撑了阿里大部分 App 的在线分钟级客户端 bugfix 和线上调试能力。

Dexposed 的 AOP 是实现了纯非侵入式,没有任何注释处理器,weaver 或者字节码重写程序。Dexposed 的集成非常简单,就像加载一个 JNI 库一样,只需要在初始化的时候插入一行代码。

经典案例:

  • 典型的 AOP 编程
  • 仪表化 (测试,性能监控等等)
  • 在线热修复(重要,关键,安全漏洞等等)
  • SDK hooking,更好的开发体验

2、AndFix 是阿里巴巴开源的 Android 应用热修复工具,帮助 Anroid 开发者修复应用的线上问题。Andfix 是 “Android hot-fix” 的缩写。AndFix 支持 Android 2.3 - 6.0,ARM 和 x86 架构,dalvik 运行时和 art 运行时。AndFix 的分支是 .apatch 文件。

生成 .apatch 文件:

合并 .apatch 文件:

想要了解更多

8 月 27 日(周六)20:00-21:00,带你一起来解读那些年热修复带来的坑 解析阿里的热修复解法!

阿里百川 HotFix 从直播当晚开始正式进行公测,感兴趣的读者可以到阿里百川官网了解。

扫码下面的二维码参与8 月27 日的直播活动(直播当天会在群里公布直播链接哦),并在阿里百川论坛( https://baichuan.bbs.taobao.com )跟帖回复“你在开发以及热修复过程中踩过的那些坑,以及对热修复技术领域的吐槽、使用感受”就有机会获得阿里巴巴定制电脑包、阿里百川个性 T 恤精美礼品喔!

  1. 回复内容字数不得少于 50 字;
  2. 回复内容需和热修复领域有关,如建议、使用感受、不爽的点或期待的服务等;
  3. 活动 & 扫码时间:8 月 16 日——8 月 27 日;
  4. 直播时间:8 月 27 日晚 20:00-21:00;

活动奖品

  1. 回复内容质量越高奖品越丰厚,我们会邀请阿里热修复技术专家对回复内容进行评分,得分最高的 3 位将获得——阿里定制电脑包。
  2. 随机抽选出 10 名幸运小伙伴获得——阿里百川定制个性 T 恤;

备注

  1. 活动结束后,小编会通过电话确认实物礼品的邮寄地址,请您配合提供;
  2. 灌水帖不计入发帖量和回帖量;
  3. 获奖者会在活动结束后的 7 个工作日内在本帖下方公布,所有礼品均在活动结束后 7 个工作日内发放;

查看直播内容回顾:百川解码精彩回顾:热修复的坑和阿里的解

申请阿里百川 HotFix 公测:阿里百川官网

2016-08-25 07:464651
用户头像

发布了 181 篇内容, 共 100.8 次阅读, 收获喜欢 207 次。

关注

评论

发布
暂无评论
发现更多内容

如何做一名失败的安全架构师

石君

架构 安全架构师 安全评估

小议RPA

一品凡心

人工智能 RPA 自动化

如何解决 Kubernetes 的 DNS 延迟问题

倪朋飞

Kubernetes 微服务 云原生

一篇文章搞定 java 中的 path 和 classpath

shengjk1

Java classpath vs path classpath path

Elasticsearch文档版本冲突原理与解决

Skysper

elasticsearch 乐观锁 悲观锁

精纯还是混乱?职场十二箴言——重读“成为乔布斯”的思考(一)

石君

职场 乔布斯 成功学

精纯还是混乱?职场十二箴言——重读“成为乔布斯”的思考(二)

石君

创业 乔布斯 成为乔布斯

喔,明白了,成功也是一种苦难

霍太稳@极客邦科技

创业 身心健康 企业文化 个人成长 心理

《小狗钱钱》——财富离我们并不遥远

Yin

读书笔记 投资 成长 思维方式

翻译: Effective Go (2)

申屠鹏会

翻译 Go 语言

【深度】为您解读东西方艺术教育的专业设置差异对比~

默聲

任正非管理哲学中的三个常识和三种科学

霍太稳@极客邦科技

创业 团队管理 华为

简单到不可能失败 —— 《微习惯》

零和幺

读书笔记

分布式数据库是无用的屠龙术吗?

海边的Ivan

企业架构 分布式数据库 业务中台

Kubernetes 容器运行时演进

倪朋飞

Kubernetes 容器 云原生

我如何用 Python 给 Github 的 README.md 做一个访客统计功能

遇见

Python GitHub 开源 badge open-source

是时候要说再见了,春风十里,不如邮你!

乐少

做小池塘里的大鱼,还是大池塘里的小鱼?这是个问题。

霍太稳@极客邦科技

创业 团队管理 目标管理

特别评论:甲骨文的傲气

张晓楠

云计算 互联网巨头 企业文化

我的第一个千万阅读量

彭宏豪95

创作 生活 写作

用你喜欢的 emoji 作为页面的 favicon 吧 🎉

遇见

CSS html favicon emoji

dubbo-go 中如何实现远程配置管理

joe

Apache 开源 微服务 dubbo Go 语言

做产品的同理心

孙苏勇

产品 产品经理 产品设计

无代码开发

Fenng

走出舒适区最好办法别走了,扩大它

乐少

探究vscode debug流程,解决无法运行go程序的问题

simpleapples

vscode Go 语言

Kubernetes中的CI/CD

倪朋飞

Kubernetes DevOps 微服务

HTTP Methods和RESTful API的设计

孙苏勇

架构 系统设计 RESTful 接口

删掉最后一句话

池建强

心理学 情绪控制

GitHub知错就改,是个好同志

遇见

GitHub

【SpringBoot】掌握这两个属性,你的测试类可以启动的更快些

遇见

Java Spring Boot Unit Test

阿里热修复技术,减少在App开发中踩坑_移动_Xue Liang_InfoQ精选文章