如何在onSaveInstanceState中检查Bundle对象的大小?

京东

我正在使用Android Studio 3.0.1,该工具可以检查中的Bundle对象onSaveInstanceState

@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
}

为此,添加一个断点,并在调试器停止后右键单击该Bundle对象,如屏幕快照所示,然后从上下文菜单中选择“ Show Bundle Objects ...”。

Android Studio-显示捆绑对象

然后打开一个窗口,列出Bundle对象,如以下屏幕截图所示:

Android Studio-捆绑对象

有没有办法找出整个内存Bundle以及孩子占用的内存量我想确定更大的块以进行优化,并避免TransactionTooLargeException在Android> = 7上抛出。

诸如Ubuntu Disk Usage Analyzer之类的工具会有所帮助-参见screeshot:

磁盘使用情况分析器

钱德拉·谢卡·考希克(Chandra Shekhar Kaushik)

您也可以使用这个:

=>只需在此处传递捆绑包

public int  getBundleSizeInBytes(Bundle bundle  ) {
            Parcel parcel = Parcel.obtain();
            parcel.writeValue(bundle);
            byte[] bytes = parcel.marshall();
            parcel.recycle();
            return bytes.length;
}

然后用于android.text.format.Formatter.formatFileSize(activityContext, bytes)输出很好。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章