買這商品的人也買了...
-
$199Java and XML (Paperback)
-
$580$458 -
$301OpenCL 異構並行程式設計實戰
-
$454JavaScript程序設計
-
$458直擊招聘 : 程序員面試筆試數據結構深度解析
-
$403深入 RabbitMQ
-
$454Hyperledger Fabric 源代碼分析與深入解讀
-
$450$383 -
$594$564 -
$658Hyperledger Fabric技術內幕:架構設計與實現原理
-
$352Hyperledger Fabric 菜鳥進階攻略
-
$454HyperledgerFabric 核心技術
-
$301cURL 必知必會
-
$305Spring Boot 微服務實戰:使用 RabbitMQ、Eureka、Ribbon、Zuul 和 Cucumber 開發 RESTful 服務
-
$474$450 -
$254超級帳本 HyperLedger Fabric 區塊鏈開發實戰
-
$1,080$853 -
$654$621 -
$719$683 -
$1,194$1,134 -
$528$502 -
$449物聯網及低功耗藍牙5.x高級開發
-
$654$621 -
$759Android Studio 開發實戰:從零基礎到 App 上線, 3/e
-
$305物聯網可穿戴技術
相關主題
商品描述
本書是一本 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 输出显示实战