我一直在尋找到內存管理最近,我創建一個Service
這樣的:內存管理
public class MemoryManagerService extends Service {
private boolean isRunning = true;
private Thread memoryThread;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
Log.v("MemoryThread: ", "Created");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
memoryThread = new Thread(new MemoryManagerThread());
memoryThread.start();
Log.v("MemoryThread: ", "Started");
isRunning = true;
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
//memoryThread.stop();
Log.v("MemoryThread: ", "Stopped");
isRunning = false;
}
private class MemoryManagerThread implements Runnable
{
public MemoryManagerThread() {
}
@Override
public void run() {
while(isRunning) {
try
{
Thread.sleep(5000);
Log.v("Allocated bytes", Long.toString(Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()));
}
catch(Exception e) {}
}
}
}
}
這隻會輸出分配的內存每5秒。這項服務從我的主要activity
開始。當然,應用程序將分配內存,但是擔心的是增加的內存。
我在LogCat
中看到,每5秒鐘分配的字節增加80 bytes
,這意味着16 bytes/sec
。這裏的數字不是很大,但可能是應用程序「永遠」運行,或者直到GC
開始。當應用程序啓動時,它會使用大約14 mb
的內存。我還應該提到我幾乎沒有看到GC_CONCURRENCE
,這意味着GC
由於內存不足而正在運行。我應該擔心我的應用程序中的內存?
這是一個真正的應用程序?對我來說看起來有點無用。 –
我剛剛創建了一個服務,以從我的實際應用程序開始,監視應用程序的內存,並查看內存如何運行。 –
你有沒有記憶問題?爲什麼不使用SDK的內存分析工具? –