| 作 者: | 罗升阳 |
| 出版社: | 电子工业出版社 |
| 丛编项: | |
| 版权说明: | 本书为出版图书,暂不支持在线阅读,请支持正版图书 |
| 标 签: | 移动开发 |
| ISBN | 出版时间 | 包装 | 开本 | 页数 | 字数 |
|---|---|---|---|---|---|
| 未知 | 暂无 | 暂无 | 未知 | 0 | 暂无 |
第1篇 初识Android系统第1章
准备知识................................................................21.1
Linux内核参考书籍..................................................21.2
Android应用程序参考书籍....................................... 31.3
下载、编译和运行Android源代码........................... 31.3.1
下载Android源代码...........................................41.3.2
编译Android源代码...........................................41.3.3
运行Android模拟器...........................................51.4
下载、编译和运行Android内核源代码............................................................61.4.1
下载Android内核源代码................................... 61.4.2
编译Android内核源代码................................... 71.4.3
运行Android模拟器...........................................81.5
开发第一个Android应用程序................................... 81.6
单独编译和打包Android应用程序模块..........................................................111.6.1
导入单独编译模块的mmm命令...............................................................111.6.2
单独编译Android应用程序模块...............................................................121.6.3
重新打包Android系统镜像文件...............................................................12第2章
硬件抽象层.......................................................132.1
开发Android硬件驱动程序..................................... 142.1.1
实现内核驱动程序模块.................................. 142.1.2
修改内核Kconfig文件...................................... 212.1.3
修改内核Makefile文件..................................... 222.1.4
编译内核驱动程序模块.................................. 222.1.5
验证内核驱动程序模块.................................. 232.2
开发C可执行程序验证Android硬件驱动程序...............................................242.3
开发Android硬件抽象层模块................................. 262.3.1
硬件抽象层模块编写规范............................... 262.3.2
编写硬件抽象层模块接口............................... 292.3.3
硬件抽象层模块的加载过程........................... 332.3.4
处理硬件设备访问权限问题........................... 362.4
开发Android硬件访问服务..................................... 382.4.1
定义硬件访问服务接口.................................. 382.4.2
实现硬件访问服务..........................................392.4.3
实现硬件访问服务的JNI方法.......................... 402.4.4
启动硬件访问服务..........................................432.5
开发Android应用程序来使用硬件访问服务..................................................44第3章
智能指针...............................................................493.1
轻量级指针.............................................................503.1.1
实现原理分析................................................503.1.2
应用实例分析................................................533.2
强指针和弱指针.....................................................543.2.1
强指针的实现原理分析.................................. 553.2.2
弱指针的实现原理分析.................................. 613.2.3
应用实例分析................................................67第2篇 Android专用驱动系统第4章
Logger日志系统.............................................744.1
Logger日志格式.......................................................754.2
Logger日志驱动程序..............................................764.2.1
基础数据结构................................................774.2.2
日志设备的初始化过程.................................. 784.2.3
日志设备文件的打开过程............................... 834.2.4
日志记录的读取过程...................................... 844.2.5
日志记录的写入过程...................................... 884.3
运行时库层日志库.................................................934.4
C/C++日志写入接口.............................................1004.5
Java日志写入接口................................................1044.6
Logcat工具分析.....................................................1104.6.1
基础数据结构..............................................1114.6.2
初始化过程..................................................1154.6.3
日志记录的读取过程.................................... 1274.6.4
日志记录的输出过程.................................... 132第5章
Binder进程间通信系统............................... 1445.1
Binder驱动程序.....................................................1455.1.1
基础数据结构..............................................1465.1.2
Binder设备的初始化过程.............................. 1645.1.3
Binder设备文件的打开过程.......................... 1655.1.4
Binder设备文件的内存映射过程............................................................1665.1.5
内核缓冲区管理...........................................1735.2
Binder进程间通信库.............................................1835.3
Binder进程间通信应用实例................................. 1885.4
Binder对象引用计数技术..................................... 1965.4.1
Binder本地对象的生命周期.......................... 1975.4.2
Binder实体对象的生命周期.......................... 2015.4.3
Binder引用对象的生命周期.......................... 2045.4.4
Binder代理对象的生命周期.......................... 2095.5
Binder对象死亡通知机制..................................... 2125.5.1
注册死亡接收通知........................................2135.5.2
发送死亡接收通知........................................2165.5.3
注销死亡接收通知........................................2215.6
ServiceManager的启动过程..................................2245.6.1
打开和映射Binder设备文件.......................... 2265.6.2
注册为Binder上下文管理者.......................... 2275.6.3
循环等待Client进程请求............................... 2315.7
ServiceManager代理对象的获取过程...........................................................2385.8
Service组件的启动过程........................................2445.8.1
注册Service组件............................................2455.8.2
启动Binder线程池.........................................2895.9
Service代理对象的获取过程................................ 2915.10
Binder进程间通信机制的Java接口.............................................................3005.10.1
ServiceManager的Java代理对象的获取过程..........................................3005.10.2
Java服务接口的定义和解析..................................................................3105.10.3
Java服务的启动过程.................................... 3135.10.4
Java服务代理对象的获取过程..............................................................3205.10.5
Java服务的调用过程.................................... 323第6章
Ashmem匿名共享内存系统..............................................................3276.1
Ashmem驱动程序.................................................3286.1.1
基础数据结构..............................................3286.1.2
匿名共享内存设备的初始化过程...........................................................3306.1.3
匿名共享内存设备文件的打开过程.......................................................3326.1.4
匿名共享内存设备文件的内存映射过程................................................3346.1.5
匿名共享内存块的锁定和解锁过程.......................................................3366.1.6
匿名共享内存块的回收过程..................................................................3446.2
运行时库cutils的匿名共享内存访问接口....................................................3456.3
匿名共享内存的C++访问接口............................. 3496.3.1
MemoryHeapBase.........................................3496.3.2
MemoryBase.................................................3596.3.3
应用实例.....................................................3646.4
匿名共享内存的Java访问接口............................. 3706.4.1
MemoryFile..................................................3706.4.2
应用实例.....................................................3756.5
匿名共享内存的共享原理.................................... 386第3篇 Android应用程序框架第7章
Activity组件的启动过程............................. 3927.1
Activity组件应用实例............................................3927.2
根Activity组件的启动过程.................................... 3987.3
子Activity组件在进程内的启动过程............................................................4327.4
子Activity组件在新进程中的启动过程........................................................440第8章
Service组件的启动过程............................ 4438.1
Service组件应用实例.............................................4438.2
Service组件在新进程中的启动过程.............................................................4518.3
Service组件在进程内的绑定过程.................................................................463第9章
Android系统广播机制................................. 4869.1
广播机制应用实例...............................................4879.2
广播接收者的注册过程........................................4939.3
广播的发送过程...................................................501第10章
ContentProvider组件的实现原理.................................................52410.1
ContentProvider组件应用实例........................... 52510.1.1
ArticlesProvider...........................................52510.1.2
Article.........................................................53510.2
ContentProvider组件的启动过程................................................................55010.3
ContentProvider组件的数据共享原理........................................................57310.3.1
数据共享模型.............................................57310.3.2
数据传输过程.............................................57610.4
ContentProvider组件的数据更新通知机制................................................59610.4.1
注册内容观察者..........................................59710.4.2
发送数据更新通知......................................603第11章
Zygote和System进程的启动过程.................................................61111.1
Zygote进程的启动脚本........................................61111.2
Zygote进程的启动过程........................................61411.3
System进程的启动过程.......................................622第12章
Android应用程序进程的启动过程.................................................63012.1
应用程序进程的创建过程.................................. 63012.2
Binder线程池的启动过程................................... 63912.3
消息循环的创建过程..........................................641第13章
Android应用程序的消息处理机制.................................................64513.1
创建线程消息队列.............................................64513.2
线程消息循环过程.............................................65013.3
线程消息发送过程.............................................65513.4
线程消息处理过程.............................................660第14章
Android应用程序的键盘消息处理机制.......................................66714.1
键盘消息处理模型.............................................66714.2
InputManager的启动过程.................................... 67014.2.1
创建InputManager......................................67014.2.2
启动InputManager......................................67314.2.3
启动InputDispatcher....................................67514.2.4
启动InputReader........................................67714.3
InputChannel的注册过程..................................... 68814.3.1
创建InputChannel.......................................68914.3.2
注册Server端InputChannel...........................69714.3.3
注册系统当前激活的应用程序窗口.....................................................70114.3.4
注册Client端InputChannel...........................70614.4
键盘消息的分发过程..........................................70914.4.1
InputReader获得键盘事件........................... 71014.4.2
InputDispatcher分发键盘事件...............................................................71714.4.3
系统当前激活的应用程序窗口获得键盘消息.......................................72714.4.4
InputDispatcher获得键盘事件处理完成通知.........................................743<