Es gibt eine Reihe von Gründen, warum das Laden von Bitmaps in Ihrer Android-App schwierig ist:
- Bitmaps können das Speicherbudget einer App sehr leicht erschöpfen. Die Kamera des Pixel nimmt beispielsweise Fotos mit bis zu 4048 × 3036 Pixel (12 Megapixel) auf.
Wenn die Bitmapkonfiguration
ARGB_8888
, also die Standardkonfiguration für Android 2.3 (API-Level 9) und höher, verwendet wird, benötigt das Laden eines einzelnen Fotos in den Arbeitsspeicher etwa 48 MB Arbeitsspeicher (4.048 × 3.036 × 4 Byte). Ein so großer Arbeitsspeicherbedarf kann sofort den gesamten für die Anwendung verfügbaren Arbeitsspeicher nutzen. - Das Laden von Bitmaps in den UI-Thread kann die Leistung Ihrer Anwendung beeinträchtigen, was zu einer langsamen Reaktionszeit oder sogar zu ANR-Nachrichten führen kann. Daher ist es wichtig, bei der Arbeit mit Bitmaps das Threading entsprechend zu verwalten.
- Wenn Ihre Anwendung mehrere Bitmaps in den Arbeitsspeicher lädt, müssen Sie das Arbeitsspeicher- und Laufwerks-Caching sorgfältig verwalten. Andernfalls kann die Reaktionsfähigkeit und -flüssigkeit der Benutzeroberfläche Ihrer App beeinträchtigt werden.
In den meisten Fällen empfehlen wir die Verwendung der Glide-Bibliothek zum Abrufen, Decodieren und Anzeigen von Bitmaps in Ihrer App. Glide entlastet den Großteil der Komplexität bei der Verarbeitung dieser und anderer Aufgaben im Zusammenhang mit der Arbeit mit Bitmaps und anderen Bildern unter Android. Informationen zum Verwenden und Herunterladen von Glide finden Sie im Glide-Repository auf GitHub.
Sie können auch direkt mit den untergeordneten APIs arbeiten, die in das Android-Framework integriert sind. Weitere Informationen dazu finden Sie unter Große Bitmaps effizient laden, Bitmaps im Cache speichern und Bitmapspeicher verwalten.