Android Telephony & RIL: 通訊系統架構與實作,課後小記
Android Telephony 以及 RIL 是一個重要的議題,內容主要在談論 Android 的電話系統框架,以及 RIL (Radio Interface Layer) 的實作。由於 Android 提供的 RIL 幾乎沒有實作 Modem 端的功能,也缺乏像是 Data Multiplexer 的實作,因此,研究 Telephony 以及實作 RIL 成為了 Android 手機開發的關鍵技術。
在經過一段相當長時間的規劃與調整後,終於在日前成功開設「Android Telephony & RIL: 通訊系統架構與實作」課程,本程也在9月12日順利結訓。這是截至目前為止,在參與過的課程規劃案中,技術複雜度較高的題目。
課程內容除了採集過去開發 Android 手機的經驗外,也將 Telephony & RIL 做了很完整的研究,目標是以深入淺出方式,介紹這個有意思的主題。希望這門課程,能協助學員開發 Android 手機的通訊功能。
圖:GPRS 上網 (Data Multiplexer) 實作討論
總計4天的課程裡,對 Telephony Service、PhoneProxy、PhoneInterfaceManager、RIL、Phone Service 等重要的通訊系統設計做了全面的解說,並以產品開發的實務經驗進行實作討論,將複雜又龐大的 Android Telephony 框架以及 RIL (Radio Interface Layer) 架構,做了整體的分析。
實作討論部份,針對實務面常見的實作議題做了許多討論,例如:
1. 實作 Android 未完成的 USSD (簡碼服務) 功能
2. 加入 SetMute 音量開關功能至 Android 通訊系統
3. Mux 實作 (資料多工) 討論、GPRS 上網、PDP
4. Timed callbacked 以及 synchronous AT I/O stream 討論等
此外,課程也將通訊系統使用到的架構設計觀念做了很清楚的說明;課程也將 Android 通訊系統使用到的 Design Pattern 做了整理,例如:Abstract Factory Pattern、Factoy Method Pattern、Proxy Method Pattern 以及 Singleton Pattern 等,都放入課程裡做說明。期望能告訴學員,Android 的開發最好以「設計再實作」的角度出發。