App-Arbeitsspeicher optimieren

Arbeitsspeicher ist in jeder Softwareentwicklungsumgebung eine wertvolle Ressource, bei einem mobilen Betriebssystem, in dem der physische Speicher häufig begrenzt ist, jedoch noch mehr. Dies gilt insbesondere für nativ Geräte mit wenig Arbeitsspeicher, die häufig bei Android (Go-Edition) zu finden sind. Es gibt verschiedene Möglichkeiten, den Arbeitsspeicher in Ihrer Anwendung zu optimieren, damit sie in diesen Umgebungen reibungslos ausgeführt wird.

Best Practices

Cache-Speicher freigeben

Möglicherweise ist nicht genügend Arbeitsspeicher vorhanden, um Hintergrundprozesse wie in einer typischen Umgebung weiter auszuführen. In diesem Fall können Sie mit onTrimMemory() nicht benötigten Arbeitsspeicher aus dem Prozess Ihrer Anwendung entfernen. Die aktuelle Ausstattungsvariante Ihrer App lässt sich am besten ermitteln, wenn Sie ActivityManager.getMyMemoryState(RunningAppProcessInfo) verwenden und unnötige Ressourcen optimieren oder entfernen. Sie können beispielsweise die unnötige Arbeitsspeichernutzung durch Ausdrücke, die Suche, den Cache oder aufrufbare Erweiterungen reduzieren, um die Anzahl der Abstürze oder ANR-Fehler in Ihrer App aufgrund von zu wenig Arbeitsspeicher zu reduzieren.

Aufgabenplanung

Die gleichzeitige Planung kann dazu führen, dass mehrere speicherintensive Vorgänge parallel ausgeführt werden, was zu einer Konkurrenz um Ressourcen führt, die die maximale Speichernutzung einer Anwendung überschreiten. Versuchen Sie, Ressourcen angemessen zuzuweisen, indem Sie Prozesse in CPU-intensive Aufgaben mit niedriger Latenz im richtigen Thread-Pool aufteilen, um sie auf Geräten auszuführen, auf die verschiedene Ressourceneinschränkungen zutreffen.

Speicherlecks

Verschiedene Tools wie der Speicher-Profiler in Android Studio und Perfetto sind speziell verfügbar, um Speicherlecks in deiner App zu finden und zu reduzieren. Wir empfehlen dir, mit diesen Tools potenzielle Speicherprobleme zu erkennen und zu beheben, damit andere Komponenten deiner App ohne zusätzlichen Druck auf das System ausgeführt werden können.

Weitere Tipps

  • Große Bilder oder Drawables verbrauchen mehr Arbeitsspeicher in Apps. Große oder vollfarbige Bitmaps identifizieren und optimieren, um die Arbeitsspeichernutzung zu reduzieren.
  • Wenn Sie für Android (Go-Edition) entwickeln, sollten Sie andere Optionen für GIFs in Ihrer App auswählen, da GIFs viel Arbeitsspeicher verbrauchen.
  • Mit Tools wie WebP, PNGcrush und PNGquant können Sie die Größe von PNG-Dateien reduzieren, ohne die Bildqualität zu beeinträchtigen. Mit allen diesen Tools können Sie die PNG-Dateigröße reduzieren, ohne die Bildqualität zu beeinträchtigen.
  • Das aapt-Tool kann die in res/drawable/ platzierten Image-Ressourcen während des Build-Prozesses mit einer verlustfreien Komprimierung optimieren. Das aapt-Tool kann beispielsweise eine PNG-Datei mit echter Farbe, die nicht mehr als 256 Farben benötigt, in eine 8-Bit-PNG mit einer Farbpalette konvertieren. Das führt zu einem Bild von gleicher Qualität, aber mit einem geringeren Speicherbedarf.