首页
›
移动端与Android应用开发
›
040-网络缓存工程卡顿耗电调优
›
《主线程优化与ANR避免技巧》
VIP20
本课程属于:040-网络缓存工程卡顿耗电调优
移动端与Android应用开发 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
主线程优化与ANR避免技巧
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
ANR概述
什么是ANR · ANR的类型(输入事件 · 广播
ANR
什么是
02
主线程消息循环
Looper · Handler · MessageQueue的工作原理
主线程消息循环
Looper
03
Android UI渲染流程
View的测量 · 布局 · 绘制
Android
UI
04
系统超时阈值
不同Android版本下输入事件(5… · 广播(10秒) · 服务(20秒)
系统超时阈值
Android
05
输入事件ANR的成因
触摸事件分发 · 按键事件处理中耗时操作导致无响应
ANR
输入事件
06
BroadcastReceiver ANR
onReceive()在主线程执行 · 避免长时间操作 · 使用goAsync()或JobSer…
BroadcastRec…
ANR
07
Service ANR
onStartCommand() · onBind()等在主线程 · 耗时任务必须交给子线程
Service
ANR
08
ContentProvider ANR
query() · insert()等操作不应执行耗时I… · 使用CursorLoader或协程
ContentProvi…
ANR
09
主线程中的耗时操作识别
文件读写 · 数据库查询 · 网络请求
主线程
耗时操作识别
10
布局复杂度与过度绘制
优化View层级 · 使用ConstraintLayout · 减少层层嵌套
布局复杂度
过度绘制
11
动画与属性动画
ObjectAnimator · ValueAnimator不要执行耗… · 使用自定义插值器需谨慎
动画
属性动画
12
主线程中的网络请求
禁止在主线程执行HttpURLCon… · OkHttp等同步调用
主线程
网络请求
13
主线程中的文件IO与SharedPreferences
SP的commit()同步写盘会阻塞 · 应使用apply()或mmkv
IO
SharedPrefer…
14
主线程中的Bitmap解码
decodeResource · decodeFile等需放在子线程 · 使用Glide或Coil
Bitmap
主线程
15
锁竞争与死锁
主线程持有锁等待子线程 · 子线程又等待主线程资源导致ANR
锁竞争
死锁
16
Binder调用与IPC
主线程调用Binder方法时如果远端… · 会连带阻塞主线程
Binder
IPC
17
HandlerThread
创建串行子线程处理后台任务 · 避免新建线程开销
HandlerThrea…
创建串行子线程处…
18
AsyncTask的缺陷与替代方案
Android 11弃用AsyncT… · 推荐协程 · RxJava或Executor
AsyncTask
的缺陷
19
IntentService
自动停止的Service · 内部使用HandlerThread串… · 适合简单后台操作
IntentServic…
Service
20
WorkManager
处理延迟 · 周期性后台任务 · 自动适配API
WorkManager
处理延迟
21
线程池的正确使用
ThreadPoolExecutor… · 拒绝策略 · 避免无限制的new Thread
线程池的正确使用
ThreadPoolEx…
22
Kotlin协程
Dispatchers.Main · Dispatchers.IO · withContext切换上下文
Kotlin
协程
23
RxJava
subscribeOn · observeOn调度线程 · 避免主线程被Observable源阻…
RxJava
subscribeOn
24
内存泄漏对主线程的影响
泄漏的Activity或View持有… · 导致GC频繁卡顿甚至ANR
内存泄漏对主线程…
Activity
25
StrictMode
运行时检测主线程IO · 网络 · 磁盘操作
StrictMode
IO
26
TraceView与Systrace
抓取CPU时间片 · 分析主线程方法耗时 · 锁竞争
TraceView
Systrace
27
CPU Profiling工具
Android Studio Pro… · Perfetto · 火焰图定位热点
CPU
Profiling
28
自定义ANR监控
监听主线程Handler消息执行时间 · 上报超过阈值的堆栈
ANR
自定义
29
综合案例
优化一个卡顿的RecyclerVie… · 从布局 · 图像
综合案例
RecyclerVie
30
最佳实践与团队规范
代码审查Checklist · 自动化检测工具 · ANR兜底方案
最佳实践
团队规范
所属VIP或分类
同VIP:Android内存优化实战技巧
同VIP:Android卡顿堆栈定位与调优实战
同VIP:Android性能调优工具链使用技巧