Android平台移植應該做兩步工作

2021-09-12 05:19:48 字數 1976 閱讀 5587

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 要有經濟規劃!賺錢 存...