標籤:
Android深度探索HAL與驅動開發的第一章學習了android系統移植與系統開發詳述。
正如書上的導言所說,,android已經成為當前智能手機作業系統的老大。所以其重要性可想而知,其學習的意義非比尋常。其發展的迅速,很大程度上取決於任何人都可以利用android的原始碼定製完全屬於自己的嵌入式系統,而不需要向Google交錢。而由於android原生的代碼支援的裝置不多,因此,要想在自己的裝置(包括手機、智能電視、平板等)上完美運行android,就需要另外一些開發程式,使得android可以表示相應裝置的硬體(顯示器、藍芽、音頻等)。這個為特定裝置定製android的過程被稱為“移植”。同時在移植的過程中開發的最多的就是支援各種硬體裝置的linux驅動程式。而第一張就是學習驅動的第一道門。
首先是android系統架構,包括四層架構,第一層是linux核心,它與其他linux系統的核心部分差異很小。這一層主要包括linux驅動程式以及記憶體管理、進程管理、電源管理等程式。第二層是C/C++程式碼程式庫,這一層主要包括使用C/C++編寫的程式碼程式庫,也包括dalivk虛擬機器運行時(Runtime)。第三層是Android SDK API,這一層是用java編寫的各種library。第四層是應用程式層,這一層是所有的android使用者都要接觸到的,因此這一層相當於android的ui,所有的android應用程式都屬於這一層,而這一層主要依靠第三次來完成各種功能。
Android移植的主要工作分為系統移植和應用移植。除了linux驅動需要移植外,android系統中還增加了一個硬體抽象層。移植的工作如果要移植的android系統提供了驅動原始碼,就很簡單,反之會比較麻煩。
Linux核心版本主要有三個可以通過兩種方法識別。版本號碼的組成由主要版本號,次版本號碼,修訂版本號碼,微調版本號碼,特別的描述組成。由於核心版本更新較快,要想學會linux驅動開發,不但需要掌握可靠的知識,還應該不斷的學習不斷的努力。
Linux裝置驅動分為字元裝置,塊裝置,網路裝置。
我的部落格園地址
http://www.cnblogs.com/liang0202/
android深度探索第一章