我的Android應用程序大小隻有5MB,但是當我運行應用程序時,它使用了大量RAM(如12-18 MB左右)以及更多的ics設備。我試圖找到一個解釋,爲什麼我的應用程序使用大量的RAM,我也使用瞭解析推送服務。我的應用程序是圖像密集型,可能是一個可能的原因。我如何減少我的應用程序的RAM消耗。使用大量內存的Android應用程序
1
A
回答
5
原因很可能是您的應用程序是圖像密集型的。總的來說,圖像在RAM中佔用的內存要多於在磁盤上的內存。要查看圖像將使用多少內存,請使用以下公式:
For ARGB images: memory(in bytes) = width * height * 4
這是因爲ARGB圖像每像素有4個通道。
For RGB images: memory(in bytes) = width * height * 3
這是因爲RGB圖像每像素有3個通道。
所以要使用更少的內存,請嘗試縮小圖像尺寸,或者從不需要它的圖像中刪除Alpha通道。
3
設備上的5MB包含大量的壓縮數據。像您的圖像這些壓縮爲JPG或PNG格式的圖像在您的應用運行時會被解碼爲相當大的位圖。
作爲一個例子,一個300kB的PNG有時可以在內存中變成一個6MB的位圖。
在ICS上,使用了更多的內存,因爲圖像被複制用於硬件加速。
爲了減少RAM消耗,請使用較小的圖像(如較小的尺寸,而不是更多的壓縮),減少您使用的視圖數量,並確保您沒有泄漏任何內存。
相關問題
- 1. 使用大量內存的IIS應用程序池進程
- 2. Android應用程序使用大量內存的原因以及如何減少
- 3. 減少Android應用程序中的內存使用量
- 4. Actionscript/Flash/AIR應用程序 - 增加最大內存使用量
- 5. QProgressBar使應用程序消耗大量內存
- 6. 我的Android應用程序內存使用量過大(由內存管理器報告)
- 7. Android:爲其他應用程序使用的應用程序分配的內存
- 8. 爲什麼這個應用程序需要大量的內存?
- 9. 這是否意味着應用程序的內存使用量與應用程序的大小相同
- 10. 在Android上使用應用程序內的應用程序
- 11. Android應用程序有大緩存?
- 12. 關於android應用程序的內存大小
- 13. 進程使用大量內存
- 14. 爲什麼一個簡單的Android應用程序需要大容量內存
- 15. 優化具有大量實例的.NET應用程序的內存佔用量
- 16. 如何降低我的應用程序的內存使用量?
- 17. 如何減少我的Android應用程序使用的內存量
- 18. Android中的應用程序的內存(CPU)使用情況
- 19. 視頻內存和Android應用程序
- 20. Android應用程序CursorWindow內存錯誤
- 21. Android應用程序內存完整性
- 22. Android應用程序OrbBasic持久內存
- 23. android應用程序內存泄漏
- 24. 我的Android應用佔用了大量的內存
- 25. 如何讓我的程序的最大內存使用量OSX
- 26. MongoDB使用大量內存
- 27. Nhibernate使用大量內存
- 28. 如何測量java應用程序的使用內存?
- 29. 測量分佈式應用程序的內存使用情況
- 30. 如何獲得的內存應用程序使用量