HybridApp 增量更新解决方案

栏目: 编程工具 · 发布时间: 2个月前

来源: www.coder.dog

本文转载自:http://www.coder.dog/solution/hybrid-app-solution.html,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有。

本文是之前发在ruby-china上的帖子

第一次发帖= =喵

今年早些时候就想过做一些HybridApp方面的尝试,我认为HybridApp的优势有以下两点

  • 对于初创公司,手机Web,iOS,安卓可以使用统一的H5提供的界面,减少开发成本
  • 更新及时,服务器端更新,客户端不管新旧版本能够立即看到效果,尤其对于 iOS 漫长的审核周期,再也不用被老板天天盯着了

但是混合型的应用也往往因为工程师水平有限或者H5/CSS3兼容或者特效不流畅,以及最重要的浪费流量而饱受诟病

之前因为一些原因一直心里想着然后没时间去实现,最近在我们的应用( 奢圈WHOSV )里面用了HybridApp构架,发现还是非常爽的,打个广告大家可以搜一下我们的APP啦啦啦~

之所以称之为构架,因为我们在多方面做了很多联合的解决方案,在这过程中我们发现有几个问题是需要重点考虑

  • 缓存问题
  • 增量更新问题
  • 客户端App向WebView/UIWebview注入JS问题

反正是各种坑= =。。所以感觉之前的决定也是对的。。没有时间精力千万不要去轻易尝试。。

这篇重点介绍我们在增量更新方面的解决方案,求轻喷TAT(其他的大家有兴趣我再整理下= =):

首先是增量更新的方案

我们看了InfoQ上面腾讯前端团队在AndroidQQ上的解决方案的介绍,发现他们的方案不太适合我们

给出Keynote链接 http://vdisk.weibo.com/s/A0GI9rXObukZ

跪谢Rehorn大神的keynote,启发了我们

腾讯:

  • 使用bsdiff和bspatch作为增量更新的比较和打包工具,需要在安卓,iOS都加入Native支持,虽然就俩文件,但也比较烦
  • 使用zip需要每个版本做比较,在版本更新方面可能需要下载多个zip包覆盖才行,对于 服务器 端发布流程和构架需要做比较大的改动,不方便!
  • zip包不能压缩,只能使用打包模式,这个是由于 bsdiff 使用 LCS 算法带来的问题,另外js文件minify也有可能带来增量包变大的问题

LCS算法详见: http://en.wikipedia.org/wiki/Longest_common_subsequence_problem

WHOSV:

  • 使用单个文件全量更新的方案,对文件列表中的单个文件比较 md5 或者 sha1 摘要进行比较
  • 利用 nginx 自带的gzip压缩,不需要改变之前的发布流程,可以混淆!可以压缩JS!

在安全方面我们参考Debian更新软件包时提出的Secure Apt方案,我们提出基于HTTP的方案 https://wiki.debian.org/SecureApt 当然Debian是基于 Gnugpg 的实现,我们换成只用RSA

www.site.com/module/Packages

以上就是安全方面的整个信任链

当然土豪公司完全可以利用Https证书来完成信任链的建立

有一篇文章讲的比较好:除了翻译有些问题

HTTPS连接的前几毫秒发生了什么 http://blog.jobbole.com/48369/

然后我们为服务器端发布写了一个Gem

用Gli写的一个命令行工具,目前还不是特别完善= =其实

用于

  • 创建RSA密钥对
  • 生成站点下某个模块站点的所有文件列表
  • 对文件列表进行生成摘要,并进行RSA签名

地址: https://github.com/lujiajing1126/genRelease

具体用法

// 目录结构
// -public
// n someModule
// n otherModule
cd public
gem install genRelease
// 在当前目录生成RSA密钥对
genRelease create
// 对当前目录下某个模块生成文件列表
genRelease --verbose build --host-name=www.yoursite.com someModule
// 签名
genRelease sign

其他的部分,比如说Webview注入之后,网页部分调用原生部分,我们写了一个框架,有点类似Weixin的API恩

https://github.com/lujiajing1126/WhosvBrowserJSBridge

就说这么多,感觉好弱。。= =写实验报告去了囧


以上所述就是小编给大家介绍的《HybridApp 增量更新解决方案》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

为你推荐:

相关软件推荐:

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

创新者的处方

创新者的处方

[美]克莱顿·克里斯坦森、杰罗姆·格罗斯曼、黄捷升 / 朱恒鹏、张琦 / 中国人民大学出版社 / 2015-9 / 89.90元

[内容简介] ● 创新大师克里斯坦森采用了哈佛商学院在20年研究中总结而出的、在各行业实践中获得成功的管理创新经验,把颠覆式创新理念引入美国医疗行业研究。医疗机构需要量体裁衣,选择合适的商业模式展开创新之举。 ● 作者同时探讨了医疗保险公司、制药企业、医学院和政府机构在医疗改革中起到的作用,从社会性角度深入剖析了医疗保健行业未来之路。 ● 医疗界人士、政策制定者、对医疗界现......一起来看看 《创新者的处方》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具