深入理解android内核设计思想第2版是提供编程教学的电子书籍,由作者林学森所著。书籍从操作系统的基础知识入手,全面剖析进程/线程、内存管理、Binder机制等核心技术在Android中的实现原理。每个重点区域都有详细的讲解,具有较强的实用性。
基于Android SDK最新版本,全面剖析了进程/线程、内存管理、Binder机制、GUI显示系统、多媒体管理、输入系统等核心知识在Android中的实现原理。通过大量图片与实例来引导读者学习,以求尽量在源码分析外,为读者提供更易于理解的思维路径。由浅入深,由总体框架再到细节实现,让读者尽快了解Android内核的设计思想。
第1篇 Android编译篇
第1章 Android系统简介
1.1 Android系统发展历程
1.2 Android系统特点
1.3 Android系统框架
第2章 Android源码下载及编译
2.1 Android源码下载指南
2.1.1 基于Repo和Git的版本管理
2.1.2 Android源码下载流程
2.2 原生态系统编译指南
2.2.1 建立编译环境
2.2.2 编译流程
2.3 定制产品的编译与烧录
2.3.1 定制新产品
2.3.2 Linux内核编译
2.3.3 烧录
2.4 Android系统映像文件
2.4.1 boot.img
2.4.2 ramdisk.img
2.4.3 system.img
2.5 OTA系统升级
2.5.1 生成升级包
2.5.2 获取升级包
2.5.3 OTA升级—RecoveryMode
2.6 Android反编译
第3章 Android编译系统
3.1 Makefile入门
3.2 Android编译系统
3.2.1 Makefile依赖树的概念
3.2.2 树根节点droid
3.2.3 main.mk解析
3.2.4 droidcore节点
3.2.5 dist_files
3.2.6 Android.mk的编写规则
第2篇 Android原理篇
第4章 操作系统基础
4.1 计算机体系结构(Computer Architecture)
4.1.1 冯·诺依曼结构
4.1.2 哈佛结构
4.2 什么是操作系统
4.3 进程间通信的经典实现
4.3.1 共享内存(Shared Memory)
4.3.2 管道(Pipe)
4.3.3 Unix Domain Socket
4.3.4 RPC(RemoteProcedure Calls)
4.4 同步机制的经典实现
4.4.1 信号量(Semaphore)
4.4.2 Mutex
4.4.3 管程(Monitor)
4.4.4 同步范例
4.5 Android中的同步机制
4.5.1 进程间同步——Mutex
4.5.2 条件判断——Condition
4.5.3 “栅栏、障碍”——Barrier
4.5.4 加解锁的自动化操作——Autolock
4.6 操作系统内存管理基础
4.6.1 虚拟内存(Virtual Memory)
4.6.2 内存保护(Memory Protection)
4.6.3 内存分配与回收
4.6.4 进程间通信——mmap
4.7 Android中的Low Memory Killer
4.8 Android匿名共享内存(Anonymous Shared Memory)
4.8.1 Ashmem设备
4.8.2 Ashmem应用实例
4.9 JNI
4.9.1 Java函数的本地实现
4.9.2 本地代码访问JVM
4.10 学习Android系统的两条线索
第5章 Android进程/线程管理
5.1 Android进程和线程
5.2 Handler, MessageQueue,Runnable与Looper
5.3 UI主线程——ActivityThread
5.4 Thread类
5.4.1 Thread类的内部原理
5.4.2 Thread休眠和唤醒
5.4.3 Thread实例
5.5 Android应用程序的典型启动流程
第6章 进程间通信——Binder
6.1 智能指针
6.1.1 智能指针的设计理念
6.1.2 强指针sp
6.1.3 弱指针wp
6.2 进程间的数据传递载体——Parcel
6.3 Binder驱动与协议
6.3.1 打开Binder驱动——binder_open
6.3.2 binder_mmap
6.3.3 binder_ioctl
6.4 “DNS”服务器——ServiceManager(Binder Server)
6.4.1 ServiceManager的启动
6.4.2 ServiceManager的构建
6.4.3 获取ServiceManager服务——设计思考
6.4.4 ServiceManagerProxy
6.4.5 IBinder和BpBinder
6.4.6 ProcessState和IPCThreadState
6.5 Binder客户端——Binder Client
6.6 Android接口描述语言——AIDL
6.7 匿名Binder Server
第7章 Android启动过程简析
7.1 第一个系统进程(init)
7.1.1 init.rc语法
7.1.2 init.rc实例分析
7.2 系统关键服务的启动简析
7.2.1 Android的“DNS服务器”——ServiceManager
7.2.2 “孕育”新的线程和进程——Zygote
7.2.3 Android的“系统服务”——SystemServer
第8章 管理Activity和组件运行状态的系统进程——Activity ManagerService (AMS)
8.1 AMS功能概述
8.2 管理当前系统中Activity状态——Activity Stack
8.3 startActivity流程
8.4 完成同一任务的“集合”——Activity Task
8.4.1 “后进先出”——Last In,First Out
8.4.2 管理Activity Task
第9章 GUI系统之SurfaceFlinger
9.1 OpenGL ES与EGL
9.2 Android的硬件接口——HAL
9.3 Android终端显示设备的“化身”——Gralloc与Framebuffer
9.4 Android中的本地窗口
9.4.1 FramebufferNativeWindow
9.4.2 应用程序端的本地窗口——Surface
9.5 BufferQueue详解
9.5.1 BufferQueue的内部原理
9.5.2 BufferQueue中的缓冲区分配
9.5.3 应用程序的典型绘图流程
9.5.4 应用程序与BufferQueue的关系
9.6 SurfaceFlinger
9.6.1 “黄油计划”——project Butter
9.6.2 SurfaceFlinger的启动
9.6.3 接口的服务端——Client
9.7 VSync的产生和处理
9.7.1 VSync信号的产生和分发
9.7.2 VSync信号的处理
9.7.3 handleMessageTransaction
9.7.4 “界面已经过时/无效,需要重新绘制”——handleMessageInvalidate
9.7.5 合成前的准备工作——precomposition
9.7.6 可见区域——rebuildLayerStacks
9.7.7 为“Composition”搭建环境——setupHWComposer
9.7.8 doDebugFlashRegions
9.7.9 docomposition
第10章 GUI系统之“窗口管理员”——WMS
10.1 “窗口管理员”——WMS综述
10.1.1 WMS的启动
10.1.2 WMS的基础功能
10.1.3 WMS的工作方式
10.1.4 WMS,AMS与Activity间的联系
10.2 窗口属性
10.2.1 窗口类型与层级
10.2.2 窗口策略(Window Policy)
10.2.3 窗口属性(LayoutParams)
10.3 窗口的添加过程
10.3.1 系统窗口的添加过程
10.3.2 Activity窗口的添加过程
10.3.3 窗口添加实例
10.4 Surface管理
10.4.1 Surface申请流程(relayout)
10.4.2 Surface的跨进程传递
10.4.3 Surface的业务操作
10.5 performLayoutAndPlaceSurfacesLockedInner
10.6 窗口大小的计算过程
10.7 启动窗口的添加与销毁
10.7.1 启动窗口的添加
10.7.2 启动窗口的销毁
10.8 窗口动画
10.8.1 窗口动画类型
10.8.2 动画流程跟踪——WindowStateAnimator
10.8.3 AppWindowAnimator
10.8.4 动画的执行过程
第11章 让你的界面炫彩起来的GUI系统之View体系
11.1 应用程序中的View框架
11.2 Activity中View Tree的创建过程
11.3 在WMS中注册窗口
11.4 ViewRoot的基本工作方式
11.5 View Tree的遍历时机
11.6 View Tree的遍历流程
11.7 View和ViewGroup属性
11.7.1 View的基本属性
11.7.2 ViewGroup的属性
11.7.3 View,ViewGroup和ViewParent
11.7.4 Callback接口
11.8 “作画“工具集——Canvas
11.8.1 “绘制UI”——Skia
11.8.2 数据中介——Surface.lockCanvas
11.8.3 解锁并提交结果——unlockCanvasAndPost
11.9 draw和onDraw
11.10 View中的消息传递
11.10.1 View中TouchEvent的投递流程
11.10.2 ViewGoup中TouchEvent的投递流程
11.11 View动画
第12章 “问渠哪得清如许,为有源头活水来”——InputManagerService与输入事件
12.1 事件的分类
12.2 事件的投递流程
12.2.1 InputManagerService
12.2.2 InputReaderThread
12.2.3 InputDispatcherThread
12.2.4 ViewRootImpl对事件的派发
第13章 应用不再同质化——音频系统
13.1 音频基础
13.1.1 声波
13.1.2 音频的录制、存储与回放
13.1.3 音频采样
13.1.4 Nyquist–Shannon采样定律
13.1.5 声道和立体声
13.1.6 声音定级——Weber–Fechner law
13.1.7 音频文件格式
13.2 音频框架
13.2.1 Linux中的音频框架
13.2.2 TinyAlsa
13.2.3 Android系统中的音频框架
13.3 音频系统的核心——AudioFlinger
13.3.1 AudioFlinger服务的启动和运行
13.3.2 AudioFlinger对音频设备的管理
13.3.3 PlaybackThread的循环主体
13.3.4 AudioMixer
13.4 策略的制定者——AudioPolicyService
13.4.1 AudioPolicyService概述
13.4.2 AudioPolicyService的启动过程
13.4.3 AudioPolicyService与音频设备
13.5 音频流的回放——AudioTrack
13.5.1 AudioTrack应用实例
13.5.2 AudioPolicyService的路由实现
13.6 音频数据流
13.6.1 AudioTrack中的音频流
13.6.2 AudioTrack和AudioFlinger间的数据交互
13.6.3 AudioMixer中的音频流
13.7 音量控制
13.8 音频系统的上层建筑
13.8.1 从功能入手
13.8.2 MediaPlayer
13.8.3 MediaRecorder
13.8.4 一个典型的多媒体录制程序
13.8.5 MediaRecorder源码解析
13.8.6 MediaPlayerService简析
13.9 Android支持的媒体格式
13.9.1 音频格式
13.9.2 视频格式
13.9.3 图片格式
13.9.4 网络流媒体
13.10 ID3信息简述
13.11 Android多媒体文件管理
13.11.1 MediaStore
13.11.2 多媒体文件信息的存储“仓库”——MediaProvider
13.11.3 多媒体文件管理中的“生产者”——MediaScanner
……
第3篇 应用原理篇
第4篇 Android系统工具
提取码:xfqa
pdf电子书专区为用户免费提供相关的pdf资源下载,你可以不花钱免费在这里下载到你想要的资源,并且各种书籍相关的行业也非常的多哦,所以需要耐心的找到你的资源,图书书籍股改范围广,教育教学,科学建筑,生活相关,文学艺术等等!
西门子mm430变频器说明书 pdf版
6.24 MB/ 简体中文
pdf版
gb50026-2007工程测量规范pdf版
2.10 MB/ 简体中文
07sd101-8电力电缆井图集 pdf免费版
4.65 MB/ 简体中文
pdf免费版
17j925-1压型钢板图集 pdf版
133.00 MB/ 简体中文
pdf版
文案素材软件 v3.3.1 安卓免费版
67.7 MB/ 简体中文
v3.3.1
招生之友2020电子版河南 pdf免费版
273.90 MB/ 简体中文
pdf免费版
11zj401楼梯栏杆图集 pdf版
6.60 MB/ 简体中文
pdf版
啊哈算法pdf完整版 pdf电子书
73.34 MB/ 简体中文
pdf电子书
电子书籍 /
下载电子书籍 /
下载电子书籍 /
下载电子书籍 /
下载电子书籍 /
下载电子书籍 /
下载电子书籍 /
下载电子书籍 /
下载电子书籍 /
下载电子书籍 /
下载
网友评论