上週三 (1/11) 舉辦的「Ice Cream Sandwich (Android 4.0) 移植與框架」課程,參與情況相當踴躍,覺得非常的感動。所以當然也要使出渾身解數,回報大家的支持。這次的課程有一個比較特別的地方,就是在一些移植工作上,筆者特別將 Android 4.0 的移植工作與 Android 2.3 做比較。
由於 Android 4.0 移植,可以基於 Android 2.3 甚致 Android 3.0 來進行,所以並不需要「從零開始」。基於過去的 Android 移植經驗,可以完成大約 80% 左右的 Android 4.0 移植工作。從學習的角度來看,因為 2.3 與 4.0 的移植技術很許多相同的地方,例如:Product tree 的製作完全相同,因此實際了解 2.3 與 4.0 的「差異」是比較有效率的作法。
另外,同樣是從學習的角度來看。如果是 Android 移植的入門新手,一開始不太需要區分版本,由 Android 2.3 移植開始,也是一個很好的入門點,這會讓學習更單純,例如:不需要考慮 InputReader 的修改;這個專門針對 Android 4.0 的移植工作,未來再補上即可。
Android 4.0 的 20%
Android 移植工作,可以區分為二個部份:
• Bring-up
• 周邊移植
Bring-up 指的是「想辦法做到可以開機」,這是移植的第一個重要 Milestone。在開機完成後,再接著處理周邊,例如:Wi-Fi、感測器等。
這次的課程,總共有三位講師。筆者主要負責「Bring-up」的部份,也就是整理如何將 Android 4.0 做到可以開機,課程內容的規劃,鎖定在這「20%」的不同。「可開機」的定義是可以看到 Android 的桌面環境。課堂上,筆者提到了幾個「可開機」的關鍵:
• Kernel configs
• Software rendering
• InputReader (Android) 與 Input device driver (kernel)
接下來的課程紀錄,將會針對每一個關鍵做一個整理。雖然面對不同硬體,Android 4.0 移植工作仍會有些小差異,不過只要處理好這三大關鍵,幾乎都可以成功開機。
Jollen's Blog 使用 Github issues 與讀者交流討論。請點擊上方的文章專屬 issue,或 open a new issue
您可透過電子郵件 jollen@jollen.org,或是 Linkedin 與我連絡。更歡迎使用微信,請搜尋 WeChat ID:jollentw