Android 系統多媒體進階實戰

趙廣建

  • 出版商: 北京航空航天大學
  • 出版日期: 2024-06-01
  • 定價: $774
  • 售價: 8.5$658
  • 語言: 簡體中文
  • 頁數: 422
  • ISBN: 751244317X
  • ISBN-13: 9787512443174
  • 相關分類: Android
  • 下單後立即進貨 (約4週~6週)

買這商品的人也買了...

相關主題

商品描述

本書是一本 Android系統多媒體工程師的實戰手冊,基於 Android 12版本源碼講解,從結構上將Android系統多媒體分為5章進行介紹,包括第1章 Android系統環境篇、第2章音頻篇、第3章相機篇、第4章編解碼篇、第5章圖形篇。

本書旨在幫助讀者系統、深入、快速學習 Android系統多媒體模塊,並且將其用於工作實戰、興趣研究等。本書將每個多媒體模塊多餘的層層封裝全部剝離,去掉 Runtime和Java層的幹擾,以 C 實戰示例展示每個多媒體模塊最重要、最本質的內容,幫助讀者以最短的時間在模塊之間橫向遷躍學習,以應對時代快速變化產生的新需求。

本書適用於 Android系統及相關技術開發人員。

目錄大綱

第1章 Android系統環境篇
1.1 WSL系統介紹與安裝過程
1.1.1 WSL虛擬化架構介紹
1.1.2 WSLg圖形化環境安裝
1.2 編譯 Android系統源碼
1.2.1 下載、編譯 Android
12源碼
1.2.2 下載、編譯 Android
12內核源碼
1.2.3 介紹幾種刷機模式
1.2.4 刷 機
1.2.5 運行 Android設備
第2章 音頻篇
2.1 音頻基礎知識
2.1.1 奈奎斯特採樣定律
2.1.2 ADC
2.1.3 DAC
2.1.4 PCM
2.1.5 DAI
2.1.6 ASLA
2.1.7 採 樣
2.1.8 量 化
2.1.9 編 碼
2.1.10 音頻幀
2.1.11 採樣率
2.1.12 通道數
2.2 常見的音頻通路介紹
2.2.1 音頻播放
2.2.2 音頻錄音
2.2.3 打電話
2.2.4 接電話
2.2.5 藍牙打電話
2.2.6 藍牙接電話
2.3 AudioServer 初始化過程
2.3 .1 AudioServer 服務創建過程
2.3 .2 AudioServer 進程啟動過程
2.4 AudioFlinger 服務註冊過程
2.4.1 AudioFlinger: :instantiate() 實例化過程
2.4.2 AudioFlingerServerAdapter 實例化過程
2.4.3 AIDL 自動生成Server 端返回值生成規則
2.5 AudioPolicyService 服務註冊過程
2.6 AAudioService 服務註冊過程
2.7 OpenSL ES 原理與實戰
2.7.1 Android 平臺 OpenSL ES 支持功能
2.7.2 OpenSL ES 關鍵數據結構
2.7.3 OpenSL ES 引擎播放過程
2.7.4 OpenSL ES 引擎解碼音頻實戰
2.7.5 OpenSL ES 引擎錄音過程
2.7.6 OpenSL ES 引擎錄音實戰
2.8 AAudioService 原理與實戰
2.8.1 Android 平臺 AAudio 支持的功能
2.8.2 AAudio 引擎播放音頻過程
2.8.3 AAudio 引擎獨占模式播放 PCM 實戰
2.8.4 AAudio 引擎錄音實戰
2.9 Oboe 原理與實戰
2.9 .1 Oboe 使用 AAudio 引擎
2.9 .2 Oboe 使用 OpenSL ES 引擎
2.9 .3 Oboe 播放音頻實戰
2.9 .4 Oboe 錄音實戰
第3 章 相機篇
3 .1 相機基礎知識
3 .1 .1 PAL 制式
3 .1 .2 NTSC 制式
3 .1 .3 逐行掃描
3 .1 .4 隔行掃描
3 .1 .5 幀
3 .1 .6 場
3 .1 .7 顯示分辨率
3 .1 .8 圖像分辨率
3 .1 .9 ISO
3 .1 .10 光 圈
3 .1 .11 快 門
3 .1 .12 白平衡
3 .1 .13 RAW 格式
3 .2 Camera 模塊層級關系
3 .3 Camera 核心服務一: media.camera
3 .3 .1 init 進程解析cameraserver.rc
3 .3 .2 CameraServer 的啟動過程
3 .4 Camera 核心服務二:android. hardware.camera. provider@2.4: :ICameraProvider/legacy/0
3 .5 Camera 核心服務三:android.frameworks.cameraservice.service@2.2: :ICameraService/default
3 .6 Camera 通過 AIDL、HIDL 與底層通信過程
3 .6 .1 Camera2 到 CameraService 通信過程(AIDL 通信方式)
3 .6 .2 CameraService 到 Camera HIDL 通信過程
3 .6 .3 Camera HIDL 到 HAL 通信過程(HIDL 通信方式)
3 .7 Camera Preview 過程
3 .7.1 Camera Preview 準備階段之創建與傳遞Surace 過程
3 .7.2 Camera Preview 之startPreview 過程時序圖
3 .7.3 Camera Preview 之創建預覽數據流通道過程
3 .7.4 Camera Preview 之獲取相機元數據過程
3 .7.5 Camera Preview 之獲取預覽數據過程
3 .8 Camera 之採集視頻 NV21 數據實戰
第4 章 編解碼篇
4.1 編解碼基礎知識
4.1 .1 RGB
4.1 .2 YUV
4.1 .3 視頻編碼
4.1 .4 視頻解碼
4.1 .5 封裝格式
4.1 .6 像 素
4.1 .7 宏 塊
4.1 .8 幀
4.1 .9 GOP 序列
4.1 .10 幀內預測
4.1 .11 幀間預測
4.1 .12 IDR 幀
4.1 .13 I 幀、P 幀、B 幀
4.1 .14 PTS
4.1 .15 DTS
4.1 .16 幀 率
4.1 .17 碼 率
4.1 .18 刷新率
4.1 .19 位 深
4.1 .20 YUV 常見存儲方式
4.1 .21 YUV444、YUV422、YUV420 採樣模式
4.2 MediaCodec 模塊層級關系
4.2.1 MediaCodec、ACodec、Codec 2.0 關系圖
4.2.2 音視頻編解碼、 封裝、 解封裝流程
4.3 MediaCodec 核心服務一:android. hardware. media.omx@1 .0: :Omx/default
4.3 .1 Omx 服務加載廠商硬編解碼器
4.3 .2 Omx 服務加載軟編解碼器
4.3 .3 vendor. media.omx 服務查詢不到的問題
4.4 MediaCodec 核心服務二:android. hardware. media.omx@1 .0: :IOmxStore/default
4.5 MediaCodec 核心服務三:android. hardware. media.c2@1 .2: :IComponentStore/software
4.6 MediaCodec 視頻編碼部分
4.6 .1 MediaCodec 創建視頻編碼器過程
4.6 .2 MediaCodec 配置視頻編碼器過程
4.6 .3 MediaCodec 啟動編碼器過程
4.6 .4 MediaCodec 編碼輸出 H.264 數據過程
4.7 MediaMuxer 之視頻封裝部分
4.8 NuMediaExtractor 之視頻解封裝部分
4.9 AAC 音頻碼流分析
4.9 .1 AAC 格式幀頭字段分析
4.9 .2 AAC 格式幀頭解析實戰
4.10 H.264 視頻碼流分析實戰
4.10.1 H.264 編碼格式構成
4.10.2 NALU 頭信息結構
4.10.3 有符號與無符號指數哥倫布編解碼介紹
4.10.4 零階無符號指數哥倫布編碼和解碼示例
4.10.5 零階有符號指數哥倫布編碼和解碼示例
4.10.6 解析 H.264 碼流的SPS、PPS 實戰
4.11 MediaCodec 之音視頻編解碼實戰
4.11 .1 MediaCodec 之 YUV 編碼實戰
4.11 .2 MediaCodec 之 H.264 解碼實戰
4.11 .3 MediaCodec 之 PCM 編碼實戰
4.11 .4 MediaCodec 之 AAC 解碼實戰
4.12 MediaMuxer 音視頻封裝與 NuMediaExtractor 解封裝實戰
4.12.1 MediaMuxer 之 H.264 封裝實戰
4.12.2 NuMediaExtractor 之 mp4 解封裝視頻實戰
4.12.3 MediaMuxer 之 AAC 封裝實戰
4.12.4 NuMediaExtractor 之 mp4 解封裝音頻實戰
第5 章 圖形篇
5 .1 圖形基礎知識
5 .1 .1 View
5 .1 .2 Surface
5 .1 .3 SurfaceHolder
5 .1 .4 SurfaceView
5 .1 .5 GLSurfaceView
5 .1 .6 SurfaceTexture
5 .1 .7 TextureView
5 .1 .8 SurfaceFlinger
5 .1 .9 BufferQueue
5 .1 .10 Gralloc
5 .1 .11 HWC
5 .1 .12 EGL
5 .1 .13 EGLSurface
5 .1 .14 OpenGL ES
5 .1 .15 Vulkan
5 .1 .16 VSYNC
5 .1 .17 DRM
5 .1 .18 Fence 同步機制
5 .2 SurfaceFlinger 模塊通信關系
5 .3 HWC 服務啟動過程
5 .3 .1 第一部分: 加載 HWC 底層庫
5 .3 .2 第二部分: HWC 底層庫函數創建映射關系
5 .3 .3 第三部分: 將 HWC 底層庫能力傳給上層
5 .4 SurfaceFlinger 服務啟動過程
5 .4.1 第一部分: 服務啟動過程
5 .4.2 第二部分: 初始化並設置渲染引擎對象過程
5 .4.3 第三部分: 創建並設置 HWC 客戶端對象過程
5 .5 Gralloc 跨硬件申請圖形共享 Buffer 過程
5 .6 OpenGL 控制 GPU 合成、 顯示過程
5 .6 .1 第一部分:EGL 加載 GPU 通信庫過程
5 .6 .2 第二部分: OpenGL 通過 GPU 渲染、 合成過程
5 .6 .3 第三部分:EGL 通過 DRM 顯示過程
5 .7 HWC 合成提交 DRM 顯示過程
5 .8 圖形實戰案例
5 .8.1 正常渲染實戰
5 .8.2 離屏渲染實戰
5 .8.3 Fence 同步機制實戰
5 .8.4 OpenGL 渲染nv21 格式視頻實戰
5 .8.5 ION 跨硬件使用共享內存實戰
5 .8.6 映射 GPU 顯存實戰
5 .8.7 DRM 輸出顯示實戰