0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

定義安卓音頻架構(gòu)

星星科技指導(dǎo)員 ? 來源:embedded ? 作者:Rohan Nathi ? 2023-05-04 10:23 ? 次閱讀

Android操作系統(tǒng)已經(jīng)占領(lǐng)了當(dāng)今設(shè)備的很大一部分,包括智能手機,電視和Tab。根據(jù)Statista的數(shù)據(jù),谷歌創(chuàng)建的Android移動操作系統(tǒng)(OS)是目前使用最廣泛的智能手機操作系統(tǒng),以接近71.8%的市場份額主導(dǎo)移動操作系統(tǒng)市場。

Android 在所有硬件平臺上被廣泛采用,因為它是一個開源軟件代碼和一個定義明確的框架結(jié)構(gòu)。Linux內(nèi)核是Android操作系統(tǒng)的核心,因為它提供了硬件和各種Android組件之間的抽象。音頻處理需要大量復(fù)雜的操作和密集的算法來產(chǎn)生高保真音頻輸出。Android 音頻架構(gòu)涉及許多復(fù)雜的軟件,必須處理許多方面,例如支持揚聲器、聽筒、耳機、HDMI、麥克風(fēng)、藍(lán)牙 SCO、A2DP 等音頻硬件,以及不同的軟件應(yīng)用程序,如電話、媒體播放器錄音機、VIOP 應(yīng)用程序和 SIP 應(yīng)用程序。本文重點介紹 Android 音頻架構(gòu)中不同組件的高級功能。

安卓音頻架構(gòu)概述

Android 音頻架構(gòu)概述了音頻功能的實現(xiàn)方式,并提供了指向相關(guān)源代碼的鏈接。

poYBAGRTFwuAZm7QAAI0YWClXlc315.png

安卓音頻架構(gòu)

安卓音頻APP和JAVA框架

Android 框架由一組定義明確的 Java API 組成,使開發(fā)人員能夠輕松編寫 Android 應(yīng)用程序。Android 音頻應(yīng)用代碼使用這組不同的多媒體 (android.media) 框架 API。在內(nèi)部,這些 API 調(diào)用相應(yīng)的 Java 本機接口 (JNI) 粘附軟件代碼來訪問本機組件,這些組件進(jìn)一步與較低層交互以在硬件上播放音頻。

粘結(jié) 劑

進(jìn)程間通信 (IPC) 是所有不同 Android 組件交換信息的重要機制。Android 進(jìn)程使用名為“Binder”的特定于 Android 的 IPC 來調(diào)用另一個 Android 進(jìn)程中的例程,并通過參數(shù)交換數(shù)據(jù)。上層使用 Binder API 與本機音頻服務(wù)和下層硬件層進(jìn)行通信。

音頻管理器

音頻管理器是原生的Android服務(wù),是整個音頻子系統(tǒng)的核心組件。從Android 7 Nougat版本開始,它不是原生媒體服務(wù)的一部分,而是在用戶空間中作為單獨的Android進(jìn)程運行。它為不同的服務(wù)運行三個線程,即音頻策略、音頻投點和音頻以執(zhí)行其功能。

音頻策略服務(wù)

策略決策主要包括打開新的輸入/輸出音頻流,并在通過 UI 和流音量管理更改或選擇后將音頻重新路由到不同的音頻設(shè)備。音頻策略服務(wù)處理執(zhí)行這些策略決策所需的所有操作。此服務(wù)還跟蹤用戶事件和當(dāng)前系統(tǒng)狀態(tài),以通知音頻投點服務(wù)。

音頻投擲器服務(wù)

音頻傳票服務(wù)調(diào)用音頻硬件抽象層 (HAL) API 以與音頻硬件交互。它為上層提供了一個可訪問的界面。音頻策略服務(wù)定義的策略決策和策略由此服務(wù)執(zhí)行。它還負(fù)責(zé)與音頻設(shè)備通信并維護(hù)其狀態(tài)。它處理多個音頻流(通知和音樂)的混合、音量縮放、音頻流寫入,并為媒體播放器提供寫入音頻幀等信息。

音頻服務(wù)

Audio 是 Android 8 Oreo 版本中引入的新 Android C API。它專為需要低延遲的高性能音頻應(yīng)用而設(shè)計。Android 音頻應(yīng)用調(diào)用音頻 API 來讀取和寫入音頻流中的數(shù)據(jù)。音頻服務(wù)處理這些低延遲音頻 API。音頻 API 中有兩種模式,即“獨占模式”,它允許客戶端應(yīng)用程序代碼直接寫入與 ALSA 驅(qū)動程序共享的內(nèi)存映射緩沖區(qū),以及“共享模式”,它混合所有共享流并遵循音頻 HAL 路徑。

音頻 HAL

硬件抽象層 (HAL) 是 Android 堆棧中的一個層,它為上層運行的本機音頻服務(wù)提供標(biāo)準(zhǔn)訪問接口。音頻 HAL 將上層橋接到較低級別的音頻驅(qū)動程序?qū)崿F(xiàn)。供應(yīng)商必須使用特定的音頻驅(qū)動程序代碼實現(xiàn)音頻 HAL 接口。音頻 HAL 作為單獨的 Android 進(jìn)程在用戶空間中運行,以執(zhí)行上層所需的功能。

下面列出了音頻 HAL 提供的主要功能。

管理音頻輸入/輸出流的打開和關(guān)閉,包括設(shè)置音頻通道、采樣率和音頻格式等流參數(shù)。它還必須處理媒體播放器的不同狀態(tài),包括播放、暫停、恢復(fù)和待機,并為硬件上寫入的音頻幀和時間戳提供反饋路徑數(shù)據(jù)。

加載需要特殊音頻處理和解碼的特定庫集,從而將原始數(shù)據(jù)發(fā)送到音頻硬件。

音頻設(shè)備接口

Android 音頻架構(gòu)支持不同類型的音頻設(shè)備,包括藍(lán)牙設(shè)備、電視調(diào)諧器系統(tǒng)、HMDI 連接和 I2S 揚聲器。音頻 HAL 負(fù)責(zé)將音頻數(shù)據(jù)包從上層發(fā)送到這些設(shè)備。選擇特定音頻設(shè)備或?qū)⑵洳迦?Android 硬件后,音頻策略管理器將執(zhí)行一組定義并與音頻設(shè)備關(guān)聯(lián)的策略,并且所有層都配置為支持音頻數(shù)據(jù)流經(jīng)它。Audio HAL 特別加載與音頻設(shè)備交互的接口代碼并對其執(zhí)行讀寫操作,此接口代碼還為連接到其他 HAL 的音頻設(shè)備執(zhí)行 HAL 間 IPC,例如,需要藍(lán)牙 HAL 交換數(shù)據(jù)的藍(lán)牙音頻設(shè)備。

內(nèi)核驅(qū)動程序

音頻 HAL 實現(xiàn)具有與音頻驅(qū)動程序交互的代碼。Android 內(nèi)核使用高級 Linux Sound Architecture (ALSA) 子系統(tǒng),或者供應(yīng)商可以引入與 HAL 無關(guān)的自定義驅(qū)動程序。Tiny ALSA是一個小型庫,用于與Linux內(nèi)核中的ALSA接口,音頻HAL使用它與不同的聲卡進(jìn)行交互。

Android堆棧是需要為不同的硬件平臺構(gòu)建的巨大軟件代碼。理解和修改較低的Android層非常困難,因為它需要大量的調(diào)試技能。硬件級實現(xiàn)因每個供應(yīng)商而異,需要與為上層定義的接口準(zhǔn)確映射。代碼庫中許多未記錄的部分更加復(fù)雜且特定于供應(yīng)商,并且它使用復(fù)雜的IPC機制,并在編程語言之間切換。

Softnautics使多媒體公司能夠設(shè)計和開發(fā)連接的多媒體解決方案。我們幫助客戶進(jìn)行Android底層所需的不同自定義和集成,其中主要包括用戶和內(nèi)核空間中的本機代碼。我們還協(xié)助客戶添加基于音頻的無線設(shè)備并將其集成到Android音頻子系統(tǒng)中。我們在了解 Android 架構(gòu)中的不同層以進(jìn)行定制和圍繞它的新設(shè)計方面擁有專業(yè)知識。我們在設(shè)計高性能媒體應(yīng)用程序、構(gòu)建完整的視頻管道、音頻/視頻編解碼器開發(fā)、應(yīng)用程序移植等方面擁有實踐經(jīng)驗。

審核編輯?:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 智能手機
    +關(guān)注

    關(guān)注

    66

    文章

    18419

    瀏覽量

    179729
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3917

    瀏覽量

    127061
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6696

    瀏覽量

    123147
收藏 人收藏

    評論

    相關(guān)推薦

    基于Freescale MCU與Audio Codec的音頻附件設(shè)計

    音頻附件是Android Open Accessory (AOA) protocol 2.0中新增的功能,它通過標(biāo)準(zhǔn)USB Audio Class Interface將來自
    發(fā)表于 11-19 11:51 ?6222次閱讀
    基于Freescale MCU與Audio Codec的<b class='flag-5'>安</b><b class='flag-5'>卓</b><b class='flag-5'>音頻</b>附件設(shè)計

    車載系統(tǒng)的設(shè)計方案和注意事項

    基于系統(tǒng)的消費電子設(shè)備用戶希望可以在開車或乘車時使用他們的應(yīng)用程序和設(shè)備功能。##整合智能設(shè)備##與
    發(fā)表于 05-19 09:59 ?4954次閱讀

    Android端自定義鈴聲 MobPush對端自定義鈴聲的教程

    如何為APP推送設(shè)置獨特的通知鈴聲呢?本次帶來的是MobPush對端自定義鈴聲的教程,快來看看吧~
    的頭像 發(fā)表于 10-21 15:34 ?1113次閱讀
    Android端自<b class='flag-5'>定義</b>鈴聲 MobPush對<b class='flag-5'>安</b><b class='flag-5'>卓</b>端自<b class='flag-5'>定義</b>鈴聲的教程

    【原創(chuàng)】Dex分包架構(gòu)設(shè)計—實現(xiàn)熱修復(fù)

    【原創(chuàng)】Dex分包架構(gòu)設(shè)計—實現(xiàn)熱修復(fù)回復(fù)即可獲取下載鏈接[hide=d15]鏈接:http://pan.baidu.com/s/1c2fYJZy 密碼:iw16 學(xué)習(xí)群:150923287 [/hide]
    發(fā)表于 07-26 17:50

    基于的視頻遙控小車——紅外詳解

    ,感覺這東西涉及到傅里葉變換,音頻是正弦波,紅外信號是方波,直接用音頻驅(qū)動是有誤差的吧,我也不是很懂,數(shù)學(xué)不好。網(wǎng)上我搜到這篇是【用實現(xiàn)的
    發(fā)表于 06-29 00:22

    如何看待鴻蒙系統(tǒng)兼容系統(tǒng)?

    網(wǎng)絡(luò)看到很多人討論鴻蒙和,有人說鴻蒙就是換皮版的,有人說鴻蒙兼容,有
    發(fā)表于 10-10 11:06

    鴻蒙 vs 六大維度對比

    以是其他(PPT里這么寫的)。微內(nèi)核顯然在架構(gòu)上會更有優(yōu)勢,可以在速度、續(xù)航上領(lǐng)先。性能系統(tǒng)也有很多的弊端,基于開源代碼的設(shè)計,系統(tǒng)運行產(chǎn)生的垃圾文件會越來越多,時間一長,手機的性能就會明顯下降
    發(fā)表于 12-07 14:13

    支持RISC-V架構(gòu)的技術(shù)剖析

    本帖最后由 jf_11671167 于 2021-10-9 10:29 編輯 關(guān)鍵詞:、玄鐵C910、虛擬機、RISC-V架構(gòu),RISC-V操作系統(tǒng),IoT芯片,嵌入式操作系統(tǒng),AOSP
    發(fā)表于 09-01 15:45

    系統(tǒng)DIY教程

    系統(tǒng)DIY教程,私人訂制系統(tǒng)功能,介紹如何增加,刪除系統(tǒng)功能。
    發(fā)表于 05-06 16:54 ?18次下載

    系統(tǒng)存在漏洞,可無需獲得用戶許可就能捕獲視頻和音頻

    手機有遭殃了,安全公司Checkmarx發(fā)現(xiàn),系統(tǒng)存在一個漏洞,讓惡意應(yīng)用無需用戶許可就能錄制視頻、拍攝照片和捕獲音頻,并將內(nèi)容上傳
    的頭像 發(fā)表于 11-20 16:09 ?2685次閱讀

    鴻蒙系統(tǒng)是基于

    有網(wǎng)友詢問鴻蒙系統(tǒng)是基于嗎?答案:鴻蒙系統(tǒng)并不是基于! 與鴻蒙手機操作系統(tǒng)都是基于L
    的頭像 發(fā)表于 06-18 16:17 ?3.1w次閱讀

    鴻蒙是基于嗎 鴻蒙與區(qū)別

    很多人很好奇鴻蒙系統(tǒng)和卓有什么關(guān)系?鴻蒙系統(tǒng)是基于系統(tǒng)研發(fā)而成的?鴻蒙系統(tǒng)與系統(tǒng)有什么區(qū)別?下面將為大家詳細(xì)介紹鴻蒙系統(tǒng)與
    的頭像 發(fā)表于 07-10 09:36 ?4.6w次閱讀

    I BUS適配器BMW音頻

    電子發(fā)燒友網(wǎng)站提供《I BUS適配器BMW音頻.zip》資料免費下載
    發(fā)表于 08-05 10:01 ?0次下載
    I BUS適配器BMW<b class='flag-5'>安</b><b class='flag-5'>卓</b><b class='flag-5'>音頻</b>

    主板_MTK6765開發(fā)板-聯(lián)發(fā)科主板方案介紹

    主板_MTK6765開發(fā)板-搭載聯(lián)發(fā)科(MediaTek)MTK6765處理器,這款高性能ARM處理器被廣泛應(yīng)用于個人移動互聯(lián)網(wǎng)設(shè)備和其他應(yīng)用程序。MT6765采用了八核Cor
    的頭像 發(fā)表于 10-11 19:27 ?1467次閱讀
    <b class='flag-5'>安</b><b class='flag-5'>卓</b>主板_MTK6765<b class='flag-5'>安</b><b class='flag-5'>卓</b>開發(fā)板-聯(lián)發(fā)科<b class='flag-5'>安</b><b class='flag-5'>卓</b>主板方案介紹

    谷歌15將提升對助聽器支持,改善音頻體驗

    5 月 30 日,谷歌正式公布了 15 更新計劃,將大幅度提升系統(tǒng)對助聽器的支持程度,使其可與具備藍(lán)牙 LE 音頻技術(shù)的助聽器無縫對
    的頭像 發(fā)表于 05-30 15:11 ?965次閱讀