2012-02-01 10 views
0

runnungサービスのリストと各サービスで使用されているメモリをリストビューで表示するアプリケーションのようなタスクマネージャを開発したいと考えています。サービスで使用されているメモリ

私は、実行中のサービスが

ActivityManager am = (ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE); 
List<RunningServiceInfo> procInfos = am.getRunningServices(maxNum); 

を使用して得ることができることしかし、リストビューでそれらをdislayする方法ともそれらの一つ一つが使用するメモリを取得する方法を考え出しましたか? 私はアンドロイドの初心者ですから、誰でも詳細な方法で私を説明することができたら...

私は以下を試しました。私はlogcatのサービス名etcを見ることができましたが、アプリケーションは強制終了しています。

package com.example.ServiceList; 

import java.util.List; 

import android.app.Activity; 
import android.app.ActivityManager; 
import android.app.ActivityManager.MemoryInfo; 
import android.app.ActivityManager.RunningAppProcessInfo; 
import android.app.ActivityManager.RunningServiceInfo; 
import android.content.Context; 
import android.os.Bundle; 
import android.util.Log; 
import android.widget.TextView; 

public class ServiceListActivity extends Activity { 
/** Called when the activity is first created. */ 
    int maxNum = 5; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     TextView tv = new TextView(this); 
     this.setContentView(tv); 

     android.os.Debug.MemoryInfo[] mInfo; 
     int[] processid = null; 

     ActivityManager am = (ActivityManager)this.getSystemService  (Context.ACTIVITY_SERVICE); 

    List<RunningServiceInfo> procInfos = am.getRunningServices(maxNum); 

    for(int i = 0; i < procInfos.size(); i++){ 

      tv.setText(tv.getText().toString()+ " " + "\n"); 
     Log.v("TaskMgr Stringe", procInfos.get(i).service.toString()); 
     Log.v("TaskMgr class name", procInfos.get(i).service.getClassName()); 
     processid[i]=procInfos.get(i).pid; 
     String s = " "+processid[i]; 
     Log.v("TaskMgr process id",s); 


     Log.v("TaskMgr process memory", am.getProcessMemoryInfo(processid[0]); 
    } 

     mInfo = am.getProcessMemoryInfo(processid); 

     int dp= mInfo[0].dalvikPss; 
     String s1= " " + dp; 
     tv.setText(tv.getText().toString()+ " " + s1);  
    } 
} 

答えて

1

あなたはRunningServiceInfoはあなたのListViewのデータに使用できること...それが利用可能である持っているものを見ることでを開始する必要があります。

これが必要なものでなければ、アンドロイドのソースにパッケージされている元のバッテリーアプリケーションの仕組みを知る必要があります。見るべき良いブランチは、バージョン2.3.3です。

を参照するには、アンドロイドのソースをいつも持っていると、頭痛の種になることはありません。

+0

Sahiti D、答えをマークするのを忘れないでください! – JoxTraex

+0

あなたのお返事ありがとうございました.. RunningServicesInfoを見て、私が解決策を見つけるのを助けました.. – DSP

関連する問題