微信开源 Android 热修复框架 Tinker,支持在无需升级 APK 的前提下更新 dex, library and resources 文件 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qixinghaitang
V2EX    微信

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

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

    最近半年以来, 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  
    PRO
       2016-09-25 17:17:14 +08:00 via iPhone
    6666666
    6IbA2bj5ip3tK49j
        19
    6IbA2bj5ip3tK49j  
       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     Solana     5035 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 07:32 PVG 15:32 LAX 23:32 JFK 02:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86