Agent Skills
返回列表
安卓内存泄漏助手

安卓内存泄漏助手

开发编程 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_b4da0893/android-memory-leak-cn。

技能介绍

为什么移动端内存排查如此困难

在 Android 开发中,"内存越来越高"往往只是表象。它可能源于真正的对象泄漏,也可能是合法的缓存预热、图形资源驻留或进程缓存膨胀。如果缺乏系统的方法论,开发者很容易陷入"看见高内存就判泄漏"或"只截一张堆快照"的误区,导致误修合法缓存或漏掉真正的上游持有者。本技能旨在将模糊的内存增长现象,转化为可复现、可归因、可验证的缺陷定位流程。

核心工作流与诊断策略

技能默认采用一套严谨的十步排查法,拒绝在缺少证据时断言唯一根因。

  • 现象分型与复现设计:从冷启动开始,固定设备、构建和数据条件,设计"进入—操作—退出"的循环复现步骤,排除初始化缓存增长的干扰。
  • 分离内存区域与快照对照:同时观察托管堆、原生分配与图形资源。在稳定点、首次场景后和多次循环后采集同类证据,锁定生命周期已结束却持续增长的对象。
  • 追踪最短强引用链:从泄漏对象向 GC Roots 追溯,找出"谁拥有谁"的第一个生命周期不匹配点,而非盲目盯着占用最大的叶子对象。
  • 最小修复与回归验证:优先修正所有权和生命周期(如解除注册、取消协程),而非用 WeakReference 掩盖问题。修复后必须在相同控制变量下进行前后对照验收。

适用边界与安全规范

  • 单次峰值或合法缓存驻留不会被自动判定为泄漏。
  • 严禁上传含用户数据、令牌或敏感内容的堆快照,分析前必须脱敏。
  • 不在生产设备上执行高开销分析,除非有明确授权与风险控制。
  • 不承诺覆盖所有厂商定制或底层图形驱动的极端边界问题。

使用场景

  • 反复打开同一页面后内存只增不减,需要区分是对象泄漏还是合法缓存驻留
  • 已有堆快照和引用链,需要定位生命周期结束但仍被强引用保留的具体路径
  • 修复了疑似内存泄漏后,需要在同一控制变量下验证存活对象是否真正回落
  • 低端设备上发生系统低内存杀进程,需要先确认是否为泄漏而非全盘归咎

适合人员

  • Android 应用开发工程师,需要将内存增长归因到具体生命周期缺陷并输出修复补丁
  • 移动端性能测试工程师,需要设计冷启动到循环退出的对照实验并采集堆快照证据
  • 客户端技术负责人,需要建立页面退出后的对象预算与自动化内存回归场景
  • 图形或原生库开发者,需要排查 Java 堆之外由图形缓冲或原生分配引发的内存增长