❶ android框架揭秘的目录
《android框架揭秘》
第1章android framework概要1
1.1android源代码组成2
1.2通过启动过程分析android framework3
第2章搭建android开发环境7
2.1主机环境构成7
2.1.1安装virtualbox7
2.1.2安装ubuntu8
2.2搭建android平台编译环境9
2.2.1编译工具10
2.2.2安装repo11
2.2.3下载android源代码11
2.2.4编译android源代码12
2.3搭建android sdk开发环境13
2.3.1下载、安装eclipse13
2.3.2下载android sdk starter13
2.3.3安装adt插件14
2.3.4设置android sdk路径16
2.3.5安装android sdk16
2.4开发android应用程序18
.2.5应用程序framework源码级别调试21
2.5.1加载应用程序framework源21
2.5.2调试helloworld framework(源码级)24
2.6小结27
第3章init进程29
3.1init进程运行过程29
3.2init进程源码分析31
3.3init.rc脚本文件分析与执行40
3.3.1动作列表(action list)41
3.3.2服务列表(service list)43
3.3.3init.rc文件分析函数44
3.3.4动作列表与服务列表的运行48
3.4创建设备节点文件52
3.4.1创建静态设备节点52
3.4.2动态设备感知57
3.5进程的终止与再启动58
3.6属性服务62
3.6.1属性初始化63
3.6.2属性变更请求处理65
3.7小结67
第4章jni与ndk69
4.1android与jni69
4.2jni的基本原理72
4.2.1在java中调用c库函数72
4.2.2小结83
4.3调用jni函数84
4.3.1调用jni函数的示例程序结构84
4.3.2java层代码(jnifuncmain.java)85
4.3.3分析jni本地函数代码87
4.3.4编译及运行结果101
4.3.5在android中的应用举例102
4.4在c程序中运行java类102
4.4.1invocation api应用示例103
4.4.2编译及运行108
4.4.3invocation api在android中的应用举例:zygote进程110
4.5直接注册jni本地函数110
4.5.1加载本地库时,注册jni本地函数111
4.5.2android中的应用举例115
4.6使用android ndk开发122
4.6.1安装android ndk123
4.6.2使用android ndk开发步骤127
4.6.3小结136
第5章zygote137
5.1zygote是什么137
5.2由app_process运行zygoteinit class142
5.2.1生成appruntime对象143
5.2.2调用appruntime对象144
5.2.3创建dalvik虚拟机145
5.2.4运行zygoteinit类146
5.3zygoteinit类的功能147
5.3.1绑定/dev/socket/zygote套接字149
5.3.2加载应用程序framework中的类与平台资源150
5.3.3运行systemserver155
5.3.4运行新android应用程序158
第6章android服务概要163
6.1示例程序:理解android服务的运行163
6.2android服务的种类166
6.3android应用程序服务168
6.4android系统服务182
6.5运行系统服务185
6.5.1分析媒体服务器(media server)的运行代码186
6.5.2分析系统服务器(system server)的运行代码188
6.6android service framework、binder driver概要及相关术语192
第7章android binder ipc197
7.1linux内存空间与binder driver197
7.2android binder model199
7.2.1binder ipc数据传递201
7.2.2binder ipc数据流202
7.2.3binder协议(binder protocol)204
7.2.4rpc代码与rpc数据206
7.2.5binder寻址(binder addressing)206
7.3android binder driver分析209
7.3.1从进程的角度看服务的使用210
7.3.2从binder driver角度看服务的使用214
7.3.3binder driver函数分析219
7.4context manager251
7.5小结256
第8章android service framework257
8.1服务框架(service framework)257
8.2服务框架(service framework)的构成259
8.2.1各层构成元素的配置260
8.2.2各层构成元素间的相互作用261
8.2.3类的结构264
8.3运行机制266
8.3.1服务接口267
8.3.2服务273
8.3.3服务代理(service proxy)276
8.3.4binder ipc处理280
8.4本地服务管理器(native service manager)282
8.4.1service manager概要282
8.4.2service manager类284
8.4.3service manager的运行286
8.5编写本地服务314
8.5.1设计helloworld系统服务314
8.5.2helloworld服务接口315
8.5.3helloworld服务316
8.5.4helloworld服务代理319
8.5.5运行helloworld服务320
8.6小结325
第9章本地系统服务(native system service)分析327
9.1相机服务(cameral service)327
9.2相机应用程序328
9.3相机服务框架(camera service framework)331
9.3.1相机服务框架层次结构331
9.3.2相机服务框架类333
9.4相机服务框架的运行334
9.4.1初始化相机服务334
9.4.2连接相机服务335
9.4.3相机服务连接过程分析337
9.4.4相机设置与控制340
9.4.5相机设置与控制分析341
9.4.6相机事件处理342
9.4.7相机事件处理分析343
9.5小结345
第10章java服务框架(java service framework)347
10.1java服务框架(java service framework)347
10.1.1java服务框架的层次结构348
10.1.2java服务框架中各个类间的相互作用351
10.2运行机制354
10.2.1java服务框架初始化355
10.2.2binder355
10.2.3binderproxy361
10.2.4parcel364
10.3java系统服务的实现367
10.3.1闹钟服务(alarm manager service)分析368
10.3.2编写helloworldservice系统服务372
10.3.3使用helloworldservice系统服务375
10.3.4编译helloworldservice系统服务378
10.4java service manager380
10.4.1java service manager简介380
10.4.2binderinternal381
10.4.3java service manager的运行实例383
10.5使用aidl生成服务代理与服务stub389
10.5.1在aidl文件中定义服务接口390
10.5.2使用aidl编译器,生成服务接口、服务stub以及服务代理391
10.5.3继承stub类创建服务392
10.5.4服务接口的调用393
10.6小结394
第11章java系统服务运行分析395
11.1activity manager service395
11.2activity manager service创建服务分析397
11.2.1controller activity-调用startservice()方法398
11.2.2activity manager service的startservice()方法的调用过程(使用binder rpc)399
11.2.3activity manager service——运行startservice() stub方法405
11.2.4运行activitythread类的main() 方法409
11.2.5activity manager service——attachapplication() stub方法414
11.3小结421
附录aidl语法423