Wczytywanie bitmap w aplikacji na Androida jest trudne z kilku powodów:
- Bitmapy mogą bardzo łatwo wyczerpać budżet pamięci aplikacji. Na przykład aparat w telefonie Pixel robi zdjęcia o rozdzielczości do 4048 × 3036 pikseli (12 megapikseli).
Jeśli używana konfiguracja mapy bitowej to
ARGB_8888, domyślna dla Androida 2.3 (poziom interfejsu API 9) i nowszych wersji, załadowanie jednego zdjęcia do pamięci zajmuje około 48 MB (4048 × 3036 × 4 bajtów). Tak duże zapotrzebowanie na pamięć może natychmiast wykorzystać całą pamięć dostępną dla aplikacji. - Wczytywanie bitmap w wątku UI może pogorszyć wydajność aplikacji, powodując powolne reagowanie lub nawet wyświetlanie komunikatów ANR. Dlatego podczas pracy z mapami bitowymi ważne jest odpowiednie zarządzanie wątkami.
- Jeśli aplikacja wczytuje do pamięci wiele bitmap, musisz umiejętnie zarządzać pamięcią i pamięcią podręczną na dysku. W przeciwnym razie może to negatywnie wpłynąć na szybkość reakcji i płynność interfejsu aplikacji.
W większości przypadków zalecamy używanie biblioteki Glide do pobierania, dekodowania i wyświetlania map bitowych w aplikacji. Biblioteka Glide upraszcza większość złożonych zadań związanych z obsługą map bitowych i innych obrazów na Androidzie. Informacje o używaniu i pobieraniu Glide znajdziesz w repozytorium Glide w GitHubie.
Możesz też pracować bezpośrednio z interfejsami API niższego poziomu wbudowanymi w platformę Androida. Więcej informacji znajdziesz w artykułach Efektywne wczytywanie dużych map bitowych, Buforowanie map bitowych i Zarządzanie pamięcią map bitowych.