V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qixinghaitang
V2EX  ›  微信

微信开源 Android 热修复框架 Tinker,支持在无需升级 APK 的前提下更新 dex, library and resources 文件

  •  
  •   qixinghaitang · 2016-09-25 10:46:17 +08:00 · 6197 次点击
    这是一个创建于 2784 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近半年以来, Android 热补丁技术热潮继续爆发,各大公司相继推出自己的开源框架。 Tinker 在最近也顺利完成了公司的审核,并非常荣幸的成为 github.com/Tencent 上第一个正式公开的项目。

    https://github.com/Tencent/tinker

    《微信 Tinker 的一切都在这里,包括源码》 http://www.diycode.cc/topics/321

    34 条回复    2016-09-27 12:51:11 +08:00
    SourceMan
        1
    SourceMan  
       2016-09-25 11:08:12 +08:00 via iPhone
    支持!
    withlqs
        2
    withlqs  
       2016-09-25 11:22:42 +08:00
    有点厉害。尤其是那个 DexDiff 。不知贵司为何不投一篇 paper 。

    高兼容性+高性能+大规模实用经验, sigcomm 级别的顶会投过去很稳啊
    param
        3
    param  
       2016-09-25 11:36:00 +08:00
    这不是违规操作吗? google 不允许的吧?
    EricCartman
        4
    EricCartman  
       2016-09-25 11:37:00 +08:00 via Android
    嗯,感觉 Play 上一举报一个准
    withlqs
        5
    withlqs  
       2016-09-25 11:38:23 +08:00
    @param 不要看得太表面。

    技术是技术,目前看来,这种技术,理论上可以被 google 采纳进 android 的更新策略,以大幅提升更新性能。

    主要是技术上的 contribution 挺大的。
    yidinghe
        6
    yidinghe  
       2016-09-25 11:40:24 +08:00 via Android
    看这原理,感觉这不是钻空子吗。
    param
        7
    param  
       2016-09-25 11:41:38 +08:00
    @withlqs 那还不如让 google 开个 google play 更新的 api 。。
    lincanbin
        8
    lincanbin  
       2016-09-25 11:56:57 +08:00
    绕过 Play 进行二进制分发是危险、不安全的行为。
    不知道贵司有没有上 SSL 呢?
    withlqs
        9
    withlqs  
       2016-09-25 12:12:20 +08:00
    @param 你这么说的话说明你没看懂这个东西是什么...核心在于 DexDiff ,不是简单暴力的更新。
    Cu635
        10
    Cu635  
       2016-09-25 12:20:18 +08:00
    。。。看样子以后只能彻底禁止国产 app 了。
    withlqs
        11
    withlqs  
       2016-09-25 12:26:06 +08:00   ❤️ 1
    重点应该在 DexDiff ,而不是绕过 play 。

    楼主的标题重点不对,楼下一群没看文章的人瞎起哄。为贵司的宣传人员感到担忧。
    param
        12
    param  
       2016-09-25 12:37:01 +08:00
    @withlqs 我的确没看。。
    zsj950618
        13
    zsj950618  
       2016-09-25 13:52:27 +08:00
    evil tech
    bkmi
        14
    bkmi  
       2016-09-25 15:47:46 +08:00
    楼上也是一群神逻辑
    Google Play 那种个把小时就能完成的审核真心没多大用处
    上不上热修复,应用该怎样还怎样
    国产 App 跟热修复又有什么直接关系,我真要 evil ,直接给你升级你就能知道了么。
    honeycomb
        15
    honeycomb  
       2016-09-25 16:57:16 +08:00 via Android
    @bkmi app 不可以绕过应用市场获取二进制代码。自行升级,热修复都属于这个范畴。

    play 已经下架过好些做这种事情的 app 了
    SourceMan
        16
    SourceMan  
       2016-09-25 17:00:56 +08:00 via iPhone
    @withlqs 不是没看,他们可能没看懂
    主管他们认为这不是技术创新,而是流氓行为
    SoloCompany
        17
    SoloCompany  
       2016-09-25 17:03:40 +08:00 via iPad
    @SourceMan 主观
    Tink
        18
    Tink  
       2016-09-25 17:17:14 +08:00 via iPhone
    6666666
    xgfan
        19
    xgfan  
       2016-09-25 17:59:11 +08:00   ❤️ 1
    之前不都是『技术无罪』吗?
    yankebupt
        20
    yankebupt  
       2016-09-25 19:42:30 +08:00 via Android
    @honeycomb 嗯。如果事闹大了谷歌开个功能让热修复代码权限低于原 app 权限甚至把热修复本身作为一个可开关权限交由用户管理,就又都不吭声了。
    yankebupt
        21
    yankebupt  
       2016-09-25 20:04:50 +08:00 via Android
    而且那样的话用户就非常好选择了,对于谷歌等第一方的应用放行,部分用户对较大的厂商如腾讯或自己信任的厂商 app 放行,其余的一概选择拒绝二进制替换。审核方其实就审个大概,你做了有用内容占绝大部分的东西出来,你往里面掺不良成分自砸招牌的可能性就会相应降低。
    20150517
        22
    20150517  
       2016-09-25 21:47:17 +08:00
    这种技术让我想起了以前 windows 上各种隐藏进程,inject 进程的技术,有什么意思?现在说的好听是升级,其实讲到底就是钻 android 空子,android 系统要改,分分钟把你漏洞补上,你这技术还有什么意义?
    20150517
        23
    20150517  
       2016-09-25 21:48:08 +08:00
    这种东西开源纯粹在破坏安卓生态,ios 上你敢这么玩吗
    imcczy
        24
    imcczy  
       2016-09-25 22:36:36 +08:00 via iPhone
    @withlqs 感觉这个可以投个顶会,,
    bkmi
        25
    bkmi  
       2016-09-26 10:28:35 +08:00
    @20150517 您可能没听说过 JSPatch
    osborn
        26
    osborn  
       2016-09-26 10:30:35 +08:00
    说实话,热修复这种技术不应该开源的,有能力的大厂自己偷偷研发好了。
    在开源界大张旗鼓地推并吹,有点作死的感觉。不管是 Google 还是 Apple ,从系统研发的角度讲,都不希望 APP 采用这种机制。
    认真做好每一个 APP 不好么?
    sxyclint
        27
    sxyclint  
       2016-09-26 11:06:54 +08:00
    @bkmi JSPatch 也是微信的 XD
    bkmi
        28
    bkmi  
       2016-09-26 11:29:09 +08:00
    @sxyclint JSPatch 什么时候又成微信的了
    jayzjj000
        29
    jayzjj000  
       2016-09-26 12:28:21 +08:00
    @bkmi 因为 bang 在微信阅读(应该还在)
    neilp
        30
    neilp  
       2016-09-26 13:27:50 +08:00
    请做正确的事情.
    qixinghaitang
        31
    qixinghaitang  
    OP
       2016-09-26 15:26:40 +08:00
    @osborn
    @20150517
    @neilp

    举例子为什么这事不是正确的?

    一个大用户量的 App ,如果出现一些紧急的 bug ,重新打包上架应用商店三五天到半个月都算少的了,而去频繁更新版本用户都烦死,热更新的应用场景就出现了!!

    对了,热更新之前一直是大型客户端游戏和大型手游再用,因为 PC 用户不愿意更新一次几个 G ,手机用户一次下载几百 M 也烦死。

    热更新技术本身并不是一件错事吧?
    neilp
        32
    neilp  
       2016-09-26 23:38:03 +08:00 via iPhone   ❤️ 2
    你在 play/store 上发布软件,就要遵守上面的规则。 就跟遵守当地的交规或法律一样。

    这是规矩。

    举个不恰当的例子, 法律规定不能杀人, 然后有人大张旗鼓的教大家如何杀人而被警察知道 。

    你觉得意下如何?
    neilp
        33
    neilp  
       2016-09-26 23:40:04 +08:00 via iPhone
    手机漏字: 而不被警察知道
    gamexg
        34
    gamexg  
       2016-09-27 12:51:11 +08:00 via Android
    看着就心累。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   965 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:22 · PVG 05:22 · LAX 14:22 · JFK 17:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.