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

Realme RMX3501(Android13)Activity内存泄漏问题咨询

内存泄漏问题分析:Realme RMX3501 Android 13特定固件异常

在Realme RMX3501(C31)的Android 11系统及其他设备上未出现内存泄漏,但搭载RMX3501_13.F.54固件的Android 13系统中,Activity每次调用onDestroy时都会发生内存泄漏。

泄漏日志

│ GC Root: Global variable in native code
 │
 ├─ android.database.ContentObserver$Transport instance
 │    Leaking: UNKNOWN
 │    Retaining 822 B in 9 objects
 │    ↓ ContentObserver$Transport.mContentObserver
 │                                ~~~~~~~~~~~~~~~~
 ├─ android.view.WindowManagerImpl$ThreeFingerObserver instance
 │    Leaking: UNKNOWN
 │    Retaining 286 B in 8 objects
 │    ↓ WindowManagerImpl$ThreeFingerObserver.this$0
 │                                            ~~~~~~
 ├─ android.view.WindowManagerImpl instance
 │    Leaking: UNKNOWN
 │    Retaining 78 B in 3 objects
 │    mContext instance of android.app.ContextImpl
 │    ↓ WindowManagerImpl.mContext
 │                        ~~~~~~~~
 ├─ android.app.ContextImpl instance
 │    Leaking: YES (ContextImpl.mOuterContext is an instance of ru.price.mobilescoutnative.camera.completephoto.
 │    CompletePhotoActivity with Activity.mDestroyed true)
 │    Retaining 6,9 kB in 104 objects
 │    mOuterContext instance of ru.price.mobilescoutnative.camera.completephoto.CompletePhotoActivity with mDestroyed =
 │    true
 │    ↓ ContextImpl.mOuterContext
 ╰→ ru.price.mobilescoutnative.camera.completephoto.CompletePhotoActivity instance
    Leaking: YES (ObjectWatcher was watching this because ru.price.mobilescoutnative.camera.completephoto.
    CompletePhotoActivity received Activity#onDestroy() callback and Activity#mDestroyed is true)
    Retaining 16,0 MB in 836 objects
    key = 0b60122b-03ad-4fc0-bfc3-6b60e1b5b406
    watchDurationMillis = 59595
    retainedDurationMillis = 54595
    mApplication instance of ru.price.mobilescoutnative.App
    mBase instance of androidx.appcompat.view.ContextThemeWrapper

更新说明

已创建简易测试项目。

复现步骤

  • 点击按钮
  • 点击返回按钮,结果如图:内存泄漏检测结果
  • 点击按钮
  • 点击按钮

可能的相关因素

  1. Realme定制ROM的ThreeFingerObserver实现缺陷
    泄漏链明确指向WindowManagerImpl$ThreeFingerObserver——这是Realme定制的三指操作观察者组件。在RMX3501_13.F.54固件中,该观察者未在Activity销毁时正确解除注册,导致它持续持有WindowManagerImpl的引用,进而通过mContext关联到已销毁的Activity,最终引发内存泄漏。

  2. 系统ContentObserver的生命周期管理异常
    泄漏起点是native层全局变量引用了ContentObserver$Transport,而该Transport绑定到ThreeFingerObserver。说明此ContentObserver在Activity生命周期结束后未被正确注销,导致native层的全局引用一直保留,无法被GC回收。

  3. Android 13适配的定制化bug
    问题仅出现在该设备的特定Android 13固件上,Android 11版本无异常,说明是Realme在适配Android 13时,对WindowManager或手势交互模块的修改引入了兼容性问题,属于厂商定制ROM的专属bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 10:16:12