Jestem całkiem nowym użytkownikiem Androida i rozwijałem grę. Od czasu do czasu mam zgłoszenie użytkowników z poziomu memory exceptions
, co jest dla mnie zaskakujące, ponieważ utworzone przeze mnie bitmapy mają rozmiar co najwyżej 200 kb. Dzwonię pod numer BitmapFactory.decodeResource()
, gdy tylko utworzę nowy sprite
. Ponieważ moja aplikacja to gra obrony zombie, możesz spodziewać się, że dość często tworzę sprite'y.Android: Wyjątek dotyczący braku pamięci/w jaki sposób decodeResource dodaje się do budżetu maszyny wirtualnej?
Za każdym razem, gdy utworzę sprite, wywołuję zasób dekodowania w celu wygenerowania bitmapy. Moje pytanie brzmi, czy gdybym miał tylko wywołać zasoby dekodowania na początku każdego działania i odnieść się do mapy bitowej na poziomie pakietu, czy zmniejszyłoby to ilość pamięci umieszczonej na budżecie VM?
Od docs 'inPurgeable': Uwaga: Ta flaga jest ignorowana, gdy używana z' decodeResource (Zasoby, int, android.graphics.BitmapFactory.Options) 'lub' decodeFile (łańcuch, android.graphics.BitmapFactory. Opcje) '. –