深入理解Android内核设计思想PDF电子书下载
- 电子书积分:19 积分如何计算积分?
- 作 者:林学森编著
- 出 版 社:北京:人民邮电出版社
- 出版年份:2014
- ISBN:9787115348418
- 页数:687 页
第1篇 Android编译篇 2
第1章 Android系统简介 2
1.1 Android系统发展历程 2
1.2 Android系统特点 4
1.3 Android系统框架 8
第2章 Android源码下载及编译 10
2.1 Android源码下载指南 10
2.1.1基于Repo和Git的版本管理 10
2.1.2 Android源码下载流程 11
2.2原生态系统编译指南 12
2.2.1建立编译环境 13
2.2.2编译流程 15
2.3定制产品的编译与烧录 17
2.3.1定制新产品 17
2.3.2 Linux内核编译 21
2.3.3烧录 22
2.4 Android系统映像文件 23
2.4.1 boot.img 23
2.4.2 ramdisk.img 25
2.4.3 system.img 26
2.5 OTA系统升级 26
2.5.1生成升级包 27
2.5.2获取升级包 28
2.5.3 OTA升级-RecoveryMode 29
2.6 Android反编译 31
第3章 Android编译系统 34
3.1 Makefile入门 34
3.2 Android编译系统 35
3.2.1 Makefile依赖树的概念 36
3.2.2树根节点droid 36
3.2.3 main.mk解析 38
3.2.4 droidcore节点 39
3.2.5 dist_files 41
3.2.6 Android.mk的编写规则 42
第2篇 Android原理篇 48
第4章 操作系统基础 48
4.1计算机体系结构 48
4.1.1冯·诺依曼结构 48
4.1.2哈佛结构 48
4.2什么是操作系统 49
4.3进程间通信的经典实现 51
4.3.1共享内存 52
4.3.2管道 54
4.3.3 Unix Domain Socket 55
4.3.4 RPC 58
4.4同步机制的经典实现 58
4.4.1信号量 58
4.4.2 Mutex 59
4.4.3管程 59
4.4.4同步范例 60
4.5 Android中的同步机制 61
4.5.1进程间同步——Mutex 61
4.5.2条件判断——Condition 62
4.5.3“栅栏、障碍”——Barrier 64
4.5.4加解锁的自动化操作——Autolock 66
4.6操作系统内存管理基础 66
4.6.1虚拟内存 66
4.6.2内存保护 69
4.6.3内存分配与回收 69
4.6.4进程间通信——mmap 70
4.7 Android中的Low Memory Killer 71
4.8 Android匿名共享内存 74
4.8.1 Ashmem设备 74
4.8.2 Ashmem应用实例 78
4.9 JNI 83
4.9.1 Java函数的本地实现 83
4.9.2本地代码访问JVM 86
4.10学习Android系统的两条线索 88
第5章 Android进程/线程管理 89
5.1 Android进程和线程 89
5.2 Handler,MessageQueue,Runnable与Looper 95
5.3 UI主线程——ActivityThread 102
5.4 Thread类 105
5.4.1 Thread类的内部原理 105
5.4.2 Thread休眠和唤醒 106
5.4.3 Thread实例 110
5.5 Android应用程序的典型启动流程 112
第6章 进程间通信——Binder 114
6.1智能指针 117
6.1.1智能指针的设计理念 117
6.1.2强指针sp 120
6.1.3弱指针wp 121
6.2进程间的数据传递载体——Parcel 128
6.3 Binder驱动与协议 135
6.3.1打开Binder驱动——binder_open 136
6.3.2 binder_mmap 137
6.3.3 binder_ioctl 140
6.4 “DNS”服务器——ServiceManager(Binder Server) 141
6.4.1 ServiceManager的启动 141
6.4.2 ServiceManager的构建 142
6.4.3获取ServiceManager服务——设计思考 147
6.4.4 ServiceManagerProxy 151
6.4.5 IBinder和BpBinder 153
6.4.6 ProcessState和IPCThreadState 155
6.5 Binder客户端——Binder Client 185
6.6 Android接口描述语言——AIDL 190
6.7匿名Binder Server 202
第7章 Android启动过程简析 205
7.1第一个系统进程(init) 205
7.1.1 init.rc语法 205
7.1.2 init.rc实例分析 208
7.2系统关键服务的启动简析 209
7.2.1 Android的“DNS服务器”——ServiceManager 209
7.2.2“孕育”新的线程和进程——Zygote 209
7.2.3 Android的“系统服务”——SystemServer 211
第8章 管理Activity和组件运行状态的系统进程——Activity ManagerService (AMS) 213
8.1 AMS功能概述 213
8.2管理当前系统中Activity状态——Activity Stack 215
8.3 startActivity流程 217
8.4完成同一任务的“集合”——Activity Task 224
8.4.1“后进先出”——Last In,First Out 225
8.4.2管理Activity Task 226
第9章 GUI系统之SurfaceFlinger 229
9.1 OpenGL ES与EGL 229
9.2 Android的硬件接口——HAL 231
9.3 Android终端显示设备的“化身”——Gralloc与Framebuffer 233
9.4 Android中的本地窗口 237
9.4.1 Framebuffer NativeWindow 239
9.4.2应用程序端的本地窗口——Surface 245
9.5 BufferQueue详解 249
9.5.1 BufferQueue的内部原理 249
9.5.2 BufferQueue中的缓冲区分配 252
9.5.3应用程序的典型绘图流程 258
9.5.4应用程序与BufferQueue的关系 263
9.6 SurfaceFlinger 267
9.6.1“黄油计划”——Project Butter 267
9.6.2 SurfaceFlinger的启动 271
9.6.3接口的服务端——Client 275
9.7 VSync的产生和处理 279
9.7.1 VSync信号的产生和分发 279
9.7.2 VSync信号的处理 285
9.7.3 handleMessage Transaction 287
9.7.4“界面已经过时/无效,需要重新绘制”——handle MessageInvalidate 291
9.7.5合成前的准备工作——preComposition 293
9.7.6可见区域——rebuild LayerStacks 295
9.7.7为“Composition”搭建环境——setUpHW Composer 299
9.7.8 doDebugFlashRegions 301
9.7.9 doComposition 302
第10章 GUI系统之“窗口管理员”——WMS 309
10.1“窗口管理员”——WMS综述 310
10.1.1 WMS的启动 312
10.1.2 WMS的基础功能 312
10.1.3 WMS的工作方式 313
10.1.4 WMS,AMS与Activity间的联系 314
10.2窗口属性 316
10.2.1窗口类型与层级 316
10.2.2窗口策略 320
10.2.3窗口属性 322
10.3窗口的添加过程 324
10.3.1系统窗口的添加过程 324
10.3.2 Activity窗口的添加过程 333
10.3.3窗口添加实例 337
10.4 Surface管理 340
10.4.1 Surface申请流程(relayout) 341
10.4.2 Surface的跨进程传递 344
10.4.3 Surface的业务操作 347
10.5 performLayoutAndPlace SurfacesLockedInner 347
10.6窗口大小的计算过程 349
10.7启动窗口的添加与销毁 358
10.7.1启动窗口的添加 358
10.7.2启动窗口的销毁 362
10.8窗口动画 363
10.8.1窗口动画类型 364
10.8.2动画流程跟跟踪——Window StateAnimator 365
10.8.3 AppWindowAnimator 368
10.8.4动画的执行过程 370
第11章 让你的界面炫彩起来的GUI系统之View体系 377
11.1应用程序中的View框架 377
11.2 Activity中View Tree的创建过程 380
11.3在WMS中注册窗口 386
11.4 ViewRoot的基本工作方式 388
11.5 View Tree的遍历时机 389
11.6 View Tree的遍历流程 393
11.7 View和ViewGroup属性 402
11.7.1 View的基本属性 402
11.7.2 ViewGroup的属性 408
11.7.3 View,ViewGroup和ViewParent 408
11.7.4 Callback接口 408
11.8“作画”工具集——Canvas 411
11.8.1“绘制UI”——Skia 412
11.8.2数据中介——Surface.lock Canvas 413
11.8.3解锁并提交结果——unlockCanvasAndPost 417
11.9 draw和onDraw 417
11.10 View中的消息传递 423
11.10.1 View中TouchEvent的投递流程 423
11.10.2 ViewGoup中TouchEvent的投递流程 427
11.11 View动画 430
第12章 “问渠哪得清如许,为有源头活水来”——InputManager Service与输入事件 436
12.1事件的分类 436
12.2事件的投递流程 439
12.2.1 InputManagerService 440
12.2.2 InputReaderThread 441
12.2.3 InputDispatcherThread 441
12.2.4 ViewRootImpl对事件的派发 445
第13章 应用不再同质化——音频系统 447
13.1音频基础 448
13.1.1声波 448
13.1.2音频的录制、存储与回放 448
13.1.3音频采样 449
13.1.4 Nyquist-Shannon采样定律 451
13.1.5声道和立体声 451
13.1.6声音定级——Weber-Fechner law 452
13.1.7音频文件格式 453
13.2音频框架 454
13.2.1 Linux中的音频框架 454
13.2.2 TinyAlsa 456
13.2.3 Android系统中的音频框架 457
13.3音频系统的核心——AudioFlinger 459
13.3.1 AudioFlinger服务的启动和运行 460
13.3.2 AudioFlinger对音频设备的管理 461
13.3.3 PlaybackThread的循环主体 468
13.3.4 AudioMixer 473
13.4策略的制定者——AudioPolicyService 475
13.4.1 AudioPolicyService概述 475
13.4.2 AudioPolicyService的启动过程 477
13.4.3 AudioPolicyService与音频设备 480
13.5音频流的回放——AudioTrack 482
13.5.1 AudioTrack应用实例 482
13.5.2 AudioPolicyService的路由实现 489
13.6音频数据流 494
13.6.1 AudioTrack中的音频流 495
13.6.2 AudioTrack和Audio Flinger间的数据交互 498
13.6.3 AudioMixer中的音频流 504
13.7音量控制 506
13.8音频系统的上层建筑 510
13.8.1从功能入手 510
13.8.2 MediaPlayer 511
13.8.3 MediaRecorder 514
13.8.4一个典型的多媒体录制程序 517
13.8.5 MediaRecorder源码解析 518
13.8.6 MediaPlayerService简析 520
13.9 Android支持的媒体格式 523
13.9.1音频格式 523
13.9.2视频格式 523
13.9.3图片格式 524
13.9.4网络流媒体 524
13.10 ID3信息简述 525
13.11 Android多媒体文件管理 528
13.11.1 MediaStore 529
13.11.2多媒体文件信息的存储“仓库”——Media Provider 530
13.11.3多媒体文件管理中的“生产者”——Media Scanner 533
第3篇 应用原理篇 538
第14章 Intent的匹配规则 538
14.1 Intent属性 538
14.2 Intent的匹配规则 540
14.3 Intent匹配源码简析 546
第15章 APK应用程序的资源适配 551
15.1资源类型 552
15.1.1状态颜色资源 553
15.1.2图形资源 554
15.1.3布局资源 555
15.1.4菜单资源 556
15.1.5字符串资源 556
15.1.6样式资源 557
15.1.7其他资源 558
15.1.8属性资源 558
15.2提供可选资源 561
15.3最佳资源的匹配流程 565
15.4屏幕适配 567
15.4.1屏幕适配的重要参数 567
15.4.2如何适配多屏幕 569
第16章 Android字符编码格式 572
16.1字符编码格式背景 572
16.2 ISO/IEC 8859 573
16.3 ISO/IEC 10646 573
16.4 Unicode 574
16.5 String类型 577
16.5.1构建String 578
16.5.2 String对多种编码的兼容 579
第17章 Android和OpenGL ES 583
17.1 3D图形学基础 584
17.1.1计算机3D图形 584
17.1.2图形管线 585
17.2 Android中的OpenGL ES简介 587
17.3图形渲染API—EGL 588
17.3.1 EGL与OpenGL ES 588
17.3.2 egl.cfg 588
17.3.3 EGL接口解析 590
17.3.4 EGL实例 593
17.4简化OpenGL ES开发——GLSurfaceView 593
第18章“系统的UI”——SystemUl 601
18.1 SystemUI的组成元素 601
18.2 SystemUI的实现 603
18.3 Android壁纸资源——WallpaperService 610
18.3.1 WallPaperManager Service 611
18.3.2 Image Wallpaper 613
第19章 Android常用的工具“小插件”——Widget机制 616
19.1“功能的提供者”——AppWidgetProvider 616
19.2 AppWidgetHost 618
第20章 Android应用程序的编译和打包 624
20.1“另辟蹊径”采用第三方工具——Ant 624
20.2通过命令行编译和打包APK 625
20.3 APK编译过程详解 626
20.4信息安全基础概述 628
20.5应用程序签名 633
20.6应用程序签名源码简析 636
第4篇 Android系统工具 642
第21章 软件版本管理 642
21.1版本管理简述 642
21.2 Git的安装 643
21.2.1 Linux环境下安装Git 643
21.2.2 Windows环境下安装Git 644
21.3 Git的使用 644
21.3.1基础配置 644
21.3.2新建仓库 646
21.3.3文件状态 647
21.3.4忽略某些文件 649
21.3.5提交更新 649
21.3.6其他命令 650
21.4 Git原理简析 650
21.4.1分布式版本系统的特点 651
21.4.2安全散列算法——SHA-1 652
21.4.3四个重要对象 653
21.4.4三个区域 657
21.4.5分支的概念与实例 658
第22章 系统调试辅助工具 662
22.1万能模拟器——Emulator 662
22.1.1 QEMU 662
22.1.2 Android工程中的QEMU 667
22.1.3模拟器控制台(Emulator Console) 670
22.1.4实例:为Android模拟器添加串口功能 672
22.2此Android非彼Android 674
22.3快速建立与模拟器或真机的通信渠道——ADB 676
22.3.1 ADB的使用方法 676
22.3.2 ADB的组成元素 678
22.3.3 ADB源代码解析 679
22.3.4 ADB Protocol 684
- 《激光加工实训技能指导理实一体化教程 下》王秀军,徐永红主编;刘波,刘克生副主编 2017
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《设计十六日 国内外美术院校报考攻略》沈海泯著 2018
- 《计算机辅助平面设计》吴轶博主编 2019
- 《高校转型发展系列教材 素描基础与设计》施猛责任编辑;(中国)魏伏一,徐红 2019
- 《景观艺术设计》林春水,马俊 2019
- 《先秦政治思想史》梁启超著 2019
- 《《鬼谷子》思想新解 上》林仁政著 2015
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《刘泽华全集 先秦政治思想史 下》刘泽华著;南开大学历史学院编 2019
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《办好人民满意的教育 全国教育满意度调查报告》(中国)中国教育科学研究院 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《人民院士》吴娜著 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《中国人民的心》杨朔著;夕琳编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中华人民共和国成立70周年优秀文学作品精选 短篇小说卷 上 全2册》贺邵俊主编 2019
- 《指向核心素养 北京十一学校名师教学设计 数学 九年级 上 配人教版》周志英总主编 2019
- 《中华人民共和国成立70周年优秀文学作品精选 中篇小说卷 下 全3册》洪治纲主编 2019