移動性 (Mobility) 是一個國際的趨勢,手持裝置,如手機及 MP3 隨身聽等,已經是現在人必備的裝備之一,以往個人電腦上的計算能力及服務將可以在隨身裝置上實現,在可預見的未來,類似個人電腦的嵌入式系統,像是智慧型手機 (Smart Phone)、個人數位助理 (PDA) 等,也將逐漸普及到每個人的手裡。
然而,嵌入式系統的設計是一件複雜的工作,因為移動性要求以及成本及市場的考量,嵌入式系統必須兼顧小巧、低成本、高效能以及低功率的要求,工程師們挖空心思、無所不用其極地在系統的硬體、軟體以及工業設計上尋找最佳化的解決方案。但由於各家的巧思設計層出不窮,也因此系統互不相容,軟體間移植成本過高,導致嵌入式系統的開發環境相當的“封閉”。
Google 在 2007 年 11 月公布了 Android 計畫。Android 是一個開放式的 Linux 平台,與既有開放式平台相比較,Android 平台更講究系統平台的開放性,力求提供程式開發人員一個便利的應用程式開發平台。基於這個考量,Android計畫除了已制定了一個完整的系統架構外,還針對這個平台提供了一套軟體 IDE 開發工具 (Eclipse ADT-Plugin) 與 Emulator (Android Emulator,基於 QEMU),讓程式設計師在沒有實際硬體的情況下,依然能迅速的開發出應用軟體。
Android 另一個特色是採用 Java 來做為開發應用程式所使用的語言。採用 Java 的好處有三:(1) Java Bytecode 具有跨平台特性,(2) 物件導向語法比 C 語言更適合用來開發 GUI 元件,(3) 相關的開發工具已經很齊全。然而,傳統 Java VM 的效能不彰也是眾所周知的缺點,針對這一點,Android 平台上提供了 Dalvik VM,這是一個 Register-based 的 Virtual Machine。在 Dalvik VM 上並不直接執行 Java Bytecode,而是自有的 Dex 格式。Dalvik VM 的設計,除了一樣能得到類似 Java Bytecode 跨平台的相容性外,Register-based 的架構也使得 Virtual Machine 能更貼近於底層硬體平台,進而提高程式執行的效能。Android 的系統架構如下圖所示:

本計畫將以此公開原始碼之 Android 平台為基礎,進行 Linux 核心之研讀與移植、多核心嵌入式系統程式設計、發展平台之評估與開發、以及創新應用之探討。