基本信息
- 商品名:正版【满48包邮】深入浅出Android源代码97871□1304873电子工业
- ISBN:9787121304873
- 定价:99
- 出版社:电子工业出版社
- 作者:何军
参考信息(以实物为准)
- 出版时间:2017-04-01
- 印刷时间:2017-04-01
- 版次:1
- 印次:1
- 包装:平装
- 开本:16开
- 用纸:胶版纸
- 页数:544
- 字数:745000
编辑推荐
基于Android源代码和实际开发案例分析,让读者在学习过程中进一步吃透源代码。
内容简介
本书基于Android 6.0源代码和实际案例,分析Android系统的框架原理和具体实现。由于Android框架里模块众多,本书只详细分析了框架里的一部分模块,涉及这些模块的原理、架构及代码实现等各个细节,尽量做到让读者知其然,又知其所以然。在Android官方网站,Android分了4层,从高到低分别是应用程序层、应用程序框架层、系统库层和Linux内核层。本书主要涉及应用程序层、应用程序框架层和系统库层。
前言序言
说 明
1.本书涉及C、C++和Java语言,阅读本书□好会这三种编程语言,同时本书还会涉及少量Linux,如果懂Linux更佳。
□.本书使用两种格式来对代码进行解释。
□□种,举例如下。
class Condition {
public:
enum {
PRIVATE = 0,
SHARED = 1
};
//定义两种枚举类型:PRIVATE表示本进程内部使用,SHARED表示用于跨进程共
//享,如果使用Condition时没有指定具体类型,则默认是PRIVATE类型。
……
}
这种方式是在代码段内部解释代码,原因是有些类和方法比较复杂,代码非常长,贴完代码之后,可能已经几页纸了,如果这时候在代码段的□后面去解释代码,读者还需要往前翻看需要解释的代码,十分不便。
第二种,举例如下。
public final boolean sendMessage(Message msg)
{
return sendMessageDelayed(msg, 0);
}
代码解释:这里的sendMessage() 方法会调用sendMessageDelayed() 方法,参数msg是具体的Message,而参数0表示这个消息不要□□处理。
由于这种方式的代码量比较少,可以边看代码边看解释,不用翻页,所以采用这种方式比较方便。
3.本书是基于Android源代码和实际开发案例分析的,所以阅读本书一定要结合源代码。
4.大家都知道代码块在Java里叫方法,在C里叫函数,笔者尽量在C、C++中使用“函数”这个叫法,在Java中使用“方法”这个叫法,但也有可能出现混淆。
5.本书使用了Visio、Edraw和StarUML这3个工具来画图,由于排版的问题,图也许会有不清楚的地方,如果发现这类问题,请发邮件至8131□6419@qq.com,我会尽快回复。
6.本书是我个人对Android的理解,难免会有错误,恳请大家指正。
目录
□□部分 Android基础篇
□□章 Android简介 □
1.1 Android简介 □
1.□ 阅读Android源代码 6
第□章 Android基础类 10
□.1 Android基础类简介 10
□.□ Thread类原理 11
□.3 Mutex与Condition □0
□.3.1 Mutex(AutoMutex)分析 □0
□.3.□ Condition代码分析 □4
□.4 Android系统智能指针 30
□.4.1 轻量级指针(lp) 30
□.4.□ 强指针(sp) 3□
第3章 Android上下文环境Context 37
3.1 Context简介 37
3.□ Application运行上下文环境Context的创建过程 40
3.□.1 创建Application Context 41
3.□.□ 获得Application Context 47
3.3 Activity运行上下文环境Context的创建过程 48
3.4 Service运行上下文环境Context的创建过程 55
第4章 Android消息机制 59
4.1 Android消息机制原理 59
4.□ 创建消息队列和进入消息循环过程 61
4.3 消息的发送过程 70
4.4 消息的处理过程 75
第二部分 Android框架篇
第5章 Android Init进程 78
5.1 Android Init进程简介 78
5.□ klog_init() 函数 83
5.3 process_kernel_cmdline() 函数 85
5.4 signal_handler_init() 函数 86
5.5 property_load_boot_defaults() 函数 89
5.6 属性服务 90
5.6.1 属性服务的初始化与启动 90
5.6.□ 属性的设置 91
5.6.3 属性值的获取 95
5.7 解析init.rc配置文件和启动service进程 96
5.7.1 init.rc文件基础介绍 96
5.7.□ 解析init.rc文件 100
5.7.3 启动service进程 104
第6章 开机动画bootanimation 108
6.1 开机动画bootanimation原理 108
6.□ 开机动画bootanimation的显示过程 111
6.3 开机动画bootanimation的退出过程 1□7
第7章 Zygote进程 135
7.1 Zygote进程基础介绍 135
7.□ Zygote进程的启动 139
7.□.1 调用startVM() 函数启动虚拟机 143
7.□.□ 调用startReg() 函数注册JNI方法 143
7.□.3 调用ZygoteInit类的main() 方法 145
7.3 启动system_server进程 150
7.4 启动APP应用程序进程 155
第8章 SystemServer进程 161
8.1 SystemServer系统服务 161
8.□ SystemServer创建框架核心服务 165
第9章 Android系统的开机与关机 175
9.1 Android系统的开机 175
9.□ Android系统的关机 185
9.3 案例分析 197
9.3.1 Android系统开机时间标志 197
9.3.□ Android系统关机时间标志 198
□□0章 Android系统异常问题 199
10.1 addr□line工具 199
10.□ Android Watchdog □07
10.3 Android系统异常问题 □17
10.3.1 Android死机 □18
10.3.□ Android系统重启 □□0
10.3.3 Android系统启动异常 □33
□□1章 ActivityManagerService □36
11.1 ActivityManagerService简介 □36
11.□ Activity的启动过程 □40
11.□.1 Launcher Activity的onPause() 过程 □41
11.□.□ Launcher Activity的onStop() 过程 □61
11.□.3 新Activity的onCreate()、onStart()和onResume() 过程 □64
11.3 Service的启动过程 □73
11.4 Broadcast □80
11.4.1 广播的注册过程 □8□
11.4.□ 广播的发送过程 □90
11.4.3 广播的处理过程 □95
11.5 进程内存管理 303
11.6 案例分析 3□0
11.6.1 与Activity有关的例子 3□0
11.6.□ 与BroadCast有关的例子 3□3
11.6.3 与进程内存有关的例子 3□9
□□□章 Android国际化 331
1□.1 CTS与GTS 331
1□.□ 全球紧急电话策略 337
1□.3 Android多语言 345
第三部分 Android ROM UI篇
□□3章 Android资源管理系统 354
13.1 资源管理简介 354
13.□ 资源初始化过程 361
13.□.1 AssetManager的构造方法 369
13.□.□ AssetManager.java的addAssetPath() 方法 374
13.□.3 Resources的构造方法 375
13.3 资源查找、解析、创建View过程 378
13.3.1 查找资源ID对应的不是文件的过程 380
13.3.□ 查找资源ID对应的是文件的过程 38□
13.4 主题换肤实现 396
□□4章 Android View系统 411
14.1 View系统简介 411
14.□ 应用程序Activity的创建 41□
14.3 Activity窗口对象PhoneWindow的创建 4□4
14.4 Activity根视图对象DecorView的创建 43□
14.5 ViewRootImpl的创建和添加DecorView对象 440
14.6 View的measure、layout和draw过程 453
14.6.1 View的measure过程 46□
14.6.□ View的layout过程 473
14.6.3 View的draw过程 478
14.7 View事件分发 493
14.8 案例分析 503
□□5章 Android控件 51□
15.1 Android系统控件分析 51□
15.1.1 系统控件简介 51□
15.1.□ 系统控件TextView的属性 514
15.1.3 系统控件TextView的onMeasure() 517
15.1.4 系统控件TextView的onLayout() 5□3
15.1.5 系统控件TextView的onDraw() 5□3
15.□ 自定义控件 5□4
15.□.1 定义自定义控件属性 5□5
15.□.□ 实现自定义控件 5□5
15.□.3 使用自定义控件 5□7
15.3 Android控件案例分析 5□7
作者简介
何军,□010年从事Android工作至今,从Android1.6到现在的Android7.0,热爱Android、喜欢钻研、乐于分享。多年的框架开发和应用开发经验,应用商店有多个APP上线作品。热衷于Android源代码的研究,对Android的架构设计和实现原理有深刻的认识和理解。目前就职于某一手机厂商,任职Android Framework框架工程师,负责Framework与APP开发和维护。