Firefox OS 架構主要由三層組成,分別為 Gonk、Gecko、Gaia,其組成關係如下圖所示
開發
5.1 開發背景
◆基於開源和開放的技術實現
由於 Firefox OS 的開發從一開始就基於開放開源的方式在進行,同時它的套用主要是基於 Web 技術,不同的開發人員特別是 Web 開發,都可以很快介入其套用的開發中。
另外由於它完全基於開放的 HTML/JavaScript 來實現套用的開發,與 Java完全不相干,從而導致其生態系統也與 Android 有本質的差別,也許這一點正是Firefox OS 與 Android 套用堆疊的最大差別。
◆基於通用的硬體以及公開的硬體抽象層
Mozilla 出於堅持開放的 Web 精神以及本身的優勢與劣勢,結合當前開源社區的情況特別是 Android 的快速普及,Firefox OS 的開發一開始是基於 Android來啟動的, 甚至其整個編譯打包刷機工具也是直接利用 Android 系統現有方式來實現的。
那 Mozilla 為什麼會選擇這樣一種做法呢?也許最根本的原因是便於不同硬體的適配。不同廠商提供了不同硬體平台的Bootloader、FashBoot、核心驅動的更新以及針對 Android 平台的電話、簡訊、Camera、Sensor、視頻圖像顯示處理等的底層支持。有了這些基礎功能的底層支持,對 Firefox OS 的開發提供了極大的方便,從技術實現的角度看,Firefox OS 的底層實現可以基於 Android的底層實現來完成其架構中的 Gonk 層,以及對應的 Gecko 層。
從上面的分析看來,這是 Firefox OS 與 Android 實現的最大共同點,而這個共同點的形成,也許關鍵在於它們都是基於開源和開放的心態在進行作業系統開發。
◆擁有開放的開發測試平台
由於 Firefox OS 是基於 Web 技術開發套用,而 Web 技術已經在現代的瀏覽器中久經考驗與廣泛使用,其套用開發與測試甚至可以直接在桌面瀏覽器中進行。
4.2 Web 套用開發
基於上面提到的開發背景, 作為 Web 套用開發者,可以方便地介入到 FirefoxOS 套用開發中來,不過下面幾點還是需要 Web 套用開發者有一定的認識:
◆Web 套用是個全新的嘗試
雖然基於相同的技術,但 Web 套用從本質上講與 Web 頁面是有很大差別的。作者個人和魔智論壇的理解是,Web 頁面最大的好處能根據頁面內 URL 連結隨意跳轉到不同的頁面,而 Web 套用本質上應該是強調內容的專注化、套用化,像一個本地套用一樣(如魔智論壇手機版)要專注於完成某種功能,儘可能地讓用戶停留在該套用內,如遊戲類、社交類套用。
有了這樣基礎的認識,需要對在 Web 頁面的元素布局以及操作上進行一定的調整,才能夠成為一款優秀的 Web 套用。
◆ Web 套用移動化的挑戰
由於 Firefox OS 是一款針對移動的作業系統,必然會帶上許多移動設備的特性如觸摸操作、螢幕較小、可定位、Camera 等,這樣就提供了許多新的設備或移動相關的 Web 接口,需要 Web 套用開發者學習和使用。