[發(fā)明專利]一種基于Linux與Android兼容技術(shù)的虛擬音頻裝置與方法有效
| 申請?zhí)枺?/td> | 202010998743.8 | 申請日: | 2020-09-21 |
| 公開(公告)號: | CN111930340B | 公開(公告)日: | 2021-06-01 |
| 發(fā)明(設(shè)計)人: | 姚宏亮;周劍;張耀斌 | 申請(專利權(quán))人: | 北京技德系統(tǒng)技術(shù)有限公司 |
| 主分類號: | G06F3/16 | 分類號: | G06F3/16;G06F9/455;G06F13/38 |
| 代理公司: | 北京豐浩知識產(chǎn)權(quán)代理事務(wù)所(普通合伙) 11781 | 代理人: | 李學(xué)康 |
| 地址: | 100085 北京市海*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 linux android 兼容 技術(shù) 虛擬 音頻 裝置 方法 | ||
本發(fā)明實施例公開了一種基于Linux與Android兼容技術(shù)的虛擬音頻裝置與方法,屬于計算機(jī)基礎(chǔ)軟件領(lǐng)域。所述方法包括:在容器Android側(cè)實現(xiàn)一虛擬音頻設(shè)備單元,Android應(yīng)用通過調(diào)用虛擬音頻設(shè)備單元提供的接口來完成音頻的輸入、播放和錄音;在容器Linux側(cè)實現(xiàn)一虛擬音頻接口單元,通過調(diào)用Linux音頻設(shè)備驅(qū)動控制硬件音頻設(shè)備;在容器Linux側(cè)實現(xiàn)一音頻會話控制單元,通過建立Socket監(jiān)聽線程穿透容器,實現(xiàn)容器兩側(cè)數(shù)據(jù)的雙向傳輸;本發(fā)明解決了以容器技術(shù)兼容運行在Linux系統(tǒng)中的Android應(yīng)用調(diào)用Linux的物理音頻設(shè)備的問題,實現(xiàn)聲音播放、讀取、錄音等相關(guān)的功能。
技術(shù)領(lǐng)域
本發(fā)明屬于計算機(jī)基礎(chǔ)軟件領(lǐng)域,特別是涉及一種基于Linux與Android兼容技術(shù)的虛擬音頻裝置與方法。
背景技術(shù)
隨著Windows7的服務(wù)終止,Linux系統(tǒng)得到更好的普及,對于兼容運行在Linux系統(tǒng)之上的Android運行環(huán)境來說,真實的物理音頻設(shè)備都是在Linux內(nèi)核中管控的,因此需要解決Android應(yīng)用對物理音頻設(shè)備的使用問題。
對于音頻設(shè)備的訪問,Linux操作系統(tǒng)和Android操作系統(tǒng)分別有自己的訪問方式,下面就這兩種系統(tǒng)的音頻設(shè)備訪問做簡單描述。
一:Linux操作系統(tǒng)中對于音頻設(shè)備的調(diào)用流程
從圖4可以看出在Linux操作系統(tǒng)中,Linux的應(yīng)用程序無法直接對聲卡這類硬件設(shè)備進(jìn)行操作,而是必須通過Linux內(nèi)核提供的驅(qū)動程序才能完成。目前Linux下常用的聲卡驅(qū)動程序主要有兩種:OSS和ALSA。其中ALSA(Advanced Linux Sound Architecture)是在Linux下進(jìn)行音頻編程時標(biāo)準(zhǔn)開源驅(qū)動庫。Linux的應(yīng)用程序通過ALSA的通用接口實現(xiàn)對音頻設(shè)備的硬件訪問,通過硬件訪問接口可以直接調(diào)用Linux內(nèi)核中的音頻設(shè)備驅(qū)動,從而實現(xiàn)對音頻硬件設(shè)備的訪問。
二:Android操作系統(tǒng)中對于音頻設(shè)備的調(diào)用流程
在傳統(tǒng)的Android系統(tǒng)中,音頻相關(guān)的設(shè)備都是在HAL層中進(jìn)行管理的,如有線耳機(jī)、HDMI、USB聲卡等設(shè)備,其中一部分廠家私有部分音頻設(shè)備的驅(qū)動在Android系統(tǒng)的HAL層中實現(xiàn),另外一部分驅(qū)動則在Linux內(nèi)核中實現(xiàn)。
當(dāng)Android作為Linux內(nèi)核之上的一個獨立的操作系統(tǒng)存在時,Android系統(tǒng)的硬件抽象層HAL可以通過TiniAlsa系統(tǒng)調(diào)用Linux內(nèi)核中的音頻設(shè)備驅(qū)動,以實現(xiàn)相關(guān)的音頻輸入輸出功能。
從圖5可以看出在Android操作系統(tǒng)中,Android的應(yīng)用程序需要通過硬件抽象層HAL進(jìn)行對音頻設(shè)備的調(diào)用。這是因為Linux內(nèi)核需要遵循GPL開源協(xié)議,同時一個設(shè)備的驅(qū)動程序包含了硬件的一些重要參數(shù),因此有些硬件廠商為了保護(hù)自己硬件方面的各項參數(shù)不被外泄,所以驅(qū)動的開源勢必會使硬件廠商蒙受損失,Google為了保護(hù)硬件廠商的利益,所以在Android系統(tǒng)中加入了硬件抽象層HAL,在硬件抽象層HAL中不必遵循GPL協(xié)議,所以代碼可以封閉。
因此當(dāng)Android應(yīng)用需要調(diào)用一個音頻設(shè)備時,需要先通過HAL層對于私有的設(shè)備驅(qū)動mydevice進(jìn)行訪問,然后再通過系統(tǒng)調(diào)用訪問Linux內(nèi)核(Linux Kernel)中的相關(guān)音頻驅(qū)動程序,這樣才能完成對音頻硬件的I/O訪問。
從上面兩種對音頻設(shè)備的訪問方式可以看出,Android的音頻設(shè)備訪問流程是在Linux音頻設(shè)備訪問的實現(xiàn)方式上進(jìn)行了一種擴(kuò)展,原理是都是應(yīng)用通過接口訪問實際的音頻硬件驅(qū)動,從而實現(xiàn)對硬件設(shè)備的訪問和控制。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京技德系統(tǒng)技術(shù)有限公司,未經(jīng)北京技德系統(tǒng)技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010998743.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:檢測設(shè)備
- 下一篇:一種頭戴顯示設(shè)備
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F3-00 用于將所要處理的數(shù)據(jù)轉(zhuǎn)變成為計算機(jī)能夠處理的形式的輸入裝置;用于將數(shù)據(jù)從處理機(jī)傳送到輸出設(shè)備的輸出裝置,例如,接口裝置
G06F3-01 .用于用戶和計算機(jī)之間交互的輸入裝置或輸入和輸出組合裝置
G06F3-05 .在規(guī)定的時間間隔上,利用模擬量取樣的數(shù)字輸入
G06F3-06 .來自記錄載體的數(shù)字輸入,或者到記錄載體上去的數(shù)字輸出
G06F3-09 .到打字機(jī)上去的數(shù)字輸出
G06F3-12 .到打印裝置上去的數(shù)字輸出
- 一種Android設(shè)備之間遠(yuǎn)程桌面控制的方法
- 一種Android程序的執(zhí)行路徑的還原方法
- 基于ANCS協(xié)議兼容多平臺的通知消息獲取方法
- 基于字節(jié)碼插樁的Android程序監(jiān)控系統(tǒng)及方法
- 一種減少Android設(shè)備功耗的優(yōu)化方法及裝置
- 一種縮短無屏Android設(shè)備開機(jī)啟動時間的設(shè)置方法
- 一種基于Android雙系統(tǒng)的系統(tǒng)間通知同步方法
- 基于移動操作系統(tǒng)的Android兼容層實現(xiàn)方法和系統(tǒng)
- 一種Android智能設(shè)備APK安全管控方法
- 一種應(yīng)用程序開發(fā)中創(chuàng)建Android庫模塊依賴關(guān)系的方法及裝置





