You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android平台LeakCanary检测到内存泄漏,求修复方案

内存泄漏问题分析与修复建议

泄漏日志翻译与解析

以下是翻译后的LeakCanary泄漏日志:

├─ android.app.AppOpsManager$3 实例
│    泄漏状态:未知
│    保留内存:536 B,涉及1个对象
│    类型:com.android.internal.app.IAppOpsActiveCallback$Stub的匿名子类
│    ↓ AppOpsManager$3.this$0
│                      ~~~~~~
├─ android.app.AppOpsManager 实例
│    泄漏状态:未知
│    保留内存:240 B,涉及10个对象
│    mContext 实例为 android.app.ContextImpl
│    ↓ AppOpsManager.mContext
│                    ~~~~~~~~
├─ android.app.ContextImpl 实例
│    泄漏状态:未知
│    保留内存:9.0 kB,涉及106个对象
│    mAutofillClient 实例为 com.welldoc.platform.android.ui.insulinpen.TSBPairAndDataSyncActivity,且mDestroyed = true
│    mOuterContext 实例为 android.app.ContextImpl
│    ContextImpl.mOuterContext == ContextImpl.this:未绑定到特定生命周期
│    ↓ ContextImpl.mAutofillClient
│                  ~~~~~~~~~~~~~~~
╰→ com.welldoc.platform.android.ui.insulinpen.TSBPairAndDataSyncActivity
​  实例
​     泄漏状态:是(ObjectWatcher监控到该Activity已收到Activity#onDestroy()回调,且Activity#mDestroyed = true)
​     保留内存:6.3 MB,涉及8734个对象
​     key = 76dd66e8-d8cb-4330-9a45-bb6600394233
​     watchDurationMillis = 16635
​     retainedDurationMillis = 11635
​     mDsmApplication 实例为 com.welldoc.platform.android.DiabetesApplication
​     mApplication 实例为 com.welldoc.platform.android.DiabetesApplication
​     mBase 实例为 androidx.appcompat.view.ContextThemeWrapper

泄漏路径梳理

泄漏链清晰指向:系统AppOpsManager的内部回调持有AppOpsManager实例 → AppOpsManager持有ContextImpl → ContextImpl的mAutofillClient持有已销毁的TSBPairAndDataSyncActivity实例,导致Activity无法被GC回收,引发内存泄漏。

修复步骤

  • 检查TSBPairAndDataSyncActivity中自动填充相关逻辑:确认是否注册了自动填充服务/回调,务必在onDestroy()方法中取消所有相关注册,切断回调与Activity的绑定。
  • 替换Context引用:如果必须向自动填充相关API传入Context,不要直接传入Activity实例,改用getApplicationContext()获取全局上下文,避免生命周期绑定。
  • 弱引用包装:若业务场景必须保留Activity与自动填充逻辑的关联,用WeakReference<TSBPairAndDataSyncActivity>包装Activity实例,避免强引用导致泄漏。
  • 验证第三方依赖:检查是否有第三方库在内部调用了自动填充相关API并传入了Activity Context,如有,替换为全局上下文或联系库方修复。

内容的提问来源于stack exchange,提问作者user7204872

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 05:55:46