• 深入解析Android虚拟机
21年品牌 40万+商家 超1.5亿件商品

深入解析Android虚拟机

全新正版 极速发货

63.13 6.4折 99 全新

仅1件

广东广州
认证卖家担保交易快速发货售后保障

作者钟世礼

出版社人民邮电出版社

ISBN9787115423535

出版时间2016-09

装帧其他

开本其他

定价99元

货号1201409819

上书时间2024-07-02

徐小智的书店

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
计算机硕士,精通C、C++、Linux、Java开发技术,擅长多媒体硬件处理、多媒体信号采集、嵌入式系统集成、物联网、大数据等开发技术,对蓝牙技术、传感器、NFC数据传播、红外传输技术有独特的见解。毕业后就职于施耐德公司,负责智能家居系统的研究、开发和产品设计工作,和开发团队一起研究出多款功能强大的智能家居、健康仪器、智能电视、车载设备等大型系统。在Android底层架构和驱动开发方面有着丰富的经验,硬件驱动开发专家。

目录
目录

章  获取并编译Android源码  1
1.1  获取Android源码  1
1.1.1  在Linux系统获取Android
源码  1
1.1.2  在Windows平台获取Android
源码  2
1.1.3  Windows获取Android L源码  4
1.2  分析Android源码结构  6
1.3  编译Android源码  8
1.3.1  搭建编译环境  8
1.3.2  开始编译  9
1.3.3  在模拟器中运行  10
1.3.4  常见的错误分析  10
1.3.5  实践演练—演示两种编译Android程序的方法  11
1.4  编译Android Kernel  14
1.4.1  获取Goldfish内核代码  14
1.4.2  获取MSM内核代码  17
1.4.3  获取OMAP内核代码  17
1.4.4  编译Android的Linux内核  17
第2章  Java虚拟机基础  19
2.1  虚拟机的作用  19
2.2  Java虚拟机概述  20
2.2.1  JVM的数据类型  20
2.2.2  Java虚拟机体系结构  21
2.2.3  JVM的生命周期  25
2.3  JVM的安全性  26
2.3.1  JVM的安全模型  26
2.3.2  沙箱模型的4种组件  27
2.3.3  分析Java的策略机制  28
2.4  网络移动性  29
2.4.1  现实需要网络移动性  29
2.4.2  网络移动性  30
2.5  内存异常和垃圾处理  31
2.5.1  内存分配中的栈和堆  31
2.5.2  运行时的数据区域  33
2.5.3  对象访问  34
2.5.4  内存泄露  35
2.5.5  JVM的垃圾收集策略  36
2.5.6  垃圾收集器  37
2.6  Java内存模型  37
2.6.1  Java内存模型概述  38
2.6.2  主内存与工作内存  38
2.6.3  内存间交互操作  39
第3章  Dalvik和ART基础  40
3.1  Dalvik VM和JVM的差异  40
3.2  Dalvik虚拟机的主要特征  41
3.3  Dalvik VM架构  42
3.3.1  Dalvik虚拟机的代码结构  42
3.3.2  dx工具  44
3.3.3  Dalvik VM的进程管理  44
3.3.4  Android的初始化流程  44
3.4  Dalvik VM控制VM命令详解  45
3.4.1  基本命令  45
3.4.2  扩展的JNI检测  45
3.4.3  断言  46
3.4.4  字节码校验和优化  46
3.4.5  Dalvik VM的运行模式  47
3.4.6  死锁预测  47
3.4.7  dump堆栈追踪  48
3.4.8  dex文件和校验  48
3.4.9  产生标志位  48
3.5  ART机制基础  48
3.5.1  什么是ART模式  48
3.5.2  ART优化机制基础  50
第4章  分析JNI  52
4.1  JNI的本质  52
4.2  分析Java层  54
4.2.1  加载JNI库  54
4.2.2  实现扫描工作  55
4.2.3  读取并保存信息  56
4.2.4  删除SD卡外的信息  58
4.2.5  直接转向JNI  58
4.2.6  扫描函数scanFile  59
4.2.7  JNI中的异常处理  59
4.3  分析JNI层  60
4.3.1  将Native对象的指针保存到
Java对象  60
4.3.2  创建Native层的MediaScanner
对象  60
4.4  Native(本地)层  61
4.4.1  注册JNI函数  61
4.4.2  完成注册工作  63
4.4.3  动态注册  64
4.4.4  处理路径参数  65
4.4.5  扫描文件  66
4.4.6  添加TAG信息  66
4.4.7  总结函数JNI_OnLoad()与函数JNI_OnUnload()的用途  67
4.4.8  Java与JNI基本数据类型
转换  67
4.4.9  JNIEnv接口  69
4.4.10  JNI中的环境变量  70
第5章  分析内存系统  71
5.1  分析Android的进程通信机制  71
5.1.1  Android的进程间通信(IPC)
机制Binder  71
5.1.2  Service Manager是Binder
机制的上下文管理者  72
5.1.3  Service Manager服务  86
5.2  匿名共享内存子系统详解  89
5.2.1  基础数据结构  89
5.2.2  初始化处理  90
5.2.3  打开匿名共享内存设备文件  91
5.2.4  内存映射  93
5.2.5  读写操作  94
5.2.6  锁定和解锁  95
5.2.7  回收内存块  100
5.3  C++访问接口层详解  101
5.3.1  接口MemoryBase  101
5.3.2  接口MemoryBase  108
5.4  Java访问接口层详解  111
第6章  Android程序的生命周期管理  115
6.1  Android程序的生命周期  115
6.1.1  进程和线程  115
6.1.2  进程的类型  116
6.2  Activity的生命周期  116
6.2.1  Activity的几种状态  117
6.2.2  分解剖析Activity  117
6.2.3  几个典型的场景  119
6.2.4  管理Activity的生命周期  119
6.2.5  Activity的实例化与启动  120
6.2.6  Activity的暂停与继续  120
6.2.7  Activity的关闭/销毁与
重新运行  121
6.2.8  Activity的启动模式  121
6.3  进程与线程  122
6.3.1  进程  122
6.3.2  线程  123
6.3.3  线程安全的方法  123
6.3.4  Android的线程模型  123
6.4  测试生命周期  125
6.5  Service的生命周期  129
6.5.1  Service的基本概念和用途  129
6.5.2  Service的生命周期详解  129
6.5.3  Service与Activity通信  129
6.6  Android广播的生命周期  133
6.6.1  Android 的广播机制  133
6.6.2  编写广播程序  133
6.7  ART进程管理  135
第7章  IPC进程通信机制  147
7.1  Binder机制概述  147
7.2  Service Manager是Binder机制的
上下文管理者  148
7.2.1  入口函数  148
7.2.2  打开Binder设备文件  149
7.2.3  创建设备文件  149
7.2.4  管理内存映射地址空间  154
7.2.5  发生通知  156
7.2.6  循环等待  161
7.3  内存映射  162
7.3.1  实现内存分配功能  162
7.3.2  分配物理内存  164
7.3.3  释放物理页面  166
7.3.4  分配内核缓冲区  167
7.3.5  释放内核缓冲区  168
7.3.6  查询内核缓冲区  170
第8章  init进程详解  171
8.1  init基础  171
8.2  分析入口函数  172
8.3  配置文件详解  174
8.3.1  init.rc简介  174
8.3.2  分析init.rc的过程  176
8.4  解析service  179
8.4.1  Zygote对应的service action  179
8.4.2  init组织service  180
8.4.3  函数parse_service和parse_line_service  181
8.5  字段on  184
8.5.1  Zygote对应的on action  184
8.5.2  init组织on  185
8.5.3  解析on用到的函数  186
8.6  在init控制service  186
8.6.1  启动Zygote  186
8.6.2  启动service  187
8.6.3  4种启动service的方式  191
8.7  控制属性服务  194
8.7.1  引入属性  194
8.7.2  初始化属性服务  197
8.7.3  启动属性服务  197
8.7.4  处理设置属性的请求  200
第9章  Dalvik VM的进程系统  202
9.1  Zygote(孕育)进程详解  202
9.1.1  Zygote基础  202
9.1.2  分析Zygote的启动过程  203
9.2  System进程详解  216
9.2.1  启动System进程前的准备
工作  216
9.2.2  分析SystemServer  217
9.2.3  分析EntropyService  220
9.2.4  分析DropBoxManagerService  222
9.2.5  分析DiskStatsService  227
9.2.6  分析DeviceStorageManager Service  231
9.2.7  分析SamplingProfilerService  233
9.2.8  分析ClipboardService  241
9.3  应用程序进程详解  247
9.3.1  创建应用程序  247
9.3.2  启动线程池  256
9.3.3  创建信息循环  257
0章  Dalvik VM运作流程详解  259
10.1  Dalvik VM相关的可执行程序  259
10.1.1  dalvikvm、dvz和app_process
  简介  259
10.1.2  对比app_process和dalvikvm的
  执行过程  260
10.2  初始化Dalvik虚拟机  262
10.2.1  开始虚拟机的准备工作  262
10.2.2  初始化跟踪显示系统  262
10.2.3  初始化垃圾回收器  263
10.2.4  初始化线程列表和主线程
  环境参数  263
10.2.5  分配内部操作方法的表格
  内存  264
10.2.6  初始化虚拟机的指令码相关
  的内容  264
10.2.7  分配指令寄存器状态的
  内存  264
10.2.8  分配指令寄存器状态的内存
  和最基本用的Java库  265
10.2.9  初始化使用的Java类库
  线程类  266
10.2.10  初始化虚拟机使用的异常
  Java类库  267
10.2.11  初始化其他对象  268
10.3  启动Zygote  276
10.3.1  在init.rc中配置Zygote启动
  参数  276
10.3.2  启动Socket服务端口  276
10.3.3  加载preload-classes  277
10.3.4  加载preload-resources  277
10.3.5  使用folk启动新进程  278
10.4  启动SystemServer进程  278
10.4.1  启动各种系统服务线程  279
10.4.2  启动个Activity  280
10.5  加载class类文件  281
10.5.1  DexFile在内存中的映射  281
10.5.2  ClassObject—Class在
  加载后的表现形式  283
10.5.3  加载Class并生成相应
  ClassObject的函数  283
10.5.4  加载基本类库文件  284
10.5.5  加载用户类文件  284
1章  DEX文件详解  285
11.1  DEX文件介绍  285
11.2  DEX文件的格式  285
11.2.1  map_list  286
11.2.2  string_id_item  288
11.2.3

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP