Android深度探索-卷1讀後感程序員
————陳昊楠編程
第一章 安卓系統移植與驅動開發概述架構
這一章主要歸納的介紹了安卓驅動開發和系統移植的主要內容,對安卓與Linux驅動作了一個整體的介紹。經過對第一章的學習,使我對Linux驅動開發有了一個感性的認識。在學習過程當中,首先,我經過以往上課時學習到的知識和查閱資料瞭解了一些專業詞彙的含義(例如:.so文件:共享庫,是shared object,用於動態鏈接;SDK:軟件開發工具包;API:應用程序編程接口;HAL:硬件抽象層等),爲之後更好的學習安卓驅動開發打下了基礎。框架
其次在瞭解了一些專業基礎的前提下,經過對第一章的學習我瞭解到,目前,安卓系統已經造成了很是完善的架構,主要包括Linux內核、核心庫及環境(C/C++代碼庫和Runtime)、安卓軟件開發工具包(應用框架)和應用程序。工具
Android移植可分爲兩部分:分別是應用移植與系統移植。本書主要介紹的是系統移植,是指讓Android操做系統在某一個特定硬件平臺上運行。這麼作要求該操做系統支持硬件平臺的CPU架構,還要讓Android能夠識別平臺上的各類硬件。所以,系統移植除了移植CPU架構外,最重要的就是移植Linux驅動。除了Linux驅動移植外,安卓系統還獨有HAL硬件抽象層,它位於安卓系統與Linux系統之間,在安卓訪問Linux時起到做用。以此,安卓移植就分紅了Linux驅動移植和HAL移植。學習
咱們都知道Android是基於Linux內核的,由於一直以來Linux是開源的,因此基於Linux內核的Android也號稱開源,因此一經推出後就受到了廣大程序員和手機廠商的青睞。可是在開源方面Android「半遮半掩」,具體緣由得從Android的發展歷史談起。開發工具
好比全部爲Android寫的硬件驅動都不能合併到Kernel中。這些驅動程序只能在Google代碼中有效,而在Kernel中根本無法用。正是由於這個緣由,Google從不把大量的硬件驅動程序和平臺源碼提交給Kernel。 既然硬件廠商都不開源驅動代碼,對於咱們生存在Android底層的開發人員,特別是從事驅動開發的成員來講,就帶來了巨大的就業機會。咱們能夠爲硬件廠商開發不開源的驅動程序而得到報酬,爲此隨着Android的異常火爆,市面上有不少企業在招聘Android驅動開發人員。因而可知,驅動的不開源給咱們的學習帶來了難題,但一樣也爲之後的就業機會增長了砝碼。學習Linux須要作的事情有如下幾件:準備一個本身熟悉的Linux操做系統,用於開發和測試Linux驅動,建議使用Ubuntu Linux10.04及以上版本、準備一塊開發板(建議採用基於ARM11的開發板)、學習GNUC、學習相關的硬件知識、不斷地實踐。測試