2013-02-27 182 views
4

我知道這聽起來很瘋狂,但不:)如何使Android應用程序「吃」的RAM內存

我當上具有較低的RAM內存手機運行就會被殺死的應用程序。 要測試這個應用程序,我需要的東西,'吃'內存,我做到目前爲止,通過啓動很多遊戲,打開應用程序,按回家按鈕,只是吃RAM內存...

所以我這是愚蠢的浪費10-20分鐘只是爲了填充RAM內存與'垃圾',也許有辦法做一些其他的虛擬應用程序,我只是用來'吃'RAM的內存在手機上這樣做,所以我的其他應用程序將被Android系統殺死...

到目前爲止有沒有人有這個問題?並可以用一個應用程序做到這一點? 僅僅從一個應用程序就可以吃掉很多內存嗎?

感謝

+0

您是否嘗試過使用仿真器與低內存設置? – kamituel 2013-02-27 09:43:19

+0

我需要一個真正的設備:(,仿真器不是一個選項,我知道我可以設置AVD設置,但我可以幫助我解決這種情況 – Lukap 2013-02-27 09:43:52

+0

創建幾個應用程序使用不同的軟件包名稱,但使用相同的代碼內存位,但保留一些後臺線程運行,直到你點擊一個按鈕使它停止。確保後臺線程正在訪問一個大的內存對象(如大圖像)。你只能用一個應用程序佔用這麼多的內存,所以你會 – 2013-02-27 09:46:56

回答

0

這只是胡亂猜測,但在這裏創建一個活動類,一個抽象服務類和擴展抽象的幾項具體服務的應用程序。

抽象服務類會吃內存,你可以做一些簡單的事情,比如從資源中加載相同的位圖並將其放入LruCache中,休眠幾個毫秒並重復。

然後您將創建擴展抽象一些服務類,但不需要進一步的代碼,只需

public class MemoryEaterService_01 extends AbstractMemoryEaterService{} 

現在從活動啓動你會做發射服務的明顯的事情。

現在聰明的部分開始,在清單,你會宣佈這些服務的每一個不同的進程(基本上開始有自己的堆內存在不同的虛擬機服務的每一個)是這樣的:

<service android:enabled="true" 
    android:exported="true" 
    android:name="memoryEater_01" 
    android:process="com.yourpackage.memory_eater_01" > 
</service> 

如果你嘗試了,請告訴我它是否有效,我對此很好奇。

0
在命令提示符下

,鍵入以下命令來獲取所有與它們的優先級(很好)工藝

例如:CMD> ADB殼PS -p

所以採取一個過程和使用renice其優先級爲某個值(範圍爲-20至+20)更低的值,有更多的優先級。

如:亞行外殼renice只能-20 782 [亞行外殼renice只能] 通過這種方式,我們可以讓這個過程吃更多的內存,通過這種方式

0

巨大的位圖只加載到列表中週期或顯示他們在查看你是否想要。

相關問題