本書是一本 Android系統(tǒng)多媒體工程師的實戰(zhàn)手冊,基于 Android 12版本源碼講解,從結(jié)構(gòu)上將Android系統(tǒng)多媒體分為5章進行介紹,包括第1章 Android系統(tǒng)環(huán)境篇、第2章音頻篇、第3章相機篇、第4章編解碼篇、第5章圖形篇。
本書旨在幫助讀者系統(tǒng)、深入、快速學(xué)習(xí) Android系統(tǒng)多媒體模塊,并且將其用于工作實戰(zhàn)、興趣研究等。本書將每個多媒體模塊多余的層層封裝全部剝離,去掉 Runtime和Java層的干擾,以 C 實戰(zhàn)示例展示每個多媒體模塊最重要、最本質(zhì)的內(nèi)容,幫助讀者以最短的時間在模塊之間橫向遷躍學(xué)習(xí),以應(yīng)對時代快速變化產(chǎn)生的新需求。
本書適用于 Android系統(tǒng)及相關(guān)技術(shù)開發(fā)人員。
Android 系統(tǒng)至今已經(jīng)迭代到 Android14, 系統(tǒng)代碼越來越龐大。 很多工程師剛開始接觸到 Android 系統(tǒng)源碼, 由于對代碼背后的設(shè)計框架不了解, 在其中繞來繞去, 往往是一頭霧水, 喪失了繼續(xù)探索的耐心。 市面上缺少針對 Android 系統(tǒng)級多媒體的書籍, 有些開發(fā)者開始時只是關(guān)注一些細枝末節(jié)的東西, 沒有找到正確打開 Android 源碼路線圖的方法, 所以學(xué)起來比較痛苦。
Android 系統(tǒng)多媒體模塊的復(fù)雜度比較高, 每個模塊( 例如音頻、 相機、編解碼等) 都需要一個或多個垂直領(lǐng)域的工程師來開發(fā)維護, 這就造成工程師只能垂直專注在某一個模塊, 無法快速跨模塊上手開發(fā), 因為每個模塊之間都有很深的知識壁壘。 特別是對于多媒體領(lǐng)域更是如此, 開發(fā)者往往在自己不熟悉的多媒體模塊, 一頭扎進 Android 源碼, 往往是處于一個只見樹木、 不見森林的狀態(tài), 陷入一種迷茫的狀態(tài)。
本書旨在解決模塊之間快速橫跨的問題, 就像要伐倒一棵樹, 首先要找到它的根部, 再找到它的樹干, 接著是細枝末節(jié), 這才是正確做事的邏輯。而不是先在它的枝葉花費很多時間, 那樣往往也沒有什么進展。 只有先找到樹根和樹干在哪兒, 在這個基礎(chǔ)上再分析它的細枝末節(jié)才會有好的效果。
本書對多媒體每個模塊的主線路徑進行拆解, 每個模塊都是從最核心流程開始講解, 再到實戰(zhàn)應(yīng)用, 這樣更能開拓一個開發(fā)者的視野和深度理解Android 系統(tǒng)多媒體模塊。
為了滿足讀者能在 Windows 上開發(fā) Android 源碼, 且不用再單獨安裝虛擬機環(huán)境, 第1 章就講解使用微軟在 Windows 10 以上系統(tǒng)提供的 WSL(全稱 Windows Subsystemfor Linux) 編譯 Android 源碼, 并且提供了圖形化版本 WSLg( Windows11 才支持 WSLg) , 即在 WSL 中可以運行Linux 圖形應(yīng)用程序。 這樣就解決了開發(fā)者頻繁切換操作系統(tǒng)的煩惱, 同時可以使用Windows 豐富的應(yīng)用程序和Linux 系統(tǒng)進行開發(fā)工作, 可謂是一舉兩得。
在多媒體模塊部分, 先幫讀者掃盲, 從基礎(chǔ)概念開始, 接著講解整個模塊的架構(gòu)圖, 然后講解模塊的核心服務(wù), 最后講解代碼實戰(zhàn)練習(xí), 這樣循序漸進便于理解; 同時采用大量架構(gòu)圖、 時序圖、 流程圖幫助讀者看清模塊之間的聯(lián)系, 通過圖文結(jié)合的方式, 使讀者既能從整體把握 Android 系統(tǒng)多媒體的每個模塊層次架構(gòu), 又能深入主干脈絡(luò)的核心要點。
目前很多企業(yè)為了降本增效而進行裁員, 在這樣的環(huán)境中, 成為一個一專多能的工程師往往比較受歡迎, 在市場上也更有競爭力。
本書的讀者對象如下:
Android 系統(tǒng)開發(fā)人員;
Android 多媒體應(yīng)用開發(fā)人員;
Android 音頻開發(fā)人員;
Android 編解碼開發(fā)人員;
Android 相機開發(fā)人員;
Android 圖形開發(fā)人員;
Android 多媒體開發(fā)人員;
想了解高性能音頻的開發(fā)人員;
想了解 WSL 如何開發(fā) Android 源碼的開發(fā)人員。
由于作者的水平有限, 書中難免會出現(xiàn)一些錯誤或者不準(zhǔn)確的地方, 懇請廣大讀者批評指正。
致 謝
感謝我的母親, 是她在背后默默地支持著我。
感謝我的愛人, 是她一直在我寫作過程中鼓勵我。
感謝好友劉興光, 以專業(yè)的視角幫忙審稿, 提出了許多寶貴的意見。
感謝北京航空航天大學(xué)出版社的大力支持和幫助, 使我的作品得以出版。
感謝廣大讀者朋友的厚愛和支持。
趙廣建
2024 年2 月