写点什么

阿里热修复技术,减少在 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:464915
用户头像

发布了 182 篇内容, 共 108.1 次阅读, 收获喜欢 210 次。

关注

评论

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

汉化版postman

Liam

Jmeter Postman 接口测试 API swagger

如何快速实现持续交付

阿里云云效

云计算 阿里云 软件开发 CI/CD 持续交付

Facebook 开源 Golang 实体框架 Ent 现已支持 TiDB

极客天地

明天直播:如何测试硬件设备与龙蜥操作系统的兼容性?

OpenAnolis小助手

硬件 直播 开源社区 sig 兼容性

下拉推荐在 Shopee Chatbot 中的探索和实践

Shopee技术团队

算法 chatbot 推荐算法

OpenHarmony标准设备应用开发(三)——分布式数据管理

OpenHarmony开发者

OpenHarmony 分布式数据

深入垂直业务场景,SaaS版供应商业务协同管理系统促进企业与供应商高效协同

数商云

数字化转型 供应链系统

小程序开发入门教程

CRMEB

产品FAQ(常见问题)文档模版

小炮

产品 FAQ

一文带你了解 Python 中的迭代器

踏雪痕

Python 3月程序媛福利 3月月更

昇思MindSpore行至2022,开源社区成就生态共赢

这不科技

华为 昇思MindSpore

week4作业

Asha

墨天轮访谈 | 华为云温云博:从客户视角出发,GaussDB(for Redis)究竟“香”在哪里?

墨天轮

数据库 redis 华为云 国产数据库 键值数据库

Tapdata 肖贝贝:实时数据引擎系列(六)-从 PostgreSQL 实时数据集成看增量数据缓存层的必要性

tapdata

数据库 实时数据

叮咚!参与微服务免费试用,有机会获得腾讯内推资格!

InfoQ写作社区官方

腾讯云 微服务 热门活动

软件定义存储厂商大道云行加入龙蜥社区

OpenAnolis小助手

生态 存储技术 龙蜥社区 大道云行 CLA

从二十年开源经历出发,70 后大龄程序员谈成长、困境与突围

TDengine

数据库 tdengine 开源

教你VUE中的filters过滤器2种用法

华为云开发者联盟

Vue 过滤器 filters过滤器 组件过滤器 全局过滤器

Git教程-帮助开发人员更好的运用Git | 云效

阿里云云效

git 云计算 阿里云 DevOps 开发者

外部数据的合规引入助力银行用户营销系统冷启动

易观分析

隐私计算

Rust Cell 与RefCell,有啥区别?

非凸科技

异构注册中心机制在中国工商银行的探索实践

SOFAStack

GitHub 开源 分布式架构 注册中心 工商银行

VuePress 博客搭建系列 33 篇正式完结!

冴羽

JavaScript Vue 前端 vuepress 博客搭建

云时代,租电脑还是初创型企业最好的选择吗?

阿里云弹性计算

远程办公 无影云电脑 初创型企业

向工程腐化开炮 | 治理思路全解

阿里巴巴终端技术

Java android 腐化治理 工程腐化

后端开发—一文详解网络IO模型

Linux服务器开发

reactor 后端开发 Linux服务器开发 网络io 网络模型

利用 IoTDB 替换 OpenTSDB,服务大唐集团60家电厂,减少95%运维成本

Apache IoTDB

Apache IoTDB

适合 Kubernetes 初学者的一些实战练习 (三)

汪子熙

云原生 集群 Kubernetes 集群 Kubernetes, 云原生, eBPF 3月月更

华为云GaussDB专家走进课堂,跟莘莘学子聊聊数据库

华为云数据库小助手

GaussDB GaussDB(for openGauss) GaussDB(for MySQL)

春暖花开,等你而来!4月月更挑战开始啦!

InfoQ写作社区官方

热门活动 4月月更

《LeetCode 刷题报告》题解内容Ⅱ

謓泽

3月月更

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