简介

现今开发人员面对的挑战, 除了要很好的将构想实现出来之外, 用什么技术实现, 在什么平台上实现, 绝对是另一个需要严肃面对的问题. 另外, 就算是选定了开发技术及平台, 随着时间的演进, 版本的更新, 还是会造成明显的兼容性问题.

用 HTML5 吧, 这个全世界最多人使用, 运行于最多的设备类型的平台! 开发人员数量众多, HTML5/CSS3/JavaScript 配合各种 API, 已能满足大部份的应用类型, 看似是最完美的方案了! 但是, 美好的表像后总是有个但是, 支撑 web 应用运行的环境 - 浏览器, 并不是在所有平台都能提供最新标准的实现.

原因是, web 标准也是随着时间不断的向前滚动, 理所当然的, 浏览器也要有相应的实现, 或是问题的修正, web 应用才能正确的运行于其上. 离开了 PC 环境, 许多的移动设备通常都有一定的维护期, 过了这个期间, 固化在设备上的系统 - 包含浏览器, 就没法得到厂商的更新, 最终造成 web 平台的分歧.

CrossWalk, 是由 Intel 开源技术中心 (Intel Open Source Technology Center) 发起的 web 应用引擎, 为的是提供应用开发人员更好的生态环境 - 从开发, 调适到发布, 相应的支持一应俱全, 特点如下

  • 以 Google Chromium 为内核
  • 与上游保持短且固定的代码同步周期
  • 快速叠代让最新的 web 特性能最快的被用上
  • 由项目及社区成员对各平台进行集成及调优
  • 自带 Apache Codova (可选), 延伸 web 平台功能
  • 有多种机制供实现扩展, 让应用能更贴近所运行的平台
  • 支持目前市面上几乎所有的主流平台

除了以上的平台特性外, 在开发工具方面

  • 提供了命令行, 命令行, 命令行, ~~供开发自动化, ~~
  • 可配合 Intel XDK - 一个可视化开发环境
  • 提供了调试机制, 仿真器, 在发布到目标平台前最大可能性的处理掉所见问题
  • 提供了各种平台的打包机制, 让开发/调适/打包/发布能流水线化

CrossWalk 项目从开始之初即与 Deepin 有着紧密的合作, 现在 Deepin 商店中也有多款相当受欢迎的 CrossWalk 应用. 想学习如何于 CrossWalk 上开发你的应用并打包发布? 下面就给出最简单的例子让大家快速入门.

Hello World

学习一门新计算机技能, 理所当然的都要从经典的 Hello World 开始 ;)

进到 Deepin 后, 下载 CrossWalk 运行环境, URL 如下
https://download.01.org/crosswalk/releases/crosswalk/linux/deb/canary/latest/

安装

$ sudo dpkg -i crosswalk_*deb

接着准备 Hello World 内容. 建立项目放置目录

$ mkdir ~/xwalk-hello-world && cd ~/xwalk-hello-world

准备应用的进入点 index.html

$ cat <<END >index.html
<html>
<body>
    <div style="font-size:800%; text-align:center:">Hello World</div>
</body>
</html>
END

准备 Manifest - 一个 JSON 格式的设置档, 用来描述应用进程

$ cat <<END >manifest.json
{
    "name": "Hello World",
    "start_url": "index.html",
    "icons": [ {
        "src": "logo.png",
        "sizes": "108x124",
        "type": "image/png",
        "density": "4.0"
    } ]
}
END

帮我们的应用准备个图标

$ mkdir images
$ wget http://ubos.net/docs/_images/helloworld-icon.png -O logo.png

准备就绪后, 就可以用 xwalk 指令执行我们的 Hello World 了

$ xwalk manifest.json

虽然, 本例只是非常简单的 Hello World, 示范了 CrossWalk 的安装及使用, 但强大的 Chromium 内核 + Codova, 再配合各种开源前端框架, 能开发出什么样有意思的应用, 就看各位读者的想像力啦!

参考数据