第1部分 基础篇
第1章 linux基础2
1.1 linux文件系统概述2
1.2 linux启动过程4
1.3 常用linux 命令6
1.4 shell脚本备忘9
1.4.1 获取输入10
1.4.2 变量定义10
1.4.3 条件判断11
1.4.4 while []…do… done语句12
1.4.5 for循环13
1.4.6 函数14
1.4.7 常用内置符号常量15
1.5 make脚本备忘15
1.5.1 一个简单的makefile文件16
1.5.2 变量的定义与赋值18
1.5.3 条件控制语句18
1.5.4 宏(函数)定义19
1.5.5 内置符号和变量22
1.5.6 模板目标(pattern target)23
1.5.7 目标特定的变量赋值(target-specific variable)24
1.5.8 常用选项25
第2章 java基础26
2.1 类装载器dexclassloader26
2.1.1 dexclassloader的调用方法27
2.1.2 基于类装载器设计一种“插件”架构29
2.2 jni调用机制32
2.2.1 java访问c33
2.2.2 c访问java35
2.2.3 在c中使用持久对象37
2.3 异步消息处理线程37
2.3.1 实现异步线程的一般思路38
2.3.2 android中异步线程的实现方法38
第3章 android源码下载及开发环境配置44
3.1 mac系统的配置44
3.1.1 硬盘格式的配置44
3.1.2 port的用法46
3.2 在linux中配置usb连接46
3.3 在eclipse中调试framework46
3.3.1 一段防止下载异常的脚本47
3.3.2 调试framework中的代码47
第4章 使用git51
4.1 安装git52
4.2 git仓库管理52
4.2.1 仓库的组成52
4.2.2 创建仓库54
4.2.3 分支管理55
4.3 git merge用法57
4.4 git rebase用法58
4.5 git cherry-pick用法61
4.6 git reset用法62
4.7 恢复到无引用提交63
4.8 git remote用法65
4.9 git 配置67
4.9.1 基本信息配置68
4.9.2 merge、diff工具配置68
4.9.3 .gitignore配置70
4.10 同时使用git和svn71
4.11 其他git常用命令示例72
4.11.1 git branch72
4.11.2 git checkout72
4.11.3 git log73
4.11.4 git commit --amend73
4.11.5 git cherry-pick sha-173
4.11.6 git merge-base74
4.11.7 git diff master…dev74
4.11.8 git revert75
4.11.9 git diff75
4.11.10 git rm75
4.11.11 git tag76
第2部分 内核篇
第5章 binder78
5.1 binder框架78
5.2 设计servier端80
5.3 binder客户端设计81
5.4 使用service类82
5.4.1 获取binder对象82
5.4.2 保证包裹内参数顺序aidl工具的使用83
5.5 系统服务中的binder对象88
5.5.1 servicemanager管理的服务88
5.5.2 理解manager90
第6章 framework概述92
6.1 framework框架92
6.1.1 服务端92
6.1.2 客户端93
6.1.3 linux驱动94
6.2 apk程序的运行过程94
6.3 客户端中的线程94
6.4 几个常见问题95
6.4.1 acitivity之间如何传递消息(数据)95
6.4.2 窗口相关的概念96
第7章 理解context98
7.1 context是什么98
7.2 一个应用程序中包含多少个context对象99
7.3 context相关类的继承关系99
7.4 创建context100
7.4.1 application对应的context101
7.4.2 activity对应的context102
7.4.3 service对应的context103
7.4.4 context之间的关系104
第8章 创建窗口的过程106
8.1 窗口的类型106
8.2 token变量的含义108
8.2.1 activity中的mtoken108
8.2.2 window中的mapptoken109
8.2.3 windowmanager.layoutparams中的token109
8.2.4 view中的token110
8.3 创建应用窗口111
8.4 创建子窗口121
8.4.1 dialog的创建122
8.4.2 popupwindow的创建126
8.4.3 contextmenu的创建127
8.4.4 optionmenu的创建132
8.5 系统窗口toast的创建136
8.5.1 toast调用流程137
8.5.2 toast添加窗口139
8.6 创建窗口示例139
第9章 framework的启动过程142
9.1 framework运行环境综述142
9.2 dalvik虚拟机相关的可执行程序143
9.2.1 dalvikvm144
9.2.2 dvz144
9.2.3 app_process145
9.3 zygote的启动147
9.3.1 在init.rc中配置zygote启动参数147
9.3.2 启动socket服务端口148
9.3.3 加载preload-classes151
9.3.4 加载preload-resources152
9.3.5 使用folk启动新的进程152
9.4 systemserver进程的启动155
9.4.1 启动各种系统服务线程156
9.4.2 启动第一个activity158
第10章 ams内部原理160
10.1 activity调度机制160
10.1.1 几个重要概念161
10.1.2 ams中的一些重要调度相关变量163
10.1.3 startactivity()的流程165
10.1.4 stopactivitylocked()停止activity183
10.1.5 按“home”键回到桌面的过程186
10.1.6 按“back”键回到上一个activity187
10.1.7 长按“home”键189
10.1.8 activity生命期的代码含义190
10.2 内存管理192
10.2.1 关闭而不退出192
10.2.2 android与linux的配合194
10.2.3 各种关闭程序的过程196
10.2.4 释放内存详解197
10.3 对ams中数据对象的理解211
10.3.1 常见的对象操作212
10.3.2 理解activity213
10.3.3 android多进程吗,是同时在运行多个应用程序吗213
10.4 activitygroup的内部机制214
10.4.1 tabactivity使用时的类关系结构215
10.4.2 localactivitymanager的内部机制217
10.4.3 activitygroup内部的activity生命期控制220
第11章 从输入设备中获取消息221
11.1 android消息获取过程概述221
11.2 与消息处理相关的源码文件分布223
11.3 创建inputdispatcher线程226
11.4 把窗口信息传递给inputdispatcher线程227
11.5 创建inputchannel229
11.6 在wms中注册inputchannel232
11.7 在客户进程中注册inputchannel233
11.8 wms中处理消息的时机234
11.9 客户窗口获取消息的时机235
第12章 屏幕绘图基础237
12.1 绘制屏幕的软件架构237
12.2 java客户端绘制调用过程239
12.3 c客户端绘制过程241
12.4 java客户端绘制相关类的关系244
第13章 view工作原理247
13.1 导论247
13.2 用户消息类型249
13.2.1 按键消息249
13.2.2 触摸消息250
13.3 按键消息派发过程252
13.3.1 keyevent.dispatcherstate中的长按监测252
13.3.2 按键消息总体派发过程254
13.3.3 根视图内部派发过程256
13.3.4 activity内部派发过程257
13.3.5 view类内部的onkeydown()和onkeyup()260
13.3.6 activity中的onkeydown()和onkeyup()261
13.3.7 phonewindow内部消息派发过程262
13.4 按键消息在wms中的派发过程263
13.5 触摸消息派发过程266
13.5.1 触摸消息总体派发过程266
13.5.2 根视图内部消息派发过程267
13.5.3 viewgroup内部消息派发过程268
13.5.4 各种消息监测的基本实现方法271
13.5.5 view内默认消息派发过程272
13.6 导致view树重新遍历的时机274
13.6.1 状态的分类274
13.6.2 导致view树重新遍历的总体诱因图275
......
需要材料百度网盘链接地址,请到微信小程序搜索“斌雅资料”,序列号:3,密钥:9988,查询资料获取。
网友评论