这里有个不错的Sample,对RxJava操作不太熟悉的同学可以了解下: RxJava2-Android-Samples 热更新 一年前(2018),我在接热更新的时候还考虑过美团、阿里家的。...使用Tinker有几点需要注意: TinkerId非常重要,最好在App内某个地方显示出来; Manifest.xml最好不要去改动,虽然某些改动生成的补丁包可以合成,但不是在所有设备上都能成功; Tinker...但是有一个东西是真的好用——Lifecycles!这货专治内存泄露!原理很简单,就是观察者模式,监听页面的生命周期。...刘海适配 三星之前的全面屏设备算长的了,都是没有刘海的,比例是18.5:9。...实在要适配的话也只适配到api19,也就是Android4.4,占有率还是有一点的)。 编译版本的话,新项目可以上Android X,我已经用了半年了,没啥问题。 尾巴 惯例,留个尾巴。
测试环境 :Android 9.0 -P 什么是热修复?它可以帮我解决什么问题?...TinkerPatch是收费的(有免费额度),补丁下发慢,大概需要5分钟的等待时间。...Tinker有一个免费版后台,Bugly,补丁管理是免费的,热修复用的Tinker,集成很那啥。。。...em,建议多读官网教程看视频,因为有补丁上传监测,下发一个补丁需要5-10分钟等待生效,撤回补丁需要10分钟左右生效,而且一次可能不会生效,后台观察日志需要多次才可以实现补丁撤回。...补丁包的话,其实并不会影响,因为补丁包一般改动的代码相同,但前提是需要保证我们每个渠道基准包没问题。如果改动代码有区别,那就需要针对这个渠道单独打补了。
Armis 公司的研究员将利用这 8 个漏洞的攻击命名为 BlueBorne。...影响范围广,尽快打补丁 据研究员披露,这 8 个漏洞分别是: Android 蓝牙网络封装协议中的远程代码执行漏洞(CVE-2017-0781) Android 蓝牙网络封装协议个人局域(PAN)协议文件中的远程代码执行漏洞...其中受影响的范围如下: Android: Android所有版本的手机、平板和穿戴设备都受到上述四个 Android 蓝牙漏洞的影响。而仅仅使用蓝牙低功耗的 Android 设备不受影响。...谷歌在 9 月份的安全修复中已经发放了相关补丁。 Windows:自 Vista 以后的所有 Windows 版本都受影响。微软表示 Windows Phone 并不会受到 BlueBorne 影响。...事实上,微软已经在 7 月份就悄悄发布险一金一直了 Windows 蓝牙 Pineapple 逻辑漏洞(CVE-2017-8628)的补丁,但在 9 月 12 日的修复日才披露细节。
有三个主要媒介可以在 Android 操作系统的设备上安装软件包: Google Play 软件包安装程序 adb install 工具 Google Play 是一个特殊的应用,它为用户提供查找由第三方开发人员上传到市场的应用...这意味着只有以root身份运行或包含在摄像机组中的进程才能读取和写入此设备驱动程序。因此,仅包括在相机组中的应用程序可以与相机交互。..." /> 6 7 8 android.permission.CAMERA" > 9 Android 中实现此控制,需要添加特殊的内核补丁,将网络设施的访问限制于属于特定 Linux 组或具有特定 Linux 功能的进程。...这些针对 Android 的 Linux 内核补丁已经获得了 Paranoid 网络的名称。
虽然我最终选定了方案四,但如果各位小伙伴的团队有资源、有其他方案的经验、SDK的热更需求更丰富,可以自行选择其他方案。...(支持指定某些class无需插入) so和资源的替换目前暂未实现 无法新增变量 没有补丁管理和安全校验,需要开发者自行实现 思考: 和其他的插桩插件混用是否有冲突?...如果补丁引起了崩溃,我们怎么第一时间补救? 1. 精准分发 结合外部维度系统,根据用户维度,比如渠道、系统版本等等做有差别的下发。 2. 数据分析 上线后我们最关心的就是补丁的兼容性和成功率。...希望读到这的您能转发分享和关注一下我,以后还会更新技术干货,谢谢您的支持! 转发+点赞+关注,第一时间获取最新知识点 Android架构师之路很漫长,一起共勉吧! ---- 以下墙裂推荐阅读!!!...Android学习笔记参考(敲黑板!!) “寒冬未过”,阿里P9架构分享Android必备技术点,让你offer拿到手软!
有三个主要媒介可以在 Android 操作系统的设备上安装软件包: Google Play 软件包安装程序 adb install 工具 Google Play 是一个特殊的应用,它为用户提供查找由第三方开发人员上传到市场的应用...这意味着只有以root身份运行或包含在摄像机组中的进程才能读取和写入此设备驱动程序。因此,仅包括在相机组中的应用程序可以与相机交互。...” /> 6 7 8 android.permission.CAMERA” > 9 Android 中实现此控制,需要添加特殊的内核补丁,将网络设施的访问限制于属于特定 Linux 组或具有特定 Linux 功能的进程。...这些针对 Android 的 Linux 内核补丁已经获得了 Paranoid 网络的名称。
前言 好几个月之前关于Android App热补丁修复火了一把,源于QQ空间团队的一篇文章安卓App热补丁动态修复技术介绍,然后各大厂的开源项目都出来了,本文的实践基于HotFix,也就是QQ空间技术团队那篇文章所应用的技术...app上去的,因为有很多比较深入的知识需要你去理解。...ok,这个就是HotFix对app进行热补丁的原理,其实就是用ClassLoader加载机制,覆盖掉有问题的方法,然后我们所谓的补丁就是将有问题的类打成一个包。...,最后测试结果 补丁是我们程序修复bug的包,如果我们已经上线的包出现了bug,你需要紧急修复,那你就找到有bug的那个类,将它修复,然后将这个修复的class文件打包成jar包,让服务端将这个补丁包放到指定位置...,你的就程序就可以将这补丁包下载到sdcard,之后就是程序自动帮你打补丁把问题修复。
继插件化后,热补丁技术在2015年开始爆发,目前已经是非常热门的Android开发技术。其中比较著名的有淘宝的Dexposed、支付宝的AndFix以及Qzone的超级热补丁方案。...远端调试 一入Android深似海,Android开发的另外一个痛是机型的碎片化。我们也许都会遇到"本地不复现","日志查不出","联系用户不鸟你"的烦恼。所以补丁机制非常适合使用在远端调试上。...例如若我想对同一批用户做两种test, 传统方式无法让这批用户去安装两个版本。使用补丁技术,我们可以方便的对同一批用户更换补丁版本。...[image.jpg] 若采用插桩导致所有类都非preverify,这导致verify与optimize操作会在加载类时触发。...事实上,微信当前针对热补丁有以下三种通道更新: pull通道; 在登陆/24小时等时机,通过pull方式查询后台是否有对应的补丁包更新,这也是我们最常用的方式; 指定版本的push通道; 针对版本的通道
继插件化后,热补丁技术在2015年开始爆发,目前已经是非常热门的Android开发技术。其中比较著名的有淘宝的Dexposed、支付宝的AndFix以及Qzone的超级热补丁方案。...远端调试 一入Android深似海,Android开发的另外一个痛是机型的碎片化。我们也许都会遇到"本地不复现","日志查不出","联系用户不鸟你"的烦恼。所以补丁机制非常适合使用在远端调试上。...例如若我想对同一批用户做两种test, 传统方式无法让这批用户去安装两个版本。使用补丁技术,我们可以方便的对同一批用户更换补丁版本。 ?...若采用插桩导致所有类都非preverify,这导致verify与optimize操作会在加载类时触发。...事实上,微信当前针对热补丁有以下三种通道更新: pull通道; 在登陆/24小时等时机,通过pull方式查询后台是否有对应的补丁包更新,这也是我们最常用的方式; 指定版本的push通道; 针对版本的通道
AOP不仅可以hook自己的代码,还可以hook同进程的Android SDK代码,这也就可以让我们有能力在App中填上Google自己挖的坑。...%E4%B8%AD%E5%85%8Droot%E5%AE%9E%E7%8E%B0hook%E7%9A%84dexposed%E6%A1%86%E6%9E%B6%E5%AE%9E%E7%8E%B0%E5%...8E%9F%E7%90%86%E8%A7%A3%E6%9E%90%E4%BB%A5%E5%8F%8A%E5%A6%82%E4%BD%95%E5%AE%9E%E7%8E%B0/ Dexposed源码:https...优点: 几乎不会影响性能(方法调用,冷启动) 支持Android2.3-8.x版本 高兼容性(Robust只是在正常的使用DexClassLoader)、高稳定性,修复成功率高达99.9% 补丁实时生效...N上,补丁对应用启动时间有轻微的影响; 不支持部分三星android-21机型,加载补丁时会主动抛出"TinkerRuntimeException:checkDexInstall failed"; 对于资源替换
回顾这半年多的历程,这是一条跪着走完,坑坑不息之路。或许只有自己真正经历过,深入研究过, 才会真正的明白 热补丁不是请客吃饭 对热补丁技术本身,还是对使用者来说都是如此。...热补丁技术背景 热补丁是什么以及它的应用场景介绍,大家可以参考文章微信Android热补丁实践演进之路。...在笔者看来Android热补丁技术应该分为以下两个流派: Native,代表有阿里的Dexposed、AndFix与腾讯的内部方案KKFix; Java, 代表有Qzone的超级补丁、大众点评的nuwa...其次补丁包应该尽量少,这关系到用户流量与补丁的成功率问题; 易用性;在解决完以上两个核心问题的前提下,我们希望补丁框架简单易用,并且可以全面支持,甚至可以做到功能发布级别。...非常庆幸微信在当时那个节点坚决的选择了自研DexDiff算法,这过程虽然有苦有泪,但也正是有它,才有现在的Tinker。 一.
回顾这半年多的历程,这是一条跪着走完,坑坑不息之路。或许只有自己真正经历过,深入研究过, 才会真正的明白。 热补丁不是请客吃饭 对热补丁技术本身,还是对使用者来说都是如此。...热补丁技术背景 热补丁是什么以及它的应用场景介绍,大家可以参考文章:微信Android热补丁实践演进之路。...在笔者看来Android热补丁技术应该分为以下两个流派: Native,代表有阿里的Dexposed、AndFix与腾讯的内部方案KKFix; Java,代表有Qzone的超级补丁、大众点评的nuwa、...其次补丁包应该尽量少,这关系到用户流量与补丁的成功率问题; 3、易用性;我们同时希望补丁框架简单易用,并且可以全面支持,甚至可以做到功能发布级别。...非常庆幸微信在当时那个节点坚决的选择了自研DexDiff算法,这过程虽然有苦有泪,但也正是有它,才有现在的Tinker。 一.
2016年3月10日,Tinker项目正式启动,并在同年9月23日举行的MDCC会议上开源。一年过去了,两个人,50%的工作时间。总的来说,填了一些坑,获得少许成绩,也遭受不少批评。...以Art地址偏移的例子来说,当时我们某次补丁发现在5.0的机器线上发现以下的一个crash: 对应的crash路径对应代码是一个static Boolean对象为空,这非常颠覆我们的认知。...2、查看源码;在Android 5.0之后,推出了AOT,它在dex2oat的时候提前生成机器码,提升运行速度。我们怀疑补丁有可能造成访问了错误的地址,但是过程并不容易。...七、Android N之前的JIT问题 这个问题在Tinker 1.7.8解决。有厂商反馈在它们的某台6.0的机器,微信在补丁后有一定的概率出现Crash。...九、厂商OTA后应用启动耗时问题 在系统OTA后,旧的补丁的oat文件都已经过期。系统会在首次加载时,会重新执行dex2oat。这导致可能会在前台等待很长的时间,甚至出现ANR。
2016年3月10日,Tinker项目正式启动,并在同年9月23日举行的MDCC会议上开源。一年过去了,两个人,50%的工作时间。总的来说,填了一些坑,获得少许成绩,也遭受不少批评。...查看源码;在Android 5.0之后,推出了AOT,它在dex2oat的时候提前生成机器码,提升运行速度。我们怀疑补丁有可能造成访问了错误的地址,但是过程并不容易。...七、Android N之前的JIT问题 这个问题在Tinker 1.7.8解决。有厂商反馈在它们的某台6.0的机器,微信在补丁后有一定的概率出现Crash。...九、厂商OTA后应用启动耗时问题 在系统OTA后,旧的补丁的oat文件都已经过期。系统会在首次加载时,会重新执行dex2oat。这导致可能会在前台等待很长的时间,甚至出现ANR。...回想起来,这的确是一条跪着走完的路。特别是被Vivo点名批评之后,我们也做了反思。解决OTA的问题,限定dex2oat的线程数,锁屏后去做补丁的合成,我们希望减少对用户的影响,与厂商共赢。
对于攻击者来说,这很容易完成,因为我们的密钥重装攻击对Linux和Android6.0或更高版本极具破坏性。...勘误 在攻击阶段3的图9中,从攻击者发送给认证者的帧应该是ReassoReq而不是ReassoResp。 3.1节:图3包含状态机的简单描述(不是图2)。...这意味着一个打了补丁的客户端仍然可以和没有打补丁的接入点(AP)进行通信,反之亦然。换句话说,打补丁的客户端或者接入点可以在和以前完全相同的时间,发送完全相同的握手包消息。...如果你的客户端设备没有收到更新,可以尝试与你的路由器供应商联系,询问他们是否有防止对已连接设备攻击的更新。 只修补接入点是不是就够了?或者只修补客户段端? 目前,所有易受攻击的设备都应该打补丁。...在和这些供应商沟通之后,我们意识到我们发现的漏洞有多普遍(直到那时我才真正说服自己,这确实是一个协议的漏洞而不是一套实现的错误)。到了那个时候,我们决定让CERT/CC帮助披露这些漏洞。
基于multidex的热修复方案:代表有Qzone的超级补丁、大众点评的Nuwa、百度金融的RocooFix、 饿了么的Amigo和微信的Tinker(也可以修复so和资源)等(重新冷启动修复) 需要反射更改...AOP不仅可以hook自己的代码,还可以hook同进程的Android SDK代码,这也就可以让我们有能力在App中填上Google自己挖的坑。...%E4%B8%AD%E5%85%8Droot%E5%AE%9E%E7%8E%B0hook%E7%9A%84dexposed%E6%A1%86%E6%9E%B6%E5%AE%9E%E7%8E%B0%E5%...优点: 几乎不会影响性能(方法调用,冷启动) 支持Android2.3-8.x版本 高兼容性(Robust只是在正常的使用DexClassLoader)、高稳定性,修复成功率高达99.9% 补丁实时生效...N上,补丁对应用启动时间有轻微的影响; 不支持部分三星android-21机型,加载补丁时会主动抛出"TinkerRuntimeException:checkDexInstall failed"; 对于资源替换
-- if (checkIfNeedKill(result)) { android.os.Process.killProcess(android.os.Process.myPid...从中我认为最好的好处有两个:1.能更好的定位为题,和自定义扩展功能 2.能学习优秀框架的代码格式书写。使自己写出高质量的代码,这也是我认为最重要的。 从Tinker的注册方法可以看到,他用了外观模式。...resource failed"); return false; } } 这个类的核心方法就是上面提到的三个方面的修复,再往里走下去就比较底层,涉及到Dexdiff算法,有兴趣的可以看下鸿洋大神关于...Tinker在使用中感觉还是有不少坑的,但是相对于AndFix,Tinker支持的比较全,并且支持在微信上也在使用。同时现在又支持Android热更新服务平台与Bulgy,也更加方便。...如果有什么问题也可以留言大家一起解决。 源码地址 里面包含本文代码和Tinker-1.9.1版本的配置源码
详细分析可以参考微信Android热补丁实践演进之路。...以Art地址偏移的例子来说,当时我们某次补丁发现在5.0的机器线上发现以下的一个crash: 对应的crash路径对应代码是一个static Boolean对象为空,这非常颠覆我们的认知。...查看源码;在Android 5.0之后,推出了AOT,它在dex2oat的时候提前生成机器码,提升运行速度。我们怀疑补丁有可能造成访问了错误的地址,但是过程并不容易。...七、Android N之前的JIT问题 这个问题在Tinker 1.7.8解决。有厂商反馈在它们的某台6.0的机器,微信在补丁后有一定的概率出现Crash。...九、厂商OTA后应用启动耗时问题 在系统OTA后,旧的补丁的oat文件都已经过期。系统会在首次加载时,会重新执行dex2oat。这导致可能会在前台等待很长的时间,甚至出现ANR。
大约在六月底,Tinker在微信全量上线了一个补丁版本,随即华为反馈在Android N上微信无法启动。冷汗冒一地,Android N又搞了什么东东?...但是Tinker已经做了全量替换,所以我怀疑由于Android N的某种机制这里只有部分用了补丁中的类,但是部分类导致使用了原来的dex中的。...4、快速的系统升级;以往厂商ota时,需要对安装的所有应用做全量的AOT编译,这耗时非常久。事实上,同样只有20%的应用是我们经常使用的,给不常用的应用,不常用的功能付出的这些成本是不值得的。...Android N上热补丁的出路 假设base.art文件在补丁前已经存在,这里存在三种情况: 1、补丁修改的类都不app image中;这种情况是最理想的,此时补丁机制依然有效; 2、补丁修改的类部分在...ldr.w lr, [r9, #668] ; pInvokeStaticTrampolineWithAccessCheck ...
领取专属 10元无门槛券
手把手带您无忧上云