编辑推荐
基于Android源代码和实际开发案例分析,让读者在学习过程中进一步吃透源代码。
目录
*部分 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与Conditiont20
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上下文环境Contextt37
3.1 Context简介t37
3.2 Application运行上下文环境Context的创建过程t40
3.2.1 创建Application Contextt41
3.2.2 获得Application Contextt47
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章 开机动画bootanimationt108
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 Watchdogt207
10.3 Android系统异常问题t217
10.3.1 Android死机t218
10.3.2 Android系统重启t220
10.3.3 Android系统启动异常t233
第11章 ActivityManagerServicet236
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 Broadcastt280
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与GTSt331
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
内容介绍
本书基于Android 6.0源代码和实际案例,分析Android系统的框架原理和具体实现。由于Android框架里模块众多,本书只详细分析了框架里的一部分模块,涉及这些模块的原理、架构及代码实现等各个细节,尽量做到让读者知其然,又知其所以然。在Android官方网站,Android分了4层,从高到低分别是应用程序层、应用程序框架层、系统库层和Linux内核层。本书主要涉及应用程序层、应用程序框架层和系统库层。
作者介绍
何军,2010年从事Android工作至今,从Android1.6到现在的Android7.0,热爱Android、喜欢钻研、乐于分享。多年的框架开发和应用开发经验,应用商店有多个APP上线作品。热衷于Android源代码的研究,对Android的架构设计和实现原理有深刻的认识和理解。目前就职于某一手机厂商,任职Android Framework框架工程师,负责Framework与APP开发和维护。
评论晒单