Android 驅動開發應該如何入門和學習成長?
還不懂 Linux 內核,之前都在做 Android 應用開發,現在想往 Android 驅動開發方向發展,請問一個在這方面沒什麼基礎的,如何比較好地成長起來,好的學習路線是什麼?
先了解Linux內核,Linux驅動開發。來自CSDN pottichu的建議:
1. 熟悉linux C應用程序編程,熟悉常用的API等(這是基礎,很重要)
2. 學習LDD,LKD,這兩本書可以說是入門,也可以說是大綱,對驅動開發很有幫助。3. 如果還有餘力和時間,就看看ULK。
相似的,羅昇陽給的建議是:
- Linux Kernel Development.
這本書的作者是Robert Love,目前最新的版本是第3版。這本書對Linux內核的設計和實現提供了一個總覽視圖,從概念上對Linux內核的各個子系統的設計目標和實現思路進行了清晰的描述,非常適合初學者閱讀。如果從軟體工程的角度來看,這本書就相當於是Linux內核的概要設計文檔。
- Understanding the Linux Kernel.
這本書的作者是Daniel P. Bovet和Marco Cesati,目前最新的版本是第3版。這本書對Linux內核的實現提供了更多的細節,詳細地描述了內核開發中用到的重要數據結構、演算法以及編程技巧,非常適合中高級讀者閱讀。如果從軟體工程的角度來看,這本書就相當於是Linux內核的詳細設計文檔。
- Linux Device Drivers.
這本書的作者是Jonathan Corbet, Alessandro Rubini和Greg Kroah-Hartman,目前最新的版本是第3版。這本書更加註重實際操作,它詳細地講解了Linux內核驅動程序的實現原理和實現方法,讀者可以跟著它來實際地編寫出自己的Linux驅動程序。閱讀了這本書之後,對我們後續去分析Android的專用驅動程序是有非常大的幫助的。
- Linux內核源代碼情景分析
這本書的作者是毛德操和胡希明,是中國人自己編寫的一本經典的Linux內核書籍。這本書最大的特點是從使用情景出發,對Linux內核的源代碼作了詳細的分析,幫助讀者把枯燥無味的源代碼給理順了。
然後嘛,了解一下Android的HAL吧,羅昇陽那本《Android系統源代碼情景分析》好像還不錯,也可以看看他的系列博客文章。
照著文章里的實例,實現,寫代碼練習,找一份這樣的工作。推薦閱讀:
※Arduino LED點陣之鱷魚爬-0x01
※如何看待MIUI開始默認取消內存顯示?
※如果通過一根OTG線和一根普通MICRO USB數據線把兩台安卓手機連起來,會出現什麼現象?
※谷歌有沒有權利不允許華為的任何產品再使用他家的安卓系統?