原文 :http://blog.csdn.net/yinlijun2004/article/details/6664191
老大以前說過一句話,看雜誌不如看書,看書不如看源代碼; 我覺得很有道理。同樣,看博客不如寫博客,在看過一段時間ril的代碼之後,我儘量不去看別人對ril的總結,按照自己的思路和想法,自己先總結一遍,肯定要深刻的多。
RIL:radio interface layer
翻譯過來叫:無線接口層
我最喜歡研究問題的前世今生,不然總覺得有一種漂浮在空中的感覺。
一、爲什麼有RIL的存在
ril的代碼在android2.2源碼中的位置是dev/hardware/ril,可以把他看成是硬件層的抽象,這裏的硬件當然是各式各樣的模塊,比如wcdma, gsm, evdo等等。這樣ril上層即telephony就無需關心當前是何種模塊,比如我要撥出一個電話,我只要下發一個請求號爲RIL_REQUEST_DIAL的請求即可,無需關心發送什麼AT命令,這是軟件思想中隔離變化的體現。
telephony 與ril層通過unix domain socket通信。
二、RIL層內又包含那些模塊
1、rild,這是就是RIL層的唯一進程,rild:ril deamon,rild是一個守護進程,在後臺運行,脫離了控制終端和進程組,在系統啓動時由啓動腳本啓動。
2、at channel
2、libxxx-ril,這是一個動態庫,在裏面