首页
›
移动端与Android应用开发
›
042-蓝牙设备通信内存泄漏定位
›
《GATT回调中协程泄漏排查指南》
VIP20
本课程属于:042-蓝牙设备通信内存泄漏定位
移动端与Android应用开发 · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
GATT回调中协程泄漏排查指南
共计 30 章节
点击此处阅读海量试读课程:100+行业、1000+细分领域
01
GATT协议基础
BLE协议栈架构 · GATT角色与Profile · Service/Characteri…
GATT
协议基础
02
协程基础
Python asyncio概念 · async/await语法 · 事件循环原理
协程基础
Python
03
GATT回调机制
Android/iOS平台下GATT…
GATT
回调机制
04
协程在回调中的应用
为什么在GATT回调中使用协程?优势…
协程
回调
05
协程泄漏定义
什么是协程泄漏?与内存泄漏的区别和联…
协程泄漏定义
什么是协程泄漏
06
常见泄漏场景
未等待的协程任务 · 未取消的定时器 · 回调中创建协程但未管理生命周期
常见泄漏场景
未等待的协程任务
07
泄漏的后果
资源耗尽 · 内存泄漏 · 应用卡死
泄漏的后果
资源耗尽
08
排查准备
开启asyncio调试模式 · 日志配置 · GC跟踪工具
排查准备
asyncio
09
使用asyncio.create_task的陷阱
创建即忘记 · 导致悬空任务
asyncio.crea…
task
10
回调中启动协程的典型写法与风险
fire-and-forget模式
回调
启动协程的典型写…
11
任务引用丢失
为什么弱引用无法阻止泄漏
任务引用丢失
为什么弱引用无法…
12
GATT断开回调中的协程处理
如何安全取消正在进行的协程
GATT
断开回调
13
连接状态变化与协程生命周期
绑定与解绑的最佳实践
连接状态变化
协程生命周期
14
回调递归引发的协程链泄漏
无限递归创建任务
回调递归引发的协…
无限递归创建任务
15
使用TaskGroup和asyncio.gather管理批量协程。
使用TaskGroup和asyncio.… · 核心概念 · 实践要点
TaskGroup
asyncio.gath…
16
超时控制
在GATT回调中设置协程超时 · 避免永久挂起
超时控制
GATT
17
回调上下文切换
不同线程/事件循环之间的协程传递
回调上下文切换
不同线程
18
调试工具1
asyncio.all_tasks(…
调试工具1
asyncio.all
19
调试工具2
heapy与objgraph分析协程…
调试工具2
heapy
20
调试工具3
trio的Trioviz可视化协程状…
调试工具3
trio
21
日志插桩
在回调入口和出口记录协程创建与销毁
日志插桩
回调入口
22
静态代码检查
使用pylint-asyncio · mypy检测泄漏模式
静态代码检查
pylint-async…
23
单元测试
模拟GATT回调 · 验证协程是否正常关闭
单元测试
GATT
24
集成测试
长时间运行测试 · 监测协程数量是否增长
集成测试
长时间运行测试
25
实际案例1
蓝牙扫描回调中协程泄漏的复现与修复
实际案例1
蓝牙扫描回调
26
实际案例2
读写特性回调中协程泄漏的排查过程
实际案例2
读写特性回调
27
实际案例3
MTU协商回调中因异常未处理导致协程…
实际案例3
MTU
28
最佳实践
使用contextmanager管理…
最佳实践
contextmanag…
29
最佳实践
创建协程池或封装Executor防止…
最佳实践
Executor
30
总结与进阶
从GATT扩展到其他异步回调场景的通…
进阶
GATT
所属VIP或分类
同VIP:Activity中Flow订阅泄漏案例
同VIP:Coroutine作用域不当导致蓝牙泄漏实战教程
同VIP:Coroutine作用域与OkHttp混合泄漏排查教程