it168
android系統的移植工作的目的是為了在特定的硬體上執行android系統。在移植的過程中,把握關鍵要點,減少工作量是乙個重要的方面。從工作的角度,通常的方法為,首先要熟悉硬體抽象層的介面,其次要整合和復用已有的驅動程式,主要的工作量在硬體抽象層的實現中。為了更好地理解和除錯系統,也應該適當地了解上層對硬體抽象層的呼叫情況。
移植方面主要的工作有兩個部分:
linux驅動
android系統硬體抽象層
linux中的驅動工作在核心空間,android系統硬體抽象層工作在使用者空間,有了這兩個部分的結合,就可以讓龐大的android系統執行在特定的硬體平台上。
android移植的主要工作如圖1-4所示。
圖1 android移植的主要工作
在具有了特定的硬體系統之後,通常在linux中需要實現其驅動程式,這些驅動程式通常是linux的標準驅動程式,在android平台和其他linux平台基本上是相同的。主要的實現方面是android系統中的硬體抽象層(hardware abstract layer),硬體抽象層對下呼叫linux中的驅動程式,對上提供介面,以供android系統的其他部分(通常為android本地框架層)呼叫。
在android系統需要移植的內容,主要包含了以下的各個部分:
顯示部分(display)
包括framebuffer驅動+gralloc模組(可選擇是否實現)
使用者輸入部分(input)
包括event驅動+eventhub(android標準內容)
多**編譯碼(codec)
包括硬體codec驅動+codec外掛程式(如openmax)
3d加速器部分(3d accelerator)
包括硬體opengl驅動+opengl外掛程式
音訊部分(audio)
包括audio驅動+audio硬體抽象層
攝像頭部分(camera)
包括camera驅動(通常是v4l2)+camera硬體抽象層
**部分(phone)
modem驅動程式+ril庫
全球定位系統部分(gps)
包括gps驅動(通常為串列埠)+gps硬體抽象層
無線區域網部分(wifi)
包括wlan驅動和協議+wifi的適配層(android標準內容)
藍芽部分(blue tooth)
包括bt驅動和協議+bt的適配層(android標準內容)
感測器部分(sensor)
包括sensor驅動+sensor硬體抽象層
震動器部分(vibrator)
包括vibrator驅動+vibrator硬體抽象層(android標準內容)
背光部分(light)
包括light驅動+ light硬體抽象層
警告器部分(alarm)
包括alarm驅動和rtc系統+使用者空間呼叫(android標準內容)
電池部分(battery)
包括電池部分驅動+電池的硬體抽象層(android標準內容)
android中具有很多元件,但並不是每乙個部件都需要移植,對於一些純軟的元件,就沒有移植的必要。對於一些部件,例如瀏覽器引擎,雖然需要下層網路的支援,但是並非直接為其移植網路介面,而是通過無線區域網或者**系統資料連線來完成標準的網路介面。
除了以上的移植方面,電源管理也是非常重要的乙個方面,它和android的各個子系統都有關係。
android系統主要需要移植部件如圖1-5所示。
圖1-5 android系統主要需要移植部件
時至今日,隨著android系統的發展,它已經不僅僅是乙個移動裝置的平台,也可以用於消費類電子和智慧型家電,例如:上網本、電子書、數碼電視、機頂盒、固定**等。在這些平台上,通常需要實現比移動裝置更少的部件。一般來說,基本使用者介面部分(包括顯示和使用者輸入)是需要移植的,其他部分是可選的。例如:**系統、振動器、背光、感測器等一般不需要在非移動裝置系統來實現;對於一些固定位置裝置通常也不需要實現gps系統。
Android 元件化應該做什麼
android 任何乙個元件化方案都要對專案進行一定程度的整改,下面會對所有需要整改的地方進行說明,以及會說到如何整改 資源檔案在準備元件化的過程中就得做,不會影響正常的開發,一旦後續需要徹底剝離的時候,就直接把對應的檔案拖到指定的模組就可以了 乙個專案中肯定有一些是每乙個地方都可能用到的資源,所以...
gloox移植到android平台
最近需要在android平台是使用gloox,官方gloox沒有沒有對應的android.mk檔案,那當然也可以用android ndk來編譯,但是我覺得用ndk編譯有點麻煩,就寫乙個android.mk來使用mm編譯。首先,進入src目錄,configure該專案 configure host a...
工作兩年應該做些什麼
1 要有乙個比較明確3 5年的職業規劃,並且知道為了達到這個目標應該如何去提公升自我!2 要有時間管理的概念,做好計畫!提高做事的效率!3 要不斷提公升自我的能力,包括專業能力和軟素質能力!4 要有責任心,擔起對於父母和愛人的責任!5 要有社交意識,結交朋友,維持朋友關係!6 要有經濟規劃!賺錢 存...