代码热推送是个什么鬼?

2016-01-12 10:14:01 +08:00
 zhe13

看见 github 上微软又出了一个黑科技,CodePush.
看介绍好象是可以不用向应用商店提交版本,直接推送代码。
这是不是和许多 iOS 手机游戏一样,登录的时候下载更新包一样?
这样做的原理是啥

5304 次点击
所在节点    分享发现
28 条回复
hyq
2016-01-12 10:39:03 +08:00
用脚本写逻辑,发布后从网上下脚本。一般是用 lua 脚本
hyq
2016-01-12 10:41:21 +08:00
这个是 javascript 做的 natvie 应用吧?
congeec
2016-01-12 10:53:29 +08:00
苹果的政策允许么?貌似是盲区
zhe13
2016-01-12 11:54:42 +08:00
@congeec 以前实习的时候,前辈写 iOS 就是用 Ludei 打包的,他就写了一个类似于端游每次登录的时候检查一下是否有更新包,有就下载。好像之前很火的刀塔传奇就是这么做的?国内和日本的好多 iOS 游戏都是这么做的,毕竟苹果商店每次提交版本都要提交全部代码,我觉得这样也很好=-=。能跟我讲讲整个软件包重新下载和下载补丁的优劣吗?@hyq
zhe13
2016-01-12 11:56:52 +08:00
@hyq 那我能不能这样理解,一个应用只包括底层逻辑和基础资源以及一个类似于“编译器”一样的处理器。高级逻辑就是脚本,然后每次打开程序都会由这个处理器接受推送,看看是否要下载新的脚本更改高级逻辑?
pheyer
2016-01-12 12:15:05 +08:00
这个是配合 ReactNative 使用的吧
GeekTest
2016-01-12 12:20:47 +08:00
不就是 12306 用的那套么
bullettrain1433
2016-01-12 12:36:27 +08:00
居然是微软家搞得
easing
2016-01-12 13:18:08 +08:00
我们的浏览器不就是代码热推送嘛, js 成吨成吨的下。概念就是这么个概念,无非就是换一个平台再来一次。
yujie
2016-01-12 13:20:30 +08:00
现在脚本更新还是没啥问题,苹果在这块其实也是睁一只眼闭一只眼的,牵扯到很多利益问题,你要是重新传个包上去又得重新审核,不能及时解决问题,程序开发到一定程度,脚本的逻辑也是很多的,其中只有小改动的话做增量更新就好了,所有脚本全部打包上传没必要,这个微软出的不太清楚,我们之前做游戏就是用 Lua 脚本热更的,脚本语言是在运行时才进行编译链接的,所以就有了更新的可能性,做好版本号,发现有新的了,就下载下来,重新加载就好了~这期间程序是可以不用重启的
a591826944
2016-01-12 13:24:48 +08:00
ReactNative +1
hqdmy
2016-01-12 13:30:50 +08:00
hotpatch 啊
hqdmy
2016-01-12 13:33:41 +08:00
ios wax
android Xposed
agassi_yzh
2016-01-12 14:22:17 +08:00
JSPatch 也能干
plantain
2016-01-12 14:27:59 +08:00
代码是 typescript 写的,所以实际运行的应该是编译后的 javascript 。现在只支持 Cordova 和 React Native
aaaron7
2016-01-12 14:36:22 +08:00
live long and prosper.....

最后一条 instruction 太有情怀了……
leonlu
2016-01-12 15:10:34 +08:00
code push 用到的代码是 javascript 。苹果原来在开发者协议里指定只能在 web view 中执行远端代码。但是后来他们修改了协议,添加了一个 JavaScriptCore 。也就是说在苹果这儿,这么干是被认可的。
hyq
2016-01-12 15:18:21 +08:00
@congeec 只要不是一个热更新包把整个程序全换掉,现在苹果是不管的。国内的游戏基本都有这样的热更新功能。


@zhe13 重新下载软件包,坏处就是要审核,好慢好慢的。。补丁的坏处在于补丁多了以后,用户体验不好,进入一个程序,结果弹出个窗口要求下载 100+个更新包,合计 600M ,一般人都不能接受吧(这是极端情况,如果一直依靠补丁来更新程序,有可能出现)。
zhe13
2016-01-12 15:47:27 +08:00
@GeekTest 来来来,我对 12306 很有兴趣,是不是能够详解一下
zhe13
2016-01-12 15:48:06 +08:00
@leonlu 想不到你竟然把开发者协议全看了(真是够闲的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/250063

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX