Neo FreeRunner 應用程式開發概念圖
Openmoko 的 distribution 現在有許多不同的版本,一大堆名詞總讓人一開始就一頭霧水,像是:Om2007.2、Om2008.8、FDOM、ASU等等。剛開始接觸 Openmoko 以及 Neo FreeRunner 的同學,經常要花一些時間認真讀 Openmoko wiki 才能了解通盤概念。
許多同學只是想要在 FreeRunner 上寫寫簡單的小程式,一開始遇到這些從沒聽過的名詞,花很多時間,有時還是搞不清楚「怎麼在 FreeRunner 上寫小程式」,總是會有一些挫折感。因此,在這裡整理一份簡單的「Neo FreeRunner 應用程式開發概念圖」,幫助同學建立整體概念。
怎麼在 Neo FreeRunner 上寫一個簡單的小程式呢?請看下圖的說明。
Om2007.2 與 Om2008.8 都是 Openmoko 的官方版本(official distribution),Om2007.2 與 Om2008.8 除了有 Openmoko 自已的開發成果外,也使用了許多 FOSS(Free and Open Source Software)的套件,因此,需要將 Openmoko 的成果與這些 FOSS 套件整理成一個完整的散佈套件,以提供 Openmoko 手機使用,這就是「Openmoko Linux」或「Openmoko Linux distribution」。這樣的概念就像是 Ubuntu Desktop 是一個給個人電腦使用的 Linux distribution,Fedora 也是一個 Linux distribution。
Om2007.2 是 Openmoko 官方的第二個釋出版本,middleware 的主要元件為 libgsmd 與 GTK+。Openmoko 提供 Om2007.2 的 pre-built toolchain 以及一個 sample(放置於 pre-built toolchain 的 openmoko-sample2 目錄)讓開發者可以很方便地撰寫程式,並將編譯好的程式打包成 opkg 後安裝到手機。
Om2008.8 是 Openmoko 官方的第三個釋出版本,同時也是很重要的一個版本,Om2008.8 主要的變更是使用了 Qtopia 的成果,將 Qtopia 移植到 x11 環境,並與其 GTK+ 的環境做整合。此外,也加入了 EFL(Enlightenment)的 UI 環境,並加入了一個可動態安裝套件的 Installer 程式,以及 Locations GPS 應用程式。在視窗管理方面,採用 EFL 的 Illume;同時也有較佳的 theme 支援,也加入了 Qtopia keyboard。Om2008.8 可同時執行 Qtopia/EFL/GTK+/x11 應用程式,並透過 D-Bus 技術做整合,可以說是一個創新的手機軟體平臺。
在 Om2008.8 平臺上,除了能使用 GTK+ 的 pre-built toolchain 來寫程式外,Openmoko 也提供了新版本的 pre-built toolchain。如果您想使用 EFL 來寫程式,可以安裝新版本的 pre-built toolchain,並透過 opkg-target 來安裝 EFL 的開發環境(libevas-dev 與 libetk-dev)至 pre-built toolchain,即可使用 C 來撰寫 EFL 程式。同樣地,我們可以使用上述的 openmoko-sample2 來編譯 EFL 程式,並打包成 opkg 後安裝至手機。
另外一個方式則是使用 Python 來撰寫 EFL 應用程式,直接將 Python script 上傳到 FreeRunner 即可執行,當然也可以打包成 opkg 後再安裝。
過去曾使用 Qtopia 撰寫程式的同學,也能在 Om2008.8 上執行 Qtopia 應用程式;不過,如果是 Qt 應用程式的話,雖然 Om2008.8 裡有包含 Qt library,但比較不建議使用。