第一次发帖= =喵
今年早些时候就想过做一些 HybridApp 方面的尝试,我认为 HybridApp 的优势有以下两点
但是混合型的应用也往往因为工程师水平有限或者 H5/CSS3 兼容或者特效不流畅,以及最重要的浪费流量而饱受诟病
之前因为一些原因一直心里想着然后没时间去实现,最近在我们的应用( 奢圈WHOSV
)里面用了 HybridApp 构架,发现还是非常爽的,打个广告大家可以搜一下我们的 APP 啦啦啦~
之所以称之为构架,因为我们在多方面做了很多联合的解决方案,在这过程中我们发现有几个问题是需要重点考虑
反正是各种坑= =。。所以感觉之前的决定也是对的。。没有时间精力千万不要去轻易尝试。。
这篇重点介绍我们在增量更新方面的解决方案,求轻喷 TAT(其他的大家有兴趣我再整理下= =):
我们看了 InfoQ 上面腾讯前端团队在 AndroidQQ 上的解决方案的介绍,发现他们的方案不太适合我们
给出 Keynote 链接 http://vdisk.weibo.com/s/A0GI9rXObukZ
跪谢 Rehorn 大神的 keynote,启发了我们
腾讯:
bsdiff
使用LCS
算法带来的问题,另外 js 文件 minify 也有可能带来增量包变大的问题LCS 算法详见:http://en.wikipedia.org/wiki/Longest_common_subsequence_problem
WHOSV:
md5
或者sha1
摘要进行比较在安全方面我们参考 Debian 更新软件包时提出的 Secure Apt 方案,我们提出基于 HTTP 的方案
https://wiki.debian.org/SecureApt
当然 Debian 是基于Gnugpg
的实现,我们换成只用 RSA
www.site.com/module/Packages
以上就是安全方面的整个信任链
当然土豪公司完全可以利用 Https 证书来完成信任链的建立
有一篇文章讲的比较好:除了翻译有些问题
HTTPS 连接的前几毫秒发生了什么
http://blog.jobbole.com/48369/
用 Gli 写的一个命令行工具,目前还不是特别完善= =其实
用于
地址: 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
就说这么多,感觉好弱。。= =写实验报告去了囧