第一部分 Android基础篇
第1章 Android简介\t2
1.1 Android简介\t2
1.2 阅读Android源代码\t6
第2章 Android基础类\t10
2.1 Android基础类简介\t10
2.2 Thread类原理\t11
2.3 Mutex与Condition\t20
2.3.1 Mutex(AutoMutex)分析\t20
2.3.2 Condition代码分析\t24
2.4 Android系统智能指针\t30
2.4.1 轻量级指针(lp)\t30
2.4.2 强指针(sp)\t32
第3章 Android上下文环境Context\t37
3.1 Context简介\t37
3.2 Application运行上下文环境Context的创建过程\t40
3.2.1 创建Application Context\t41
3.2.2 获得Application Context\t47
3.3 Activity运行上下文环境Context的创建过程\t48
3.4 Service运行上下文环境Context的创建过程\t55
第4章 Android消息机制\t59
4.1 Android消息机制原理\t59
4.2 创建消息队列和进入消息循环过程\t61
4.3 消息的发送过程\t70
4.4 消息的处理过程\t75
第二部分 Android框架篇
第5章 Android Init进程\t78
5.1 Android Init进程简介\t78
5.2 klog_init() 函数\t83
5.3 process_kernel_cmdline() 函数\t85
5.4 signal_handler_init() 函数\t86
5.5 property_load_boot_defaults() 函数\t89
5.6 属性服务\t90
5.6.1 属性服务的初始化与启动\t90
5.6.2 属性的设置\t91
5.6.3 属性值的获取\t95
5.7 解析init.rc配置文件和启动service进程\t96
5.7.1 init.rc文件基础介绍\t96
5.7.2 解析init.rc文件\t100
5.7.3 启动service进程\t104
第6章 开机动画bootanimation\t108
6.1 开机动画bootanimation原理\t108
6.2 开机动画bootanimation的显示过程\t111
6.3 开机动画bootanimation的退出过程\t127
第7章 Zygote进程\t135
7.1 Zygote进程基础介绍\t135
7.2 Zygote进程的启动\t139
7.2.1 调用startVM() 函数启动虚拟机\t143
7.2.2 调用startReg() 函数注册JNI方法\t143
7.2.3 调用ZygoteInit类的main() 方法\t145
7.3 启动system_server进程\t150
7.4 启动APP应用程序进程\t155
第8章 SystemServer进程\t161
8.1 SystemServer系统服务\t161
8.2 SystemServer创建框架核心服务\t165
第9章 Android系统的开机与关机\t175
9.1 Android系统的开机\t175
9.2 Android系统的关机\t185
9.3 案例分析\t197
9.3.1 Android系统开机时间标志\t197
9.3.2 Android系统关机时间标志\t198
第10章 Android系统异常问题\t199
10.1 addr2line工具\t199
10.2 Android Watchdog\t207
10.3 Android系统异常问题\t217
10.3.1 Android死机\t218
10.3.2 Android系统重启\t220
10.3.3 Android系统启动异常\t233
第11章 ActivityManagerService\t236
11.1 ActivityManagerService简介\t236
11.2 Activity的启动过程\t240
11.2.1 Launcher Activity的onPause() 过程\t241
11.2.2 Launcher Activity的onStop() 过程\t261
11.2.3 新Activity的onCreate()、onStart()和onResume() 过程\t264
11.3 Service的启动过程\t273
11.4 Broadcast\t280
11.4.1 广播的注册过程\t282
11.4.2 广播的发送过程\t290
11.4.3 广播的处理过程\t295
11.5 进程内存管理\t303
11.6 案例分析\t320
11.6.1 与Activity有关的例子\t320
11.6.2 与BroadCast有关的例子\t323
11.6.3 与进程内存有关的例子\t329
第12章 Android国际化\t331
12.1 CTS与GTS\t331
12.2 全球紧急电话策略\t337
12.3 Android多语言\t345
第三部分 Android ROM UI篇
第13章 Android资源管理系统\t354
13.1 资源管理简介\t354
13.2 资源初始化过程\t361
13.2.1 AssetManager的构造方法\t369
13.2.2 AssetManager.java的addAssetPath() 方法\t374
13.2.3 Resources的构造方法\t375
13.3 资源查找、解析、创建View过程\t378
13.3.1 查找资源ID对应的不是文件的过程\t380
13.3.2 查找资源ID对应的是文件的过程\t382
13.4 主题换肤实现\t396
第14章 Android View系统\t411
14.1 View系统简介\t411
14.2 应用程序Activity的创建\t412
14.3 Activity窗口对象PhoneWindow的创建\t424
14.4 Activity根视图对象DecorView的创建\t432
14.5 ViewRootImpl的创建和添加DecorView对象\t440
14.6 View的measure、layout和draw过程\t453
14.6.1 View的measure过程\t462
14.6.2 View的layout过程\t473
14.6.3 View的draw过程\t478
14.7 View事件分发\t493
14.8 案例分析\t503
第15章 Android控件\t512
15.1 Android系统控件分析\t512
15.1.1 系统控件简介\t512
15.1.2 系统控件TextView的属性\t514
15.1.3 系统控件TextView的onMeasure()\t517
15.1.4 系统控件TextView的onLayout()\t523
15.1.5 系统控件TextView的onDraw()\t523
15.2 自定义控件\t524
15.2.1 定义自定义控件属性\t525
15.2.2 实现自定义控件\t525
15.2.3 使用自定义控件\t527
15.3 Android控件案例分析\t527