1. 程式人生 > >Android java層音訊相關的分析與理解(一)基本框架

Android java層音訊相關的分析與理解(一)基本框架

最近在整理之前在公司寫的一些文件,於是決定將部分適用比較廣的文件整理在部落格中,供大家參考。第一個系列是AudioService相關的。這個可以算是《深入理解Android 卷Ⅲ》的一個讀書筆記吧。整體的思路基本上與《深入理解Android 卷Ⅲ》的Audio部分差不多。只是由於Android版本不一樣導致部分程式碼等等不一樣。《深入理解Android》的書其實值得一讀。好了,廢話不多說,進入主題。

首先我們來看看上層音訊的框架


在Android中, AudioService是Android上層音訊的核心。AudioService在SystemServer中啟動,為所有音訊相關設定提供服務。AudioManager和AudioService是通過Binder機制進行通訊的。AudioManager擁有AudioService的Bp端,是AudioService在客戶的一個代理。幾乎所有的對AudioManager進行的請求,最終都會交給AudioService去處理。而AudioService的實現主要依賴於AudioSystem。AudioSystem是java層到native層的代理。無法例項化。下面我們通過關注不同的內容去具體地剖析上層的音訊相關內容。