购物车中还没有商品,赶紧选购吧!
条形条码:
Android进阶解密
商 城 价
降价通知
市 场 价
累计评价0
累计销量0
手机购买
商品二维码
配送
服务
天添网自营 发货并提供售后服务。
数量
库存  个
温馨提示

·不支持退换货服务

  • 商品详情
手机购买
商品二维码
加入购物车
价格:
数量:
库存  个

商品详情

商品名称:Android进阶解密
商品编号:Z29714456
店铺:天添网自营
上架时间:2020-09-10 18:46:43

编辑推荐



null


内容简介



本书是一本Android进阶书籍,主要针对Android 8.0系统源码并结合应用开发相关知识进行介绍。本书共分为17章,从3个方面来组织内容。第一方面介绍Android应用开发所需要掌握的系统源码知识,第二方面介绍JNI、ClassLoader、Java虚拟机、DVM&ART虚拟机和Hook等技术,第三方面介绍热修复原理、插件化原理、绘制优化和内存优化等与应用开发相关的知识点。3个方面有所关联并形成一个知识体系,从而使Android开发者能通过阅读本书达到融会贯通的目的。本书适合有一定基础的Android应用开发工程师、Android系统开发工程师和对Android系统源码感兴趣的读者阅读。


作者介绍



刘望舒,资深开发工程师,Android进阶二部曲《Android进阶之光》《Android进阶解密》的作者,公众号“刘望舒”的作者,CSDN人气博主。他在博客中构建了“Android相关原创知识体系”,该体系全面且深入并广获好评。他拥有近10年的开发经验和多年的技术管理经验,对Android框架层及应用层开发有着独到、深入的理解。


目 录



第1章 Android系统架构 1 1.1 Android系统架构 1 1.2 Android系统源码目录 4 1.2.1 整体结构 4 1.2.2 应用层部分 5 1.2.3 应用框架层部分 6 1.2.4 C/C++程序库部分 6 1.3 源码阅读 7 1.3.1 在线阅读 7 1.3.2 使用Source Insight 9 1.4 本章小结 12 第2章 Android系统启动 13 2.1 init进程启动过程 13 2.1.1 引入init进程 13 2.1.2 init进程的入口函数 14 2.1.3 解析init.rc 17 2.1.4 解析Service类型语句 19 2.1.5 init启动Zygote 20 2.1.6 属性服务 23 2.1.7 init进程启动总结 27 2.2 Zygote进程启动过程 27 2.2.1 Zygote概述 28 2.2.2 Zygote启动脚本 28 2.2.3 Zygote进程启动过程介绍 30 2.2.4 Zygote进程启动总结 38 2.3 SystemServer处理过程 39 2.3.1 Zygote处理SystemServer进程 39 2.3.2 解析SystemServer进程 44 2.3.3 SystemServer进程总结 48 2.4 Launcher启动过程 48 2.4.1 Launcher概述 48 2.4.2 Launcher启动过程介绍 49 2.4.3 Launcher中应用图标显示过程 54 2.5 Android系统启动流程 59 2.6 本章小结 60 第3章 应用程序进程启动过程 61 3.1 应用程序进程简介 61 3.2 应用程序进程启动过程介绍 62 3.2.1 AMS发送启动应用程序进程请求 62 3.2.2 Zygote接收请求并创建应用程序进程 68 3.3 Binder线程池启动过程 75 3.4 消息循环创建过程 78 3.5 本章小结 80 第4章 四大组件的工作过程 81 4.1 根Activity的启动过程 82 4.1.1 Launcher请求AMS过程 82 4.1.2 AMS到ApplicationThread的调用过程 85 4.1.3 ActivityThread启动Activity的过程 94 4.1.4 根Activity启动过程中涉及的进程 99 4.2 Service的启动过程 101 4.2.1 ContextImpl到AMS的调用过程 101 4.2.2 ActivityThread启动Service 103 4.3 Service的绑定过程 110 4.3.1 ContextImpl到AMS的调用过程 111 4.3.2 Service的绑定过程 112 4.4 广播的注册、发送和接收过程 122 4.4.1 广播的注册过程 122 4.4.2 广播的发送和接收过程 127 4.5 Content Provider的启动过程 137 4.5.1 query方法到AMS的调用过程 137 4.5.2 AMS启动Content Provider的过程 143 4.6 本章小结 148 第5章 理解上下文Context 149 5.1 Context的关联类 149 5.2 Application Context的创建过程 151 5.3 Application Context的获取过程 156 5.4 Activity的Context创建过程 156 5.5 Service的Context创建过程 161 5.6 本章小结 163 第6章 理解ActivityManagerService 164 6.1 AMS家族 164 6.1.1 Android 7.0的AMS家族 164 6.1.2 Android 8.0的AMS家族 170 6.2 AMS的启动过程 171 6.3 AMS与应用程序进程 174 6.4 AMS重要的数据结构 176 6.4.1 解析ActivityRecord 177 6.4.2 解析TaskRecord 177 6.4.3 解析ActivityStack 178 6.5 Activity栈管理 181 6.5.1 Activity任务栈模型 181 6.5.2 Launch Mode 182 6.5.3 Intent的FLAG 182 6.5.4 taskAffinity 185 6.6 本章小结 186 第7章 理解WindowManager 187 7.1 Window、WindowManager和WMS 187 7.2 WindowManager的关联类 188 7.3 Window的属性 193 7.3.1 Window的类型和显示次序 193 7.3.2 Window的标志 195 7.3.3 软键盘相关模式 196 7.4 Window的操作 196 7.4.1 系统窗口的添加过程 197 7.4.2 Activity的添加过程 202 7.4.3 Window的更新过程 203 7.5 本章小结 206 第8章 理解WindowManagerService 207 8.1 WMS的职责 207 8.2 WMS的创建过程 209 8.3 WMS的重要成员 217 8.4 Window的添加过程(WMS处理部分) 219 8.5 Window的删除过程 225 8.6 本章小结 230 第9章 JNI原理 231 9.1 系统源码中的JNI 232 9.2 MediaRecorder框架中的JNI 233 9.2.1 Java data-xsswork层的MediaRecorder 233 9.2.2 JNI层的MediaRecorder 234 9.2.3 Native方法注册 235 9.3 数据类型的转换 239 9.3.1 基本数据类型的转换 240 9.3.2 引用数据类型的转换 240 9.4 方法签名 242 9.5 解析JNIEnv 244 9.5.1 jfieldID和jmethodID 245 9.5.2 使用jfieldID和jmethodID 247 9.6 引用类型 249 9.6.1 本地引用 249 9.6.2 全局引用 249 9.6.3 弱全局引用 250 9.7 本章小结 251 第10章 Java虚拟机 252 10.1 概述 252 10.1.1 Java虚拟机家族 253 10.1.2 Java虚拟机执行流程 253 10.2 Java虚拟机结构 254 10.2.1 Class文件格式 255 10.2.2 类的生命周期 256 10.2.3 类加载子系统 257 10.2.4 运行时数据区域 258 10.3 对象的创建 260 10.4 对象的堆内存布局 262 10.5 oop-klass模型 263 10.6 垃圾标记算法 266 10.6.1 Java中的引用 266 10.6.2 引用计数算法 267 10.6.3 根搜索算法 269 10.7 Java对象在虚拟机中的生命周期 270 10.8 垃圾收集算法 271 10.8.1 标记—清除算法 271 10.8.2 复制算法 272 10.8.3 标记—压缩算法 273 10.8.4 分代收集算法 274 10.9 本章小结 275 第11章 Dalvik和ART 276 11.1 Dalvik虚拟机 276 11.1.1 DVM与JVM的区别 276 11.1.2 DVM架构 278 11.1.3 DVM的运行时堆 280 11.1.4 DVM的GC日志 280 11.2 ART虚拟机 281 11.2.1 ART与DVM的区别 281 11.2.2 ART的运行时堆 282 11.2.3 ART的GC日志 283 11.3 DVM和ART的诞生 285 11.4 本章小结 288 第12章 理解ClassLoader 289 12.1 Java中的ClassLoader 289 12.1.1 ClassLoader的类型 289 12.1.2 ClassLoader的继承关系 291 12.1.3 双亲委托模式 292 12.1.4 自定义ClassLoader 295 12.2 Android中的ClassLoader 298 12.2.1 ClassLoader的类型 298 12.2.2 ClassLoader的继承关系 300 12.2.3 ClassLoader的加载过程 302 12.2.4 BootClassLoader的创建 306 12.2.5 PathClassLoader的创建 309 12.3 本章小结 311 第13章 热修复原理 312 13.1 热修复的产生 312 13.2 热修复框架的种类和对比 313 13.3 资源修复 314 13.3.1 Instant Run概述 314 13.3.2 Instant Run的资源修复 315 13.4 代码修复 318 13.4.1 类加载方案 319 13.4.2 底层替换方案 321 13.4.3 Instant Run方案 322 13.5 动态链接库的修复 323 13.5.1 System的load和loadLibarary方法 323 13.5.2 nativeLoad方法分析 327


媒体评论



null


对比栏

1

您还可以继续添加

2

您还可以继续添加

3

您还可以继续添加

4

您还可以继续添加