我在Galaxy S4用戶的應用程序中有很多「內存不足」報告。使用位圖時在s4上的內存不足
該應用正在使用位圖。它有一個圖形用戶界面。它適用於所有設備,但在S4上它會崩潰。
你知道我們是否需要S4的特殊內存管理?
我在Galaxy S4用戶的應用程序中有很多「內存不足」報告。使用位圖時在s4上的內存不足
該應用正在使用位圖。它有一個圖形用戶界面。它適用於所有設備,但在S4上它會崩潰。
你知道我們是否需要S4的特殊內存管理?
我不相信S4引入了一些與內存管理或圖像不同尋常的東西。我想看看應用程序的內存使用情況將有所幫助。按照本指南查看可能的泄漏和應用程序的內存消耗。
http://developer.android.com/tools/debugging/debugging-memory.html
既然你說你應對你的應用程序的圖像......在我的應用我曾與位圖內存問題。一個好的提示是使用LRUCache來緩存和管理位圖。按照下面的鏈接瞭解LruCache。
http://developer.android.com/training/displaying-bitmaps/cache-bitmap.html
希望這有助於!
也看看這個:http://developer.android.com/training/displaying-bitmaps/index.html – luckylukein
爲了解決這個問題,您需要了解圖像如何使用內存。
想象一幅800x800像素的圖像。沒有任何縮放,這將需要大約2.5MB的內存。寬x高x 4字節。
所有加載的圖像都存儲在大小有限的堆上(這裏有很多關於堆大小的討論)。
現在將該圖像加載到顯示在1024x768屏幕上的ImageView
中,ImageView的大小爲800x800 - 與圖像大小相同。您按照建議使用DIP,以便擴展您的用戶界面。
您的1024x768顯示屏有786,432像素。 S4擁有1920x1080 = 2,073,600像素。大約是1024x768設備的2.6倍。
如果您不對縮放該圖像進行任何操作,並且您沒有使用密度和分辨率「桶」資源文件夾,那麼現在該圖像需要2.5x2.6MB = 6.6MB。
關鍵的一點是,除非你控制它,你的圖像將使用 不同的堆內存(這是有限的,不要緊 設備多少RAM有)不同的設備。
我懷疑你的應用在Nexus設備上也會有問題。
http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
http://developer.android.com/guide/practices/screens_support.html
有沒有人嘗試在Nexus 5?你是否將位圖縮放到屏幕大小? S4有一個非常漂亮的屏幕 - 任何縮放到屏幕尺寸的東西都會在該設備上使用更多的內存。 – user1676075
我在旋轉器上使用了一些不同的位圖,沒有縮放到整個屏幕。任何時候我開始活動時,內存的某些部分都會丟失。 – Hamid