Android性能优化之道:从底层原理到一线实践

Android性能优化之道:从底层原理到一线实践

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

深度解读Android性能优化底层原理和一线实践。

内容简介

这是一套从Android性能优化本质入手,指导读者实现从硬件层到操作系统层再到应用层全面优化的实战方法论。本书由Android方向Google开发者专家撰写,融合了作者10年大厂实战经验,其中不仅包括作者实操过的监控、优化、防劣化等方向的各种典型案例,还包括多个实战小技巧,可以帮助读者解决工作中遇到的90%以上的能优化问题。

本书内容涵盖内存、速度和流畅性、稳定性、包体积、耗电、磁盘占用、流量、降级这8个方向的性能优化内容。这些内容方向均从原理和实战两个维度进行解读。其中,原理部分直指优化的本质,不仅包括相关基础知识,还包括性能优化的底层逻辑;实战部分以指导读者实操为主要目标,以案例为主要讲解形式,深度解读作者精心总结的各种实战案例中用到的技术和原理。

作者简介

作者赵子健,现为字节跳动资深Android开发工程师,负责飞书客户端性能品质优化工作。熟悉Android和Linux系统底层原理,擅长性能优化。曾任职于腾讯、阿里巴巴,有丰富的项目性能优化和架构经验。谷歌开发者社区深度参与者(多次进行技术分享),谷歌认证的国内Android方向的GDE(谷歌开发者专家,目前国内仅有12位Android方向的谷歌开发者专家)之一。

章节目录

版权信息

前言

引言 如何才能做好性能优化

性能优化的本质

性能优化的维度

性能优化的难点

第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 方案实现

Android性能优化之道:从底层原理到一线实践是2025年由机械工业出版社出版,作者赵子健。

得书感谢您对《Android性能优化之道:从底层原理到一线实践》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
Kubernetes从入门到实践 电子书
结合示例代码,系统讲述Kubernetes的主要功能和核心组件,有助于读者迅速提升运维技能。
MATLABAppDesigner从入门到实践 电子书
本书以编程工具App Designer为中心进行引导式学习。
从需求到产品:0岁产品经理进阶之道 电子书
协助“0岁产品经理”进入产品经理生涯中“发现问题”的阶段,让他们能够快速进入角色,掌握基本的知识,并发现自身的问题。
《Android内核设计思想》 电子书
  ·基于AndroidSDK新版本   ·全面剖析了进程/线程、内存管理、Binder机制、GUI显示系统、多媒体管理、输入系统等核心知识在Android中的实现原理Android安全机制虚拟内存优化性能优化   ·通过大量图片与实例来引导读者学习,以求尽量在源码分析外,为读者提供更易于理解的思维路径   ·由浅入深,由总体框架再到细节实现,让读者尽快了解Android内核的设计思想
Android开发进阶 电子书
阿里巴巴高级工程师、CSDN博客专家、畅销书作者撰写,百度、腾讯等专家推荐的精品图书 一本只有干货,绝无赘述的好书 结合作者多年开发经验的总结,把作者以前开发走过的坑和陷阱讲解出来,看了以后可以少走很多弯路,提升自己的开发能力很快,抓住开发的痛点和需求讲解内容,使读者阅读后很有成就感。 除了全面讲解了Android开发知识外,还对单元测试、代码规范、版本控制、重构、架构等重要知识点进行了讲解,使得读者在深入技术的同时开阔眼界,能够以更专业的方式设计应用软件,完成从只会实现功能的“码农”到软件工程师、设计师的过渡。