AI 导读
类型
可以朗读
语音朗读
180千字
字数
2025-03-01
发行日期
展开全部
主编推荐语
深度解读Android性能优化底层原理和一线实践。
内容简介
这是一套从Android性能优化本质入手,指导读者实现从硬件层到操作系统层再到应用层全面优化的实战方法论。本书由Android方向Google开发者专家撰写,融合了作者10年大厂实战经验,其中不仅包括作者实操过的监控、优化、防劣化等方向的各种典型案例,还包括多个实战小技巧,可以帮助读者解决工作中遇到的90%以上的能优化问题。
本书内容涵盖内存、速度和流畅性、稳定性、包体积、耗电、磁盘占用、流量、降级这8个方向的性能优化内容。这些内容方向均从原理和实战两个维度进行解读。其中,原理部分直指优化的本质,不仅包括相关基础知识,还包括性能优化的底层逻辑;实战部分以指导读者实操为主要目标,以案例为主要讲解形式,深度解读作者精心总结的各种实战案例中用到的技术和原理。
目录
- 版权信息
- 前言
- 引言 如何才能做好性能优化
- 性能优化的本质
- 性能优化的维度
- 性能优化的难点
- 第1章 内存优化原理
- 1.1 虚拟内存
- 1.1.1 为什么需要虚拟内存
- 1.1.2 什么是虚拟内存
- 1.1.3 ELF文件
- 1.1.4 虚拟内存申请和释放
- 1.1.5 虚拟内存到物理内存
- 1.2 内存数据的组成
- 1.2.1 maps文件
- 1.2.2 Java堆内存
- 1.2.3 Native内存
- 1.3 内存优化方法论
- 1.3.1 及时清理数据
- 1.3.2 减少数据的加载
- 1.3.3 增加内存大小
- 第2章 内存优化实战
- 2.1 Java内存泄漏检测
- 2.1.1 手动分析
- 2.1.2 自动分析
- 2.2 Native内存泄漏检测
- 2.2.1 拦截malloc和free函数
- 2.2.2 获取Native堆栈
- 2.2.3 Native堆栈信息还原
- 2.2.4 开源工具介绍
- 2.3 Bitmap治理
- 2.3.1 字节码操作
- 2.3.2 超大Bitmap优化
- 2.3.3 Bitmap泄漏优化
- 2.4 线程栈优化
- 2.4.1 线程创建流程
- 2.4.2 减少线程数量
- 2.4.3 减小线程默认的栈空间大小
- 2.5 默认webview内存释放
- 2.5.1 通过maps文件寻找地址
- 2.5.2 通过系统变量寻找地址
- 第3章 速度与流畅性优化原理
- 3.1 CPU
- 3.1.1 CPU的结构
- 3.1.2 CPU的工作流程
- 3.1.3 汇编指令
- 3.2 缓存
- 3.2.1 缓存的结构
- 3.2.2 寄存器
- 3.2.3 高速缓存
- 3.2.4 主存
- 3.3 任务调度
- 3.3.1 进程与线程的状态
- 3.3.2 进程调度
- 3.3.3 协程和线程
- 3.4 速度与流畅性优化方法论
- 3.4.1 提升CPU执行效率
- 3.4.2 提升缓存效率
- 3.4.3 提升任务调度效率
- 第4章 速度与流畅性优化实战
- 4.1 充分利用CPU闲置时刻
- 4.1.1 proc文件方案
- 4.1.2 times函数方案
- 4.2 减少CPU的等待
- 4.2.1 锁等待优化
- 4.2.2 I/O等待优化
- 4.3 绑定CPU大核
- 4.3.1 线程绑核函数
- 4.3.2 获取大核序列
- 4.4 GC抑制
- 4.4.1 GC的执行流程
- 4.4.2 抑制GC执行的方案
- 4.5 缓存策略优化
- 4.5.1 常用的淘汰策略
- 4.5.2 LFUCache
- 4.6 Dex类文件重排序
- 4.6.1 局部性原理
- 4.6.2 Redex使用流程
- 4.7 提升核心线程优先级
- 4.7.1 调整线程优先级的方式
- 4.7.2 需要调整优先级的线程
- 4.8 线程池优化
- 4.8.1 默认的线程池创建方式
- 4.8.2 线程池配置解析
- 4.8.3 线程池类型及创建
- 4.8.4 线程池监控
- 第5章 稳定性优化原理
- 5.1 ANR
- 5.1.1 ANR的类型
- 5.1.2 常见的ANR归因
- 5.2 Crash
- 5.2.1 Java Crash
- 5.2.2 Native Crash
- 5.3 稳定性优化方法论
- 第6章 稳定性优化实战
- 6.1 Native Crash监控方案
- 6.1.1 异常信号捕获
- 6.1.2 获取Native堆栈
- 6.1.3 使用开源库
- 6.2 ANR监控方案
- 6.2.1 信号捕获检测方案
- 6.2.2 AMS接口检测方案
- 6.2.3 抓取Trace文件
- 6.2.4 使用开源框架
- 6.3 OOM监控方案
- 6.3.1 Hprof文件结构
- 6.3.2 Hprof裁剪方案
- 6.3.3 使用开源框架
- 6.4 Native Crash分析思路
- 6.4.1 初步分析
- 6.4.2 堆栈分析
- 6.4.3 指令分析
- 6.5 ANR分析思路
- 6.5.1 初步分析
- 6.5.2 性能分析
- 6.5.3 直接和间接分析
- 6.6 慢函数监控
- 6.6.1 慢函数检测方法
- 6.6.2 主线程方法插桩
- 第7章 包体积优化原理
- 7.1 APK组成分析
- 7.1.1 dex文件
- 7.1.2 资源和so库文件
- 7.2 APK包构建流程
- 7.2.1 编译和打包流程
- 7.2.2 Gradle任务
- 7.3 包体积优化方法论
- 第8章 包体积优化实战
- 8.1 精简资源
- 8.1.1 删除无用资源
- 8.1.2 删除重复图片
- 8.1.3 混淆文件名
- 8.1.4 使用开源工具
- 8.2 精简dex文件
- 8.2.1 删减无用的代码
- 8.2.2 开启编译优化
- 8.2.3 dex重排
- 8.2.4 移除行号信息
- 8.3 精简so库
- 8.3.1 删除无用代码
- 8.3.2 删除冗余的so文件
- 8.3.3 删除符号信息
- 8.4 压缩dex文件
- 8.5 压缩so库
- 8.5.1 官方方案压缩so
- 8.5.2 自定义方案压缩so
- 8.6 动态加载资源文件
- 8.6.1 资源加载原理
- 8.6.2 动态加载资源
- 8.7 动态加载类文件
- 8.7.1 类加载原理
- 8.7.2 动态加载类
- 8.8 动态加载so库文件
- 8.8.1 so库加载原理
- 8.8.2 动态加载so库
- 8.9 动态加载四大组件
- 8.9.1 Activity启动流程
- 8.9.2 启动拦截
- 8.9.3 方法重定向
- 8.9.4 开源插件化框架
- 第9章 其他优化
- 9.1 耗电优化
- 9.1.1 耗电统计原理
- 9.1.2 耗电监控
- 9.1.3 耗电治理
- 9.2 流量优化
- 9.2.1 流量消耗监控
- 9.2.2 流量分类
- 9.2.3 流量优化
- 9.3 磁盘占用优化
- 9.3.1 磁盘监控
- 9.3.2 存储目录
- 9.3.3 磁盘优化
- 9.4 降级优化
- 9.4.1 性能指标采集和异常判断
- 9.4.2 降级任务的添加和调度
- 9.4.3 降级框架的效果度量
- 9.4.4 方案实现
展开全部
出版方
机械工业出版社
机械工业出版社是全国优秀出版社,自1952年成立以来,坚持为科技、为教育服务,以向行业、向学校提供优质、权威的精神产品为宗旨,以“服务社会和人民群众需求,传播社会主义先进文化”为己任,产业结构不断完善,已由传统的图书出版向着图书、期刊、电子出版物、音像制品、电子商务一体化延伸,现已发展为多领域、多学科的大型综合性出版社,涉及机械、电工电子、汽车、计算机、经济管理、建筑、ELT、科普以及教材、教辅等领域。