diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 1f41c291e3ef1..6a2b9aa22928e 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -108,6 +108,7 @@ import android.renderscript.RenderScriptCacheDir; import android.system.Os; import android.system.OsConstants; import android.system.ErrnoException; +import android.webkit.WebView; import com.android.internal.annotations.GuardedBy; import com.android.internal.app.IVoiceInteractor; @@ -1041,10 +1042,21 @@ public final class ActivityThread { long dalvikMax = runtime.totalMemory() / 1024; long dalvikFree = runtime.freeMemory() / 1024; long dalvikAllocated = dalvikMax - dalvikFree; + + Class[] classesToCount = new Class[] { + ContextImpl.class, + Activity.class, + WebView.class, + OpenSSLSocketImpl.class + }; + long[] instanceCounts = VMDebug.countInstancesOfClasses(classesToCount, true); + long appContextInstanceCount = instanceCounts[0]; + long activityInstanceCount = instanceCounts[1]; + long webviewInstanceCount = instanceCounts[2]; + long openSslSocketCount = instanceCounts[3]; + long viewInstanceCount = ViewDebug.getViewInstanceCount(); long viewRootInstanceCount = ViewDebug.getViewRootImplCount(); - long appContextInstanceCount = Debug.countInstancesOfClass(ContextImpl.class); - long activityInstanceCount = Debug.countInstancesOfClass(Activity.class); int globalAssetCount = AssetManager.getGlobalAssetCount(); int globalAssetManagerCount = AssetManager.getGlobalAssetManagerCount(); int binderLocalObjectCount = Debug.getBinderLocalObjectCount(); @@ -1052,7 +1064,6 @@ public final class ActivityThread { int binderDeathObjectCount = Debug.getBinderDeathObjectCount(); long parcelSize = Parcel.getGlobalAllocSize(); long parcelCount = Parcel.getGlobalAllocCount(); - long openSslSocketCount = Debug.countInstancesOfClass(OpenSSLSocketImpl.class); SQLiteDebug.PagerStats stats = SQLiteDebug.getDatabaseInfo(); dumpMemInfoTable(pw, memInfo, checkin, dumpFullInfo, dumpDalvik, dumpSummaryOnly, @@ -1115,6 +1126,7 @@ public final class ActivityThread { "Parcel count:", parcelCount); printRow(pw, TWO_COUNT_COLUMNS, "Death Recipients:", binderDeathObjectCount, "OpenSSL Sockets:", openSslSocketCount); + printRow(pw, ONE_COUNT_COLUMN, "WebViews:", webviewInstanceCount); // SQLite mem info pw.println(" ");