【发布时间】:2015-11-08 13:33:58
【问题描述】:
假设:使用 Android Studio 向导创建的一个简单 Activity,内部没有任何自定义代码,调用 dumpGfxInfo() 时会永久消耗内存。
Android Studio 在分配跟踪器中的构建显示至少 三个 线程在做同样的事情:
--- 8< ------------------------------------------------------------------
* < Thread 12 >
* execTransact():446, Binder (andoroid.os)
* onTransact():545, ApplicationThreadNative (android.app)
* dumpGfxInfo():1107, ActivityThread$ApplicationThread (android.app)
--- 8< -------------------------------------------------------------------
显然 dumpGfxInfo() 通过为空字符串分配内存来消耗内存。编译的唯一相关依赖项是 com.android.support:appcompat-v7:22.2.1
随着这种内存消耗,(有时)会出现以下异常:
15331-15364/ W/Binder﹕ Caught a RuntimeException from the binder stub implementation.
java.lang.NullPointerException: Attempt to read from field 'android.view.HardwareRenderer android.view.View$AttachInfo.mHardwareRenderer' on a null object reference
at android.view.WindowManagerGlobal.dumpGfxInfo(WindowManagerGlobal.java:466)
at android.app.ActivityThread$ApplicationThread.dumpGfxInfo(ActivityThread.java:1107)
at android.app.ApplicationThreadNative.onTransact(ApplicationThreadNative.java:548)
at android.os.Binder.execTransact(Binder.java:446)
问题:如何修复/关闭此行为并摆脱它?
【问题讨论】:
标签: java android memory android-studio