<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Android系統(tǒng)的移植要做的兩個工作

          Android系統(tǒng)的移植要做的兩個工作

          作者: 時(shí)間:2011-04-24 來源:網(wǎng)絡(luò) 收藏

          的主要目的是為了能在特定的硬件上運(yùn)行。而在的過程中,一個重要的方面就是把握關(guān)鍵要點(diǎn),減少量。從的角度,首先要熟悉硬件抽象層的接口,其次要集成和復(fù)用已有的驅(qū)動程序,主要的量在硬件抽象層的實(shí)現(xiàn)中。為了更好地理解和調(diào)試,也應(yīng)該適當(dāng)?shù)亓私馍蠈訉τ布橄髮拥恼{(diào)用情況。

          本文引用地址:http://www.ex-cimer.com/article/150826.htm

            方面主要的工作有部分:

            Linux驅(qū)動

            系統(tǒng)硬件抽象層

            Linux中的驅(qū)動工作在內(nèi)核空間,Android系統(tǒng)硬件抽象層工作在用戶空間,有了這部分的結(jié)合,就可以讓龐大的Android系統(tǒng)運(yùn)行在特定的硬件平臺上。

            Android移植的主要工作如圖1所示。

            

            圖1 Android移植的主要工作

            在具有了特定的硬件系統(tǒng)之后,通常在Linux中需要實(shí)現(xiàn)其驅(qū)動程序,這些驅(qū)動程序通常是Linux的標(biāo)準(zhǔn)驅(qū)動程序,在Android平臺和其他Linux平臺基本上是相同的。主要的實(shí)現(xiàn)方面是Android系統(tǒng)中的硬件抽象層(HardwareAbstract Layer),硬件抽象層對下調(diào)用Linux中的驅(qū)動程序,對上提供接口,以供Android系統(tǒng)的其他部分(通常為Android本地框架層)調(diào)用。

            提示:Android硬件抽象層的接口是本地移植層的接口,不屬于標(biāo)準(zhǔn)API,不具有向前或者向后兼容性。

            在Android系統(tǒng)需要移植的內(nèi)容,主要包含了以下的各個部分:

            顯示部分(Display)

            包括framebuffer驅(qū)動+Gralloc模塊(可選擇是否實(shí)現(xiàn))

            用戶輸入部分(Input)

            包括Event驅(qū)動+EventHub(Android標(biāo)準(zhǔn)內(nèi)容)

            多媒體編解碼(Codec)

            包括硬件Codec驅(qū)動+Codec插件(如OpenMax)

            3D加速器部分(3D Accelerator)

            包括硬件OpenGL驅(qū)動+OpenGL插件

            音頻部分(Audio)

            包括Audio驅(qū)動+Audio硬件抽象層

            視頻輸出部分(Video Out)

            包括視頻顯示驅(qū)動+Overlay硬件抽象層

            攝像頭部分(Camera)

            包括Camera驅(qū)動(通常是v4l2)+Camera硬件抽象層

            電話部分(Phone)

            Modem驅(qū)動程序+RIL庫


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();