我有一個應用程序,通過加載所有的幀作爲單獨的位圖加載到內存,並通過他們分配給imageViews
他們的線程循環動畫GIF的。Android應用內存限制
imageViews
位於片段上,片段位於pageViewer
上。我已將頁面瀏覽器的屏幕外限制設置爲1,所以我一次最多處理三個片段/ gif。
現在與2.1模擬器我得到這個錯誤,如果所有三個圖檔是在內存中在同一時間:
11-25 17:28:34.269: E/dalvikvm-heap(524): 292000-byte external allocation too large for this process.
11-25 17:28:34.269: E/(524): VM won't let us allocate 292000 bytes
我得到2.3.3,但是不能在4.0.3仿真器或同樣的錯誤我的星系標籤10.1運行4.0.4 - 這兩個運行良好,相當快。
我試過加載1024x999 3.2MB gif,甚至4.0.3模擬器都失敗了,但我的平板電腦仍然設法顯示一些gif,直到它也停止加載它們;該應用使用了大約250-300MB的RAM。
那麼有沒有一種方法可以預測真實設備的工作方式?我應該瞄準更高版本的API嗎?
GIF是從網上加載的,還是由您提供?如果他們是資源,則應該使用動畫代替。這是最近問:http://stackoverflow.com/questions/12977039/android-loading-images-with-a-delay/12978091#12978091 – dmon
另請注意,每個應用程序的限制遠小於設備的內存。 – dmon
「該應用程序使用了大約250-300MB的RAM。」這太過分了。 http://stackoverflow.com/questions/2630158/detect-application-heap-size-in-android有些設備的總共沒有250MB – zapl