JJD*_*JJD 3 android android-studio android-bundle onsaveinstancestate
我正在使用 Android Studio 3.0.1,它允许检查Bundle对象onSaveInstanceState:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
Run Code Online (Sandbox Code Playgroud)
为此添加一个断点,一旦调试器停止,右键单击Bundle屏幕截图中所示的对象,然后从上下文菜单中选择“显示捆绑对象...”。
然后会打开一个窗口以列出Bundle对象,如下面的屏幕截图所示:
有没有办法找出整个和它的孩子们占据了多少内存Bundle?我想确定更大的块来优化并避免TransactionTooLargeException在 Android >= 7 上抛出。
像 Ubuntu磁盘使用分析器这样的东西会有所帮助 - 请参阅 screeshot:
小智 5
你也可以使用这个:-
=> 只需在此处传递 Bundle
public int getBundleSizeInBytes(Bundle bundle ) {
Parcel parcel = Parcel.obtain();
parcel.writeValue(bundle);
byte[] bytes = parcel.marshall();
parcel.recycle();
return bytes.length;
}
Run Code Online (Sandbox Code Playgroud)
然后android.text.format.Formatter.formatFileSize(activityContext, bytes)用来输出很好。