atom-shell: GitHub 開源的跨平臺桌面應用框架(基於 Node.js 和 HTML 5)

atom-shell是 GitHub 隨 Atom 一塊兒開源的跨操做系統(Windows,Linux,MacOS X)的利用 Web 技術(Node.js、JavaScript、HTML 5)開發桌面應用的框架。Atom即構建在 atom-shell 之上。html

與 Node-Webkit 的區別

atom-shell 和 Node-Webkit 很像,那麼二者有什麼區別呢?git

1. 程序入口

Node-Webkit 的程序入口是一個網頁,你在 package.json 中指定主頁,而後這個主頁會在瀏覽器中打開,做爲應用程序的主窗口。github

atom-shell 的程序入口則是一個 JavaScript 腳本,而不是直接指定一個 URL。你須要手動建立瀏覽器窗口,並經過相應的 API 加載 html 文件。你同時須要監聽窗口事件以便決定什麼時候退出應用。web

所以,atom-shell 更接近 Node.js 運行時,API 也更加底層,你能夠利用 atom-shell 進行 web 測試,相似 phantomjsshell

2. 編譯系統

atom-shell 使用 libchromiumcontent 訪問 Chromium 的 Content API,這樣編譯 atom-shell 的時候就不用編譯整個 Chromium (編譯 Chromium 很是費時)。json

順便提一下,GitHub 開發者還建立了 brightray 庫,讓 libchromiumcontent 的使用更方便。segmentfault

3. Node 集成

Node-Webkit 的 Node 集成須要給 Chromium 打補丁才能工做。atom-shell 經過集成 libuv loop 和 平臺的 message loop 避免給 Chromium 打補丁。瀏覽器

4. Multi-context

Node-Webkit 創造了 Node context 和 web context 的概念,而 atom-shell 沒有引入新的 context,而是直接使用 Node 的 Multi-context 特性(這一特性是 Atom 開發者贊助 Node 添加的)。框架

做者

GitHub 最初考察了 Node-Webkit,可是最終仍是決定僱傭 @zcbenz 來開發想要的框架。因而 atom-shell 誕生了。oop

@zcbenz 真名趙成,是杭 JS 的講師,有興趣和他交流的能夠報名 杭JS哦。

相關連接


編撰 SegmentFault

相關文章
相關標籤/搜索