2016-07-29 270 views
0

我正在研究我的第一個Android應用程序,儘管這是一個很大的應用程序..我已經完成了我的一半應用程序,但是讓我擔心的是應用程序使用的內存..最初我遇到了問題關於內存不足的例外情況..我首先開始使用Android Studio的MAT(內存分析工具)分析我的應用程序,這很難追蹤內存使用情況..我的應用程序將達到96mb的分配空間並崩潰。然後讀取在互聯網上我使用了Leak Canary,指出了吃內存的靜態資源..現在我的應用程序經常收集垃圾收集,但我仍然發現分配的空間仍然在70 MB左右,就像我的應用程序開始分配30MB時,我使用應用程序約2分鐘,回到初始屏幕分配的空間是不一樣的初始...像我這樣的初學者很難跟蹤內存使用情況核心usi是否有一個最好的方法或工具,它會給我一個清晰的對象分配空間的圖片。正在佔用最大空間的對象..應該被破壞但不被破壞的對象?和保留圖像內存等等等在此先感謝Android內存管理問題

回答

0

這裏有一些與內存管理有關的帖子。

我們在某些時候都是新手,感謝經驗,像這樣的問題已被證明是優秀的「老師」。
就像我在另一篇文章說:

當然導致內存問題,如漏水,OOM和 不必要的資源結合此意願。 有沒有自動的方式來釋放內存。你不能在任何情況下,僅僅依靠 垃圾收集

基本上,你必須確保你分配只有所需的資源,一旦你知道你不會需要他們中了取消分配這些在Lifecyce

我已經寫了代碼(即您可以在項目執行)來處理你的記憶問題進行更詳細的解釋可以在這裏找到:

It can be found here

問候,

+0

我經歷了你的回答......那肯定會幫我清理一些記憶...... Ty – Moulesh

1

其中一個主要'記憶流氓'是位圖。有時,當你在一個視圖中加載一個圖像時,它會在該操作中使用很多內存。我曾經推薦使用像Glide或Fresco這樣的庫,它們可以更好地處理內存問題,並且已經實現了很多共同的功能。

另外,您可以嘗試爲onDestroy方法中的每個活動釋放資源。

儘管如此,如果您能給我們更深入的項目概述,我會很高興。

問候。

+0

我的應用程序是像一個購物應用..和我使用的是單一的活動和休息都是碎片。我會盡力的建議圖書館..請讓我再知道如果你認爲有用的東西是將幫助我克服內存問題.. – Moulesh

+0

檢查裏卡多維埃拉的答案和本教程可能對你有用。 https://www.raizlabs.com/dev/2014/03/wrangling-dalvik-memory-management-in-android-part-1-of-2/ – kikettas

+0

是的,我會通過所有的鏈接,並嘗試優化我的應用程序盡我所能...謝謝你的所有鏈接n引用.. – Moulesh