展开全部

主编推荐语

Android进阶开发知识,中高级开发者,全面覆盖系统启动、组件原理、性能优化等。

内容简介

本书主要介绍Android进阶开发的知识,如果说《Android进阶之光》定位是Android开发第2本书,则本书是第3本书,面向的读者是Android中高级开发。主要的内容包含Android系统启动过程、应用进程启动过程、Context、四大组件原理、AMS、WMS、JNI、虚拟机、ClassLoader、热修复、插件化、组件化、性能优化等内容。

目录

  • 版权信息
  • 前言
  • 为什么写这本书
  • 本书内容
  • 本书特色
  • 读者对象
  • 致谢
  • 勘误与互动
  • 本书互动地址
  • 第1章 Android系统架构
  • 1.1 Android系统架构
  • 1.2 Android系统源码目录
  • 1.2.1 整体结构
  • 1.2.2 应用层部分
  • 1.2.3 应用框架层部分
  • 1.2.4 C/C++程序库部分
  • 1.3 源码阅读
  • 1.3.1 在线阅读
  • 1.3.2 使用Source Insight
  • 1.4 本章小结
  • 第2章 Android系统启动
  • 2.1 init进程启动过程
  • 2.1.1 引入init进程
  • 2.1.2 init进程的入口函数
  • 2.1.3 解析init.rc
  • 2.1.4 解析Service类型语句
  • 2.1.5 init启动Zygote
  • 2.1.6 属性服务
  • 2.1.7 init进程启动总结
  • 2.2 Zygote进程启动过程
  • 2.2.1 Zygote概述
  • 2.2.2 Zygote启动脚本
  • 2.2.3 Zygote进程启动过程介绍
  • 2.2.4 Zygote进程启动总结
  • 2.3 SystemServer处理过程
  • 2.3.1 Zygote处理SystemServer进程
  • 2.3.2 解析SystemServer进程
  • 2.3.3 SystemServer进程总结
  • 2.4 Launcher启动过程
  • 2.4.1 Launcher概述
  • 2.4.2 Launcher启动过程介绍
  • 2.4.3 Launcher中应用图标显示过程
  • 2.5 Android系统启动流程
  • 2.6 本章小结
  • 第3章 应用程序进程启动过程
  • 3.1 应用程序进程简介
  • 3.2 应用程序进程启动过程介绍
  • 3.2.1 AMS发送启动应用程序进程请求
  • 3.2.2 Zygote接收请求并创建应用程序进程
  • 3.3 Binder线程池启动过程
  • 3.4 消息循环创建过程
  • 3.5 本章小结
  • 第4章 四大组件的工作过程
  • 4.1 根Activity的启动过程
  • 4.1.1 Launcher请求AMS过程
  • 4.1.2 AMS到ApplicationThread的调用过程
  • 4.1.3 ActivityThread启动Activity的过程
  • 4.1.4 根Activity启动过程中涉及的进程
  • 4.2 Service的启动过程
  • 4.2.1 ContextImpl到AMS的调用过程
  • 4.2.2 ActivityThread启动Service
  • 4.3 Service的绑定过程
  • 4.3.1 ContextImpl到AMS的调用过程
  • 4.3.2 Service的绑定过程
  • 4.4 广播的注册、发送和接收过程
  • 4.4.1 广播的注册过程
  • 4.4.2 广播的发送和接收过程
  • 4.5 Content Provider的启动过程
  • 4.5.1 query方法到AMS的调用过程
  • 4.5.2 AMS启动Content Provider的过程
  • 4.6 本章小结
  • 第5章 理解上下文Context
  • 5.1 Context的关联类
  • 5.2 Application Context的创建过程
  • 5.3 Application Context的获取过程
  • 5.4 Activity的Context创建过程
  • 5.5 Service的Context创建过程
  • 5.6 本章小结
  • 第6章 理解ActivityManagerService
  • 6.1 AMS家族
  • 6.1.1 Android 7.0的AMS家族
  • 6.1.2 Android 8.0的AMS家族
  • 6.2 AMS的启动过程
  • 6.3 AMS与应用程序进程
  • 6.4 AMS重要的数据结构
  • 6.4.1 解析ActivityRecord
  • 6.4.2 解析TaskRecord
  • 6.4.3 解析ActivityStack
  • 6.5 Activity栈管理
  • 6.5.1 Activity任务栈模型
  • 6.5.2 Launch Mode
  • 6.5.3 Intent的FLAG
  • 6.5.4 taskAffinity
  • 6.6 本章小结
  • 第7章 理解WindowManager
  • 7.1 Window、WindowManager和WMS
  • 7.2 WindowManager的关联类
  • 7.3 Window的属性
  • 7.3.1 Window的类型和显示次序
  • 7.3.2 Window的标志
  • 7.3.3 软键盘相关模式
  • 7.4 Window的操作
  • 7.4.1 系统窗口的添加过程
  • 7.4.2 Activity的添加过程
  • 7.4.3 Window的更新过程
  • 7.5 本章小结
  • 第8章 理解WindowManagerService
  • 8.1 WMS的职责
  • 8.2 WMS的创建过程
  • 8.3 WMS的重要成员
  • 8.4 Window的添加过程(WMS处理部分)
  • 8.5 Window的删除过程
  • 8.6 本章小结
  • 第9章 JNI原理
  • 9.1 系统源码中的JNI
  • 9.2 MediaRecorder框架中的JNI
  • 9.2.1 Java Framework层的MediaRecorder
  • 9.2.2 JNI层的MediaRecorder
  • 9.2.3 Native方法注册
  • 9.3 数据类型的转换
  • 9.3.1 基本数据类型的转换
  • 9.3.2 引用数据类型的转换
  • 9.4 方法签名
  • 9.5 解析JNIEnv
  • 9.5.1 jfieldID和jmethodID
  • 9.5.2 使用jfieldID和jmethodID
  • 9.6 引用类型
  • 9.6.1 本地引用
  • 9.6.2 全局引用
  • 9.6.3 弱全局引用
  • 9.7 本章小结
  • 第10章 Java虚拟机
  • 10.1 概述
  • 10.1.1 Java虚拟机家族
  • 10.1.2 Java虚拟机执行流程
  • 10.2 Java虚拟机结构
  • 10.2.1 Class文件格式
  • 10.2.2 类的生命周期
  • 10.2.3 类加载子系统
  • 10.2.4 运行时数据区域
  • 10.3 对象的创建
  • 10.4 对象的堆内存布局
  • 10.5 oop-klass模型
  • 10.6 垃圾标记算法
  • 10.6.1 Java中的引用
  • 10.6.2 引用计数算法
  • 10.6.3 根搜索算法
  • 10.7 Java对象在虚拟机中的生命周期
  • 10.8 垃圾收集算法
  • 10.8.1 标记—清除算法
  • 10.8.2 复制算法
  • 10.8.3 标记—压缩算法
  • 10.8.4 分代收集算法
  • 10.9 本章小结
  • 第11章 Dalvik和ART
  • 11.1 Dalvik虚拟机
  • 11.1.1 DVM与JVM的区别
  • 11.1.2 DVM架构
  • 11.1.3 DVM的运行时堆
  • 11.1.4 DVM的GC日志
  • 11.2 ART虚拟机
  • 11.2.1 ART与DVM的区别
  • 11.2.2 ART的运行时堆
  • 11.2.3 ART的GC日志
  • 11.3 DVM和ART的诞生
  • 11.4 本章小结
  • 第12章 理解ClassLoader
  • 12.1 Java中的ClassLoader
  • 12.1.1 ClassLoader的类型
  • 12.1.2 ClassLoader的继承关系
  • 12.1.3 双亲委托模式
  • 12.1.4 自定义ClassLoader
  • 12.2 Android中的ClassLoader
  • 12.2.1 ClassLoader的类型
  • 12.2.2 ClassLoader的继承关系
  • 12.2.3 ClassLoader的加载过程
  • 12.2.4 BootClassLoader的创建
  • 12.2.5 PathClassLoader的创建
  • 12.3 本章小结
  • 第13章 热修复原理
  • 13.1 热修复的产生
  • 13.2 热修复框架的种类和对比
  • 13.3 资源修复
  • 13.3.1 Instant Run概述
  • 13.3.2 Instant Run的资源修复
  • 13.4 代码修复
  • 13.4.1 类加载方案
  • 13.4.2 底层替换方案
  • 13.4.3 Instant Run方案
  • 13.5 动态链接库的修复
  • 13.5.1 System的load和loadLibarary方法
  • 13.5.2 nativeLoad方法分析
  • 13.6 本章小结
  • 第14章 Hook技术
  • 14.1 Hook技术概述
  • 14.2 Hook技术分类
  • 14.3 代理模式
  • 14.3.1 代理模式简单实现
  • 14.3.2 动态代理的简单实现
  • 14.4 Hook startActivity方法
  • 14.4.1 Hook Activity的startActivity方法
  • 14.4.2 Hook Context的startActivity方法
  • 14.4.3 Hook startActivity总结
  • 14.5 本章小结
  • 第15章 插件化原理
  • 15.1 动态加载技术
  • 15.2 插件化的产生
  • 15.2.1 应用开发的痛点和瓶颈
  • 15.2.2 插件化思想
  • 15.2.3 插件化定义
  • 15.3 插件化框架对比
  • 15.4 Activity插件化
  • 15.4.1 Activity的启动过程回顾
  • 15.4.2 Hook IActivityManager方案实现
  • 15.4.3 Hook Instrumentation方案实现
  • 15.4.4 总结
  • 15.5 Service插件化
  • 15.5.1 插件化方面Service与Activity的不同
  • 15.5.2 代理分发实现
  • 15.6 ContentProvider插件化
  • 15.6.1 ContentProvider的启动过程回顾
  • 15.6.2 VirtualApk的实现
  • 15.7 BroadcastReceiver的插件化
  • 15.7.1 广播插件化思路
  • 15.7.2 VirtualApk的实现
  • 15.8 资源的插件化
  • 15.8.1 系统资源加载
  • 15.8.2 VirtualApk实现
  • 15.9 so的插件化
  • 15.10 本章小结
  • 第16章 绘制优化
  • 16.1 绘制性能分析
  • 16.1.1 绘制原理
  • 16.1.2 Profile GPU Rendering
  • 16.1.3 Systrace
  • 16.1.4 Traceview
  • 16.2 布局优化
  • 16.2.1 布局优化工具
  • 16.2.1.2 Android Lint
  • 16.2.2 布局优化方法
  • 16.2.3 避免GPU过度绘制
  • 16.3 本章小结
  • 第17章 内存优化
  • 17.1 避免可控的内存泄漏
  • 17.1.1 什么是内存泄漏
  • 17.1.2 内存泄漏的场景
  • 17.2 Memory Monitor
  • 17.2.1 使用Memory Monitor
  • 17.2.2 大内存申请与GC
  • 17.2.3 内存抖动
  • 17.3 Allocation Tracker
  • 17.3.1 使用Allocation Tracker
  • 17.3.2 alloc文件分析
  • 17.4 Heap Dump
  • 17.4.1 使用Heap Dump
  • 17.4.2 检测内存泄漏
  • 17.5 内存分析工具MAT
  • 17.5.1 生成hprof文件
  • 17.5.2 MAT分析hprof文件
  • 17.6 LeakCanary
  • 17.6.1 使用LeakCanary
  • 17.6.2 LeakCanary应用举例
  • 17.7 本章小结
  • 反侵权盗版声明
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

电子工业出版社

电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。