缺它不可!靈活運用 Firefox OS Gaia 的單元測試

單元測試一直以來都是確保軟體品質的一種方式,在日益錯綜複雜的軟體中更是重要。Firefox OS 的應用層 Gaia 理所當然的也由單元測試來確保軟體品質。設置妥當後,當你打開任意編輯器對 Javascript 檔案編輯,並且按下『Save』的那一刻,unit test agent 就會默默的被喚起,針對您的修改一項項的進行檢測。當所有測試項目都妥當的通過之後,您將會看到一個優雅的圖示跳出來,告知.....深入了解

首度曝光 – 淺談 Firefox OS 顯示流程

今天搶先和大家聊聊 Firefox OS 的畫面顯示的流程。Firefox OS 是基於 Android BSP (Board Support Package) 的系統而又有很多不同。而我們的顯示部分也跟 Android 所採用的 SurfaceFlinger 完全不同。   首先我們先來看看簡化很多的類別圖,以及幾個簡單的概念: 在現行的 Gecko 引擎當中.....深入了解

鑽進 Firefox OS 開發:淺談 Internal string

不論是哪個語言的程式設計師,都時常需要和語言或是框架的字串 (String) 打交道。舉凡傳遞訊息、寫 log,或當作資訊來儲存等等都會用到。今天就來和大家聊聊,在 Firefox OS 裡面,string 是怎麼被使用的。 Internal string / External string 首先要提到的是,我們稱在 Mozilla codebase 中所用到的字串為 "intern.....深入了解

Hacking Firefox OS Emulator for RIL

《Mo語》:「不學 Emulator 無以 test;不寫 test 無以 land!」 之前我們介紹過 Firefox OS Emulator,也聊過如何使用 Marionette 來為 Firefox OS 寫測試項;今天我們來研究一下如何為模擬器新增功能來協助開發 RIL (Radio Interface Layer) 相關的測試項。Firefox OS 基於 Gonk,利用 Gonk 所.....深入了解

Select your Selector – 設計 Firefox OS 選項選單的奧妙

在開發網頁程式時,當我們想要提供一個選單,可以讓使用者能在選單中選取他們想要的選項,基本上會非常直覺地想到 <select> 標籤。相同的,當我們在 Firefox OS 上開發 APP 有類似的需求時,也會直覺地想用 <select> 標籤來實作這一個功能。原有 Firefox UI control 僅適用於 Desktop 版本,所以我們必須重新實作一個適用於 Mobi.....深入了解

Hacking to boot up Firefox OS

今天我拿到了一隻新的手機,手機上運行的正是大家所熟悉 Android 系統。我的任務是將 Firefox OS 移植到這一隻新的手機上,這個工作對我來說非常有趣,因為透過 hacking 的方式可以讓我更了解 Firefox OS 這個火紅的作業系統。以下將分幾個部份來逐步地描述 hacking 的過程。 取得 Firefox OS 的環境 取得Firefox OS 的環境非常容易,.....深入了解

Gecko 的 New DOM bindings

注意:本篇討論 Gecko 內部 DOM bindings 的實作,可能會有比較多的程式碼。 目前網頁的通用語言是 JavaScript,可是主流瀏覽器大多由 C++ 開發實作,DOM bindings 就是一些處理如何從 JavaScript 引擎使用以 C++ 實作的 DOM API 的程式碼。有關 Mozilla 過往的 DOM bindings 的相關資訊,可以參考 Mozilla .....深入了解

在 Firefox OS 裡 如何使用 built-in profiler

Profiling 這個技術可以提供系統執行時的歷程,讓我們評估並找出系統效能的瓶頸。Firefox OS 目前提供了 built-in profiler, 我們可以利用 profile.sh 這個 script 來幫助我們從 device 擷取 profiling information,並且利用 cleopatra 這個工具來分析 profiling information。在我們開始使用 p.....深入了解

Gonk 秘辛之編譯系統

之前的文章大都集中在 Firefox OS 運行時的討論,而今天就讓我來平衡報導一下 Firefox OS 運行前的其中一個工作好了,那就是編譯系統;首先要提到的就是 Firefox OS 利用了來自於 Android 的編譯系統,因此 Gaia 和 Gecko 就必需做適當的配置以加入到編譯系統裡。先來看看 Firefox OS 到底有哪些項目需要被加入呢?有 Gaia\ Rilproxy\ G.....深入了解