🚀 Android性能优化 · 源码定位实战
📚 30章
风格·活力全彩
01
性能优化全景图
本质·维度
Android性能问题的本质、优化维度(流畅度、内存、功耗、启动速度、包体积)、性能优化方法论。
02
卡顿优化基础
掉帧·Choreographer
掉帧原理、Choreographer工作机制、16ms原则、卡顿检测工具(Profile GPU Rendering、Systrace)。
03
布局渲染优化
过度绘制·ViewStub
布局层级优化、过度绘制检测、ViewStub与Merge标签使用、异步布局(AsyncLayoutInflater)。
04
CPU与GPU协同
硬件加速·离屏缓冲
CPU/GPU工作流程、RenderThread的作用、硬件加速原理、离屏缓冲与Overdraw。
05
卡顿监控方案
BlockCanary·线上
BlockCanary原理、Looper Printer监控、Choreographer FrameCallback、线上卡顿监控方案。
06
ANR问题分析
超时机制·trace
ANR产生原因、Service/BroadcastReceiver/Input超时机制、ANR日志分析、trace文件解读。
07
内存管理机制
GC·堆
Java堆与Native堆、GC原理(ART vs Dalvik)、内存泄漏与内存抖动、内存快照分析。
08
内存泄漏定位
LeakCanary·MAT
LeakCanary原理、MAT与Profiler使用、常见泄漏场景(Handler、匿名内部类、单例、资源未关闭)。
09
内存抖动优化
GC·对象池
频繁GC的识别、String拼接优化、循环内对象创建、对象池模式应用。
10
Bitmap内存优化
采样·复用
Bitmap内存计算、inSampleSize采样、inBitmap复用、Glide与Picasso内存策略对比。
11
Native内存问题
malloc debug·JNI
Native Heap分析(malloc debug、AddressSanitizer)、JNI内存泄漏、libc与匿名共享内存。
12
启动优化基础
冷热启动·测量
冷启动/热启动/温启动区别、Application与Activity生命周期、启动时间测量(adb、reportFullyDrawn)。
13
启动优化实战
ContentProvider·IdleHandler
ContentProvider初始化优化、任务懒加载、IdleHandler延迟加载、启动阶段线程池管理。
14
启动优化进阶
类加载·Baseline Profile
类加载优化(ClassLoader预加载)、Baseline Profile原理、启动阶段IO优化、启动黑白屏处理。
15
电量优化基础
WakeLock·Battery Historian
电量消耗模型、WakeLock与AlarmManager、JobScheduler与WorkManager、Battery Historian工具。
16
电量优化实战
网络·定位·后台
网络请求合并、定位频率控制、屏幕亮度与刷新率、后台任务约束。
17
网络优化
连接复用·压缩
HTTP/HTTPS连接复用、DNS解析优化、数据压缩(Gzip、Protobuf)、弱网环境适配。
18
包体积优化
APK分析·混淆
APK结构分析、资源混淆(AndResGuard)、代码混淆(ProGuard/R8)、动态库裁剪。
19
图片与资源优化
WebP·压缩
WebP与AVIF格式、TinyPNG压缩、无用资源删除、国际化资源按需打包。
20
线程优化
线程池·协程
线程池规范使用、AsyncTask与HandlerThread、协程在Android中的应用、线程优先级设置。
21
IO优化
MMKV·序列化
SharedPreferences替代方案(MMKV、DataStore)、序列化选择(JSON/ProtoBuf/FlatBuffers)、文件读写优化。
22
数据结构与算法优化
SparseArray·LRU
ArrayList vs LinkedList、HashMap vs SparseArray、对象池与享元模式、缓存策略(LRU)。
23
UI渲染进阶
RecyclerView·DiffUtil
RecyclerView缓存机制、DiffUtil与ListAdapter、自定义View绘制优化、硬件层加速。
24
动画性能优化
属性动画·帧率
属性动画原理、帧率控制、硬件层与软件层渲染、动画卡顿排查。
25
多进程优化
Binder·AIDL
进程间通信(Binder、AIDL)、ContentProvider跨进程、多进程内存隔离、进程保活与优化。
26
性能监控平台
Matrix·ArgusAPM
自定义性能埋点、Matrix框架使用、ArgusAPM原理、性能数据上报与可视化。
27
源码定位方法论
AOSP·二分法
源码阅读工具(AOSP、Code Search)、断点调试技巧、日志定位法、二分法定位。
28
Framework源码分析
Handler·View绘制
Handler与Looper源码、View绘制流程(measure/layout/draw)、AMS与WMS关键流程。
29
性能优化案例实战
卡顿·启动·内存
综合案例1(列表滑动卡顿优化)、综合案例2(应用启动速度优化)、综合案例3(内存泄漏排查)。
30
性能优化总结与展望
最佳实践·Compose
性能优化最佳实践、新技术趋势(Compose性能、Android 14新特性)、持续优化文化。