0

Ich bin mit Android Studio 3.0.1, die das Bundle Objekt in onSaveInstanceState zu untersuchen erlaubt:Wie untersucht man die Größe des Bundle-Objekts in onSaveInstanceState?

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

Dazu fügen Sie einen Haltepunkt und sobald der Debugger direkt die Bundle Objekt aufhört klicken, wie im Screenshot gezeigt und wählen Sie "Bundle-Objekte anzeigen ..." aus dem Kontextmenü.

Android Studio - Show Bundle Objects

Dann öffnet sich ein Fenster, um die Bundle Objekte aufzulisten, wie in diesem Screenshot gezeigt:

Android Studio - Bundle objects

Gibt es eine Möglichkeit, um herauszufinden, , wie viel Speicher die ganze Bundle und es ist Kinder besetzen? Ich möchte die größeren Brocken identifizieren TransactionTooLargeException zu optimieren und vermeiden auf Android> = 7.

So etwas wie Ubuntu Disk Usage Analyzer wäre hilfreich geworfen zu werden - siehe Screeshot:

Disk Usage Analyzer

Antwort

1

Sie dies kann man auch verwenden: -

=> nur das Bundle passieren hier

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

Dann verwenden Sie android.text.format.Formatter.formatFileSize(activityContext, bytes), um schön auszugeben.

Verwandte Themen