美食家大橙子 发表于 2024-12-28 20:20:59

memory泄漏分析方法(Binder,Window,View篇)

View泄漏:从Hprof找大量重复的view,点击查看text文案如果雷同则找产品他们确认是否合理 window泄漏:代码或dumpsys window来监测是否有大量同名window,不能用windowtoken来辨别是否重复window,每个window token都不一样,windowtoken初始化过程如下所示:
ViewRootImpl(
mWindow = new W(this);
mAttachInfo = new View.AttachInfo(mWindowSession, mWindow, display, this, mHandler, this,context);
mWindowToken = window.asBinder();  Binder泄漏:
Too many Binders sent to SYSTEM 2类走漏:


[*] ProxyBinders:当地持有对端remote binder对象:(向外发1次binder哀求,新建1个Proxy Binders对象) 我有多少接洽人
     2种报错情势


[*]Debuggable builds will throw an AssertionError if the number of map entries exceeds 25_000
Binder ProxyMap has too many entries: 20691 (total), 20691 (uncleared), 20691 (uncleared after GC ). BinderProxy leak?

[*] Android系统创建的Binder数目最大值超过6000,非systemuid的binder调用会被kill掉
    2种走漏原因:

[*] Death Recipients泄漏
[*] 对端注册了太多的callback导致走漏


[*] LocalBinders:当地创建的bindercallback对象,传给Server对端回调我用(LocalBinders数目,有多少个人可接洽上)
Android BinderProxy leak 原理分析-CSDN博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: memory泄漏分析方法(Binder,Window,View篇)