文章分類:Firefox OS(B2G)

104 篇文章

運用 Web 技術打造電視遙控器的操作環境

1
當初我們決定要將 Firefox OS 應用到智慧電視 (Smart TV) 上時,第一個遇到的問題便是操作介面的不同。在一般的電視使用情境下,使用者通常不會有滑鼠或是觸碰螢幕,能拿來操作的是那少少幾個按鍵的電視遙控器 (好吧,其實現在電視遙控器上的按鍵還不少)。在將 Firefox OS 這樣一個...

在 Firefox 上建構 WebVR

Screen Shot 2015-10-05 at 12.03.57 PM
近年來在資訊業最火熱的話題無疑就是虛擬實境 (Virtual Reality,VR) 了。除了 Oculus 推出 Oculus Rift 之外,其他如 HTC、Google、Samsung 等科技大廠亦各別推出自己的解決方案。VR 目前在遊戲、 電影、多媒體內容都有其龐大的市場需求。Mozilla...

淺談 W3C Sensor API的發展

axes.png
感測器元件是連接實體世界和數位世界的橋樑,將物理現象轉化為電子訊號帶入軟體的次元。感測器元件的存在更是人機互動體驗的必要條件,如利用加速規(accelerometer)、陀螺儀(gyroscope)等動作感測器把手機當方向盤的 REAL RACING賽車遊戲、 利用近距感測器(proximity s...

解析 XPCOM 物件的 Reference Count

在 Gecko 的實作裡,我們大量使用 smart pointer 作為指標傳遞間的媒介,而為了能完善的操作 reference count ,我們必須保證 reference count 的增減是 thread safe 的。若無法妥善處理 reference count 的增減而產生 race ...

XPConnect 遇到的小問題

在 XPCOM 的世界裡,透過 XPConnect 的幫忙,C 和 JavaScript 實作的元件可以互相地呼叫,因此我們可以自由選用合適的語言來開發各自的元件。 但是因為中間包了一層 wrapper,所以在某些特殊的情況下,程式的運作可能會不如你的預期:例如在 跨越語言的邊界 – 淺談 JS A...

如何在 Firefox OS 上建立瀏覽器 APP

open webide
Firefox OS 上的瀏覽器 APP 利用 Gecko 提供的 Browser API 來管理網頁瀏覽,並利用 HTML5 技術提供使用者界面。根據不同的實作它可以實現分頁,瀏覽歷史,書籤… 等等功能。這篇文章示範如何建立一個可以在 Firefox OS 裝置上使用的瀏覽器 APP,它包含了最基...

Where am I?-Part II-在 Google Maps 標記地圖資訊

2014-12-18 18:22:26 的螢幕擷圖
在看過 Part I 部分,相信大部分人都可以了解如何完成一個 Firefox OS 地圖應用程式。在了解了地圖的基本應用之後,我也想要做一個簡單的程式。我想要完成一個可以在地圖上呈現更多資訊的地圖應用程式。除了顯示個人地理位置資訊,可以把我們感興趣的地圖資訊也呈現出來。 我們生活中常用的就是交通的...

Where am I?-Part I-使用 Google Maps 地圖快速簡單查看你的位置

05.EMULATOR
05.EMULATOR 地理位置(Geolocation)的應用相信大家每天會使用到,早上查看上班前的交通狀況,傍晚打開手機 app 查詢附近的餐廳,上菜後照相打卡,看看週末旅行的城市天氣如何,或是用運動 app 記錄自己慢跑的速度,路線。在這篇短文,筆者將介紹如何在 Firefox OS 上,使用...

利用 adb 和 gdb 來 debug Firefox OS (B2G)

Debugging 絕對是每個 programmer 不得不面對的痛。有句俗話說 To err is human; to debug, divine. 當我們遇到一個 B2G 上的 bug,卻不清楚原因的時候,該怎麼辦呢?本文將介紹一些筆者日常工作中,對 B2G 的 Gecko C 部份常用的除錯方...

淺談 System Message

SystemMessage_RegisterPage
相信各位使用手機或多或少都有收過 SMS 簡訊或是定時鬧鈴等種種來自系統本身的通知,而在 Firefox OS 中,這些功能都可透過所謂的 system message 機制來達成,即便是在相關 app 尚未開啟的情況下。 簡而言之,system message 是為了處理一些必須要由 Gecko ...

Gecko 內的死亡之握-kungFuDeathGrip

在看 gecko 的 code 時無意間發現了這個神奇的區域變數: kungFuDeathGrip ,乍看之下這個奇怪的區域變數在 function 內就只有被宣告,並且沒有被使用到,那麼到底為什麼要有這個變數的存在呢?為了更進一步了解這個變數的由來,我們先來看看 kungFuDeathGrip 字...

標準化的錄影API

當 HTML5 發展日漸成熟之際,在多媒體的輸出原生支援方面,目前已經支援了大多數網路常見的格式,所以開發者可以使用 audio 或是 video tag 來進行影音播放控制。但輸入方面,目前各家瀏覽器並無統一的 API 實作,為解決此問題,W3C 委員會在 2013 年開始制定了MediaReco...

建構 Firefox OS 操作介面的基本元素: Fira Sans 字型

interface
字型是使用者介面的基礎,所有顯示在畫面上的資訊都是由圖跟文字構成的。舉凡使用者需要閱讀、了解文意、或是進一步進行操作動作選擇的地方,不論是一段說明文字、一個對話框、圖示下面的標題文字、或是確認、取消的按鈕、系統設定畫面…等等,皆需要文字來構成。其實在介面設計中,沒有刻意去注意的話,可能不會發現,原來...

Web app 如何操作硬體功能(Firefox OS 的內部溝通 - 藍牙篇)

B2G_BT1
我們在 Firefox OS 手機的設定選單中,可以選擇開啟藍牙或是 GPS 這種手機硬體相關的功能。只要輕鬆點擊網頁語法寫出的按鈕,就可以操作裝置硬體,這在 web app 中是怎麼做到的呢? Web app 開發者通常可以查詢相關的 web API 網頁,看是否有適合的 API 可以幫忙執行想要...

在 Firefox OS 取圖片色彩平均值之二三事

OldNotification
在 Mozilla 開發 Firefox OS 的歷程中,使用者體驗是我們非常著重的項目。在近期開發的 Firefox OS 版本(2.0)上,我們大幅修改了鎖定畫面(Lock Screen,或稱螢幕鎖)的外觀。下圖左是舊版畫面,圖右是新版畫面。 OldNotification NewLockscr...

從 UI 元件上測試你的 App

謀智台客之前的文章提到了有關 Gaiauitest ,在 Mozilla 工作團隊的努力下,這套工具已經越來越健全,足以寫出貼近使用者體驗的測試了。 對於開發者來說,更重要的是如何使用它來幫助自己開發的程式。下面以 Contact App 的例子,如何透過 Gaiauitest 的架構來測試 App...

航向 128MB 的偉大航道-Gaia • 神奇的可視範圍監視器

visibility-monitor(2)
隨著超低價的市場崛起,我們對各項資源也開始斤斤計較。不論是 CPU、RAM、及 Flash,每一個項目都是我們努力減少的目標。先前丹尼兄及艾倫兄已分別為大家介紹過 gecko 在處理記憶體管理上的文章[1][2]。這些都是著墨在記憶體管理上,今天醬糊小弟將向各位介紹一個在 gaia 存在已久的可視範...

Audio 就是矯情!

Audio8
“聽 海哭的聲音 這片海未免也太多情 悲泣到天明" 是低,大家都知道是阿妹經典到不行的歌,但是如果阿妹聲音播不出來,那哭的人就換成是我而不是那片海了 Orz ! 請大家先從阿妹的歌聲裡 (或是我的哭聲?) 回到現實來,聽我來聊聊 Firefox OS 裡聲音的部分。基本上聲音系統裡可以簡單分成兩種,...

像原生應用程式一樣的 WebApp?趕快學起來!

uidemos
經常收看謀智台客的讀者可能已經看過怎麼開發一個 (Firefox) WebApp,或是可在 MDN 上找到相關開發資訊。 簡而言之,Mozilla 提出的開放 WebApp 標準草案,允許把使用網頁技術製作的網頁做成 App 來使用。提供的方式除了 App 使用者所習慣的 App Store 模式(...

女媧,在 FxOS 裡捏 process

recreate
在 Firefox OS 中,有一個類似 Android Zygote 的 process,利用 fork() 複製出應用程序並在這些應用程序間透過 copyonwrite 共享記憶體分頁。這麼做有助於降低記憶體用量和更快速的啟動應用程式。她的名字叫 Nuwa – 女媧 [[1]](https://...

淺談 Cycle Collection

Reference cycle would hold the reference count.
什麼是 Cycle Collection ? Gecko 專案中,常常會使用 smart pointer 來管理動態配置的記憶體的釋放。當記憶體的 reference count 為零時,就判定為不會再被使用。然而如果物件互相持有,形成了 reference cycle,也就是謀智台客這篇「說說 n...

再探 Inter-App Communication (IAC)

IAC
先前 EragonJ 跟大家介紹過 Inter App Communication 的使用情境以及使用範例程式碼,本篇將繼續討論 InterApp Communcation(文章後面將縮寫為 IAC )其他較少為人知的面向。 雙向通訊連線 使用 IAC 建立連線的程式碼通常如下: navigator...

淺談 Mobile Message – SMS 與 MMS 於 Firefox OS 之實作

Messaging Screenshot
Messaging Screenshot在人手一支智慧型手機的時代加上 3G /4G 行動通訊快速的發展,已出現越來越多樣性的即時通訊軟體,例如:Line、WhatsApp 等等。但提到手機內建最老字號的通訊服務,當然是從 2G/2.5 G 時代就已經存在至今的 SMS(簡訊服務)與 MMS(多媒體...

C++11 與 Gecko

C++0x
大家都知道 Firefox OS 最大的賣點就在於其開放的平台以及以網頁為基礎的應用程式。相信常關注我們謀智台客的讀者們,也都知道在應用層下的核心引擎 Gecko 是用 C++ 撰寫而成的。Gecko 自開發以來經歷的好幾個年頭,C++ 也不斷地進步當中。 C++0x 在 C++0x 被提出的若干年...

Gecko 多彩多姿多媒體

Gecko
自從個人電腦愈來愈普及之後,影音娛樂的應用一直是大家關注的焦點之一。在其中,多媒體的播放功能已經變成基本功能中的基本功能。為了能處理各式各樣的多媒體功能(諸如:錄製、播放、串流、轉換格式、後製處理等),每個平台上幾乎都有設計出一套多媒體框架用來應付各種的需求,像是 Windows 上有 Direct...

Firefox OS 的 MP4 container 簡介

前言: MP4 是目前最常見的影音格式之一,在這篇文章中,我們主要在介紹 container 的格式,以及 MP4 在 Firefox OS 中的現況跟常見問題。 MP4 的 container 格式主要是定義在 ISO/IEC 1449612 [1] 中,從最早期的 Apple Quicktime...

打造你的第一支 NFC 程式 – Hello,NFC!

nfc-promo
nfcpromo (圖片來源:http://www.androidapk.com/wpcontent/uploads/2013/05/sonynfcpromo.jpg) 想像有一天,看到朋友們拿著手機熱烈的討論著某位正妹的照片,你不用擠破頭跟大家搶手機來看,你只需要將兩隻手機輕輕一碰,正妹的照片咻一...

Gaia 的 Debug 神器

Nightly Debugger
開發前端的程式,一個基本的前端 debug 工具會幫我們及時揭露大部份的 HTML,CSS 和 JS,並且及時改 HTML 與 CSS,為 JS 下斷點,目前各大瀏覽器包括 Firefox,Chrome 以及 IE 都有這方面的支援,我就不在此一一贅述。那今天有什麼好用的工具可以幫助我在 Firef...

Emscripten 與拼音輸入法的相遇

Emscripten Logo
Emscripten Logo 在提到 Emscripten 之前,我們先來回顧一下 JavaScript 的發展歷史。 JavaScript 的歷史 JavaScript 在 1995 年問市時,目標是在瀏覽器中打造一種輕量的腳本語言,用來輔助頁面的呈現以及與使用者互動。為了這個目的,JavaSc...

一個打十個 – 讓 Gaia 網頁應用(webapp)支援多重設備(二:螢幕大小)

各種常見的螢幕大小 我們發現到:要讓網頁應用支援多種設備,開發者需要根據設備的「像素密度」(Pixel Density)與「螢幕大小」(Screen Size),處理相對應的「排版」與「圖片」問題。接續前一篇,本篇將闡述處理「螢幕大小」(Screen Size)的方式。 (現在Gaia關於多重設備支...

用 MozTrap 來管理你的測試

螢幕快照 2013-10-21 下午4.04.14
身為測試工程師,想要管理你的測試項目也是合情合理的。在 Mozilla 使用 bugzilla 來追蹤程式問題以及待辦事項,但如何發現並且驗證這些,便需要測試工程師分析功能以及使用者行為,轉化為測試項目並執行了。隨著時間推進、功能增加,測試項目並非只要將其逐一執行即達到目標,我們需要更好的工具讓不同...

Firefox OS 測試流程大揭秘

fxos
fxos 今天就聽我這小小測試工程師,娓娓道說 Firefox OS 快樂的工作史!! 這根本可以媲美澳洲大堡礁的工作阿!~This is really good and happy job in Taiwan!!! troll2…你還等什麼,快點加入謀智台灣阿,就缺你一個! ~以上,工商廣告時間結...

藍牙四大神器!– 簡介開發常用藍牙配件

(圖片來源:http://www.flickr.com/photos/intelfreepress/8401881183/) 身為一個完全沒碰過藍牙的新手,在加入 Firefox OS 藍牙團隊開始開發後,接觸到的一切都令我感到新奇有趣:包括藍牙的軟體架構及傳輸概念、各種不同用途的 Profiles...

超簡單!三步驟 build 好 Firefox OS!

IMAG0131
Firefox OS 的誕生早就不是新聞,但是你也許不知道 Firefox OS 早就貼心提供了平易近人的 build code 環境,以免各位在一開始徬徨無助的時候,就被奇怪的 build failed 給嚇跑了。 沒錯只要跟著下面的三個步驟,就可以 build 好 Firefox OS 的 im...

SD Card 自動掛載/分享機制

Architecture Overview
在一些低階的手機中,由於內部多使用僅 512 MB 的 Nand Flash 當作儲存空間,因此無法切割出一塊專門供使用者存放檔案的空間,這時就需要仰賴外部儲存的支援,也就是外接 SD Card。一但有了這項支援,OS 就必需提供一個機制用來偵測並自動掛載插入的外部儲存裝置。另一方面,為了方便使用者...

網頁自動測試的好朋友 – WebElement Locators

Meet-the-Firefox-OS-Mascot-a-Fox-That-s-on-Fire
MeettheFirefoxOSMascotaFoxThatsonFire 二十餘年前,網站慢慢開始出現在世界各地,起初就像盤古開天闢地一般,沒有複雜的東西,網站都相當簡易,大多以文字和些許的圖片構成,連頁面也沒有太多。經過好一陣子的發展,慢慢有了比較複雜的結構,那時候人寫網頁的邏輯慢慢的會受到干擾...

深入研究 Firefox OS Emulator for RIL

fb_social_avatar
在先前的文章當中,有跟各位讀者介紹過 Firefox Os Emulator 和 Marionette tests,也有進一步討論如何 Hacking Firefox OS emulator。想必各位都很了解 Emulator 和 Marionette 對 RIL (Radio Interface ...

還原 b2g crash 案發現場

breakpad
在 Firefox OS 系統中,若 b2g process 發生 crash 時,一般來說是透過 gdb debugger 來除錯,但現實生活中並不是每次系統 crash 都有機會知道複製步驟,能夠將問題重新複製。因此事後針對 gecko crash 分析對於 platform 工程師來說是相當重...

Firefox OS: Who am I? Why am I here? Where am I going?

where
where 相信不少人胡思亂想的時候,都曾問過自己這三個問題。似乎思考了這些問題後,人生就豁然開朗了。而自從參與 Firefox OS 專案以來,無論私下和朋友聊天,或在公開場合向別人介紹,總少不了面對各式各樣的疑問。讓我們以這三個基本問題為切入點,一起深入瞭解 Firefox OS 以及其背後的理...

四週手機變平板 – 見證奇蹟的時刻

602456_525500794175984_1995303978_n
一個月前我們在 Computex 2013 發表了 Firefox OS 在平板上的預覽版,吸引了不少人的目光。(如果你還沒看過,本文最後有精華短片。) 6024565255007941759841995303978n 雖然只是展示機器,但是當拿在手裡,身為工程師的我們,都會興奮的想讓它變成真的可以...

伸縮自如 – Gaia 的多解析度支援

Firefox OS on Galaxy SII, WVGA, 480x800
雖然 Firefox OS 以 Android 無法深入開拓的低階手機為第一波市場主打,但這可不表示 Firefox OS 只能在小螢幕上執行。目前 Firefox OS 已初步支援 HVGA (320×480)、WVGA (480×800)、qHD (540×960) 三種解析度。以 Web 技術...

快來幫忙找,IPDL 在哪裡?

Bug 859215程式流程簡圖
截止目前為止,Mozilla 的 IPC 在我心目中依然是個仰之彌高,鑽之彌堅,瞻之在前,忽焉在後[1]的神秘技術,雖然簡單地說,它就只是 Content Process 和 Chrome Process 溝通橋樑…而已(心虛)。 有了 IPC 這座橋,接下來是讓程式設計師知道如何利用 IPC 這座...

打造自己的世界-XUL Runner

XUL Runner 算是 Firefox 的兄弟之一,他允許我們用 Gecko 內部的元件設計一個擁有自己外觀(而不一定需要長的像是 Firefox)的應用程式。因為 Gecko 內部元件非常的豐富,而且 XUL Runner 也有跨平台的能力,使用 XUL Runner 可以簡化我們開發應用程式...

淺談 Firefox OS 的多程序架構與程序間通訊

FireFox OS 作為一個基於 Web 技術的作業系統,提供了許多 Web API 讓 app 開發人員可以存取手機的硬體、系統與個人資訊,然而這也帶來新的安全性的挑戰。為了降低系統弱點被利用的損害與增進系統安全性,FireFox OS 將每一個 app 執行在獨立程序 (process) 之中...

翻開 Mozilla 歷史找秘密 about:mozilla 更新

用過 Firefox 等 Mozilla 系列瀏覽器的朋友,或許知道 Mozilla 瀏覽器都內建一份 about:mozilla 頁面。該頁以深紅色為底,節錄一本不存在的《Mozilla 之書》,以基督教聖經的語調講述 Mozilla 的歷史。 在 Netscape/Mozilla 的歷史中,ab...

小小藍牙看世界

在前篇文章中,我們曾經提到藍牙相關的「配對」以及「連線」的概念。讓我們先來快速複習一下! 配對 (Pair) :與社群網站的「加入好友」機制一樣,由一方發起,另一方認可。完成此步驟後,雙方便是經過認證的好友囉!此後就可以開始進一步的互動,例如:連線。 連線 (Connect) :雙方在完成加入好友的...

跟上時代的潮流 — 談 Firefox OS 自動更新機制

一個好的軟體會隨著時代的變遷不斷的演進,為的就是帶給所有用戶『更新、更好、更強大』的使用經驗,因此自動更新機制便是現今軟體不可或缺的功能。Firefox OS 運用了 Firefox 的核心程式碼,自然繼承其自動更新機制,以下就來詳細介紹一隻搭載了 Firefox OS 的手機如何進行更新。 Fir...

耳目一新-自定 Event Handler!

目前 Gecko 已經有實作相當多的事件,可供一般 Web 程式開發者使用,但如果在開發 FireFox OS 應用程式時,需要在 DOM 物件中,傳遞新的事件給 web application,如系統電量變化、使用者開關螢幕、耳機插拔等等行為,開發者該如何用最有效率的方式,傳遞這些資訊給應用程式端...

Application 效能分析有妙招 — 使用 perf 走天下

在手機上面,Application 的實作往往會影響到效能好壞以及是否夠省電,其中 Application 的 CPU 使用量會是一個非常關鍵的因素。 以下就拿使用 Firefox OS 的手機來做舉例說明,首先透過下面的 top 指令,可以看到整體 System 以及 Application 的 ...

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

單元測試一直以來都是確保軟體品質的一種方式,在日益錯綜複雜的軟體中更是重要。Firefox OS 的應用層 Gaia 理所當然的也由單元測試來確保軟體品質。設置妥當後,當你打開任意編輯器對 Javascript 檔案編輯,並且按下『Save』的那一刻,unit test agent 就會默默的被喚起...

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

今天搶先和大家聊聊 Firefox OS 的畫面顯示的流程。Firefox OS 是基於 Android BSP (Board Support Package) 的系統而又有很多不同。而我們的顯示部分也跟 Android 所採用的 SurfaceFlinger 完全不同。 首先我們先來看看簡化很多的...

鑽進 Firefox OS 開發:淺談 Internal string

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

Hacking Firefox OS Emulator for RIL

《Mo語》:「不學 Emulator 無以 test;不寫 test 無以 land!」 之前我們介紹過 Firefox OS Emulator,也聊過如何使用 Marionette 來為 Firefox OS 寫測試項;今天我們來研究一下如何為模擬器新增功能來協助開發 RIL (Radio Int...

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

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

Hacking to boot up Firefox OS

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

Gecko 的 New DOM bindings

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

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

Profiling 這個技術可以提供系統執行時的歷程,讓我們評估並找出系統效能的瓶頸。Firefox OS 目前提供了 builtin profiler, 我們可以利用 profile.sh 這個 script 來幫助我們從 device 擷取 profiling information,並且利用 ...

Gonk 秘辛之編譯系統

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

Let a wireframe be an app in the iframe

第一版 wireframe 的畫面(1)
在 Firefox OS 平台上,一個 App 其實就是一個 iframe。Gaia 團隊成員 (Frontend engineer,簡稱 F2E) 會小心翼翼的檢閱著 UX 設計出來的 wireframe (示意圖),對照 Gecko Developer (以下簡稱 Dev) 提供的 API,把 ...

FireFox OS (B2G) 菜鳥看 code

過去的工作一直都是跟 broadband network 相關,整天看的都是網路封包 (network package),檢查封包從 network device 收進來的 formate 對不對? 封包被改得對不對? Network package 走的路徑對不對? Forwarding 的效率夠...

解決 wifi 無法開啟的問題 – 軟體啟動流程發生錯亂

由於科技不斷發展,無線技術的應用已日趨普及,其中 wifi 當然是無線產品不可缺少的一個應用。本文主要描述在 wifi 開發過程中曾經遇到的問題以及分析,希望可以藉由此篇文章來幫助 wifi 開發者分析問題。 wifi 啟動流程 系統根據以下流程開啟 wifi 載入 wifi kernel modu...

說說 nsCOMPtr 這東西

有看過 Gecko 的 C++ Source code 的人,一定見過這個東西:nsCOMPtr,有很多物件的指標都會被儲存到這類物件裡面,也猜得到他和指標有關係,但這東西到底意義何在?其實他就是 Gecko 裡面眾多 smart pointer 的一種。 C 和 C++ 語言中,令人頭痛的問題之一...

十年一覺程式夢

又是另外一個執著於把問題解決才想回家的夜晚,等著程式編譯好的同時,不妨來談談我的程式夢。但在這之前,我想我必須先釐清一下一般人對於寫程式的迷思,那就是:千萬別對寫程式這回事懷抱任何美好想像,它其實一點都不像電影裡所演的那樣優雅,駭客緊盯著螢幕敲敲鍵盤就能運籌帷幄、呼風喚雨,在一個真實的世界裡,等著你...

Firefox OS Marionette Test on Emulator

謀智台客曾在五月份時為各位介紹 Firefox OS (原 Boot To Gecko, 簡稱 B2G) 的模擬器 — B2G on Emulator。今天則要就模擬器進行進一步的說明,與各位分享如何基於模擬器和 Marionette automation driver 進行 Boot To Gec...

B2G – 美麗新世界

正如之前幾篇謀智台客文章所介紹的, Firefox OS (Boot to Becko, 以下簡稱專案名 B2G ) 計劃提供了一個全新的平台,讓開發者能夠以 HTML5 等網頁技術來開發各種行動應用 (mobile apps)。這對於開發者眾多且已累積多樣化 JavaScript library ...

只要出問題, C4炸藥 gdb 都能搞定

一早打開電腦,更新一下 code,一如往常build 完 update 到手機上去,跑了一陣子之後畫面閃了一下,Firefox OS (以下簡稱專案名B2G) 該不會重啟了吧!為了證實我們的疑慮,我們開啟 log 來看看,結果在 log 裡面看到 “Fatal signal 11 (SIGSEGV)...

Firefox OS (B2G) porting 流程概談

目前 Firefox OS (以下簡稱專案名B2G) 已經支持的設備包括: Samsung Galaxy S2 I9100 (以及兩款 SGS2 variants:I9100G,Skyrocket) Nexus S Maguro/Akami Emulator 除此之外,還有好幾款設備正在進行 por...

Firefox OS (B2G) – 改變你,改變世界!

.com brains .org heart
相信關心「謀智台客」的各位對於 Firefox OS (Boot to Gecko, B2G 專案) 都有基本的認識了(還有問題的可以趕快閱讀由 timdream 哥發表過的「關於 B2G 計畫,以及 Web 的誤解」),但這麼龐大的專案會是兩三個小伙子躲在車庫就搞出來的嗎? 答案當然不是!其實主要...

Gecko內部探索 – 如何使用 Thread

俗話說得好: 每個偉大系統背後都有個好用的 Thread 機制,Gecko 也不例外,本篇台客文就是介紹在 Gecko 裡 thread 的一些基本使用方式及相關的 class 。 首先, Gecko 內部的 thread 基本上是使用 nsIThread 這個介面,透過 NSNewThread 來...

99% CPU Usage!Why ?

前陣子接到一個新任務,就是要把 B2G 移植到新的 Samsung Galaxy S2 手機上。雖然這支手機也是 Galaxy S2,不過,他的 model name 是 GTI9100G ,跟台灣市售的 GTI9100 是完全不同的平台,有興趣的朋友可以參考這裡。移植的過程中碰到了不少問題,在看到...

初登場!台客艾瑞克報到!

大家好!我是愛笑愛開槓愛看棒球愛打網球愛寫程式而且最愛台丸的謀智台客──艾瑞克。 初次見面,請多指教。m(.)m 今年一月,我成為 Mozilla 台灣的一員,其實沒想到自己會這麼快就進外商工作,以前常聽人說「某某某進外商工作了耶」,感覺那位某某某就是很有經驗的樣子,但我仍然未達而立之年(謎之聲:好...

B2G on Emulator

各位對 Boot to Gecko 有興趣的 Developers/Hackers: 如果您有參加上週六的JSDC或是四月中的 OSDC ,有逛到 Mozilla 的攤位,或者是 OSDC 當天有去聽 Thinker 介紹 Boot to Gecko 的演講,想必對 Boot to Gecko 已經...

關於 B2G 計畫,以及 Web 的誤解

過去的幾個月中,我常在不同的場合被問到一些關於 Boot to Gecko(B2G)專案的問題。我想在這裡整理一下一些常見的,以及對於 Web 本身的誤解做為解答。 誤解 1:Boot to Gecko 是另一個手機 APP 開發平台 錯!如果想在 B2G (或任何有瀏覽器的手機、平板)上面執行您的...