すべてのアプリケーションの起動回数を取得するにはどうすればよいですか? インストールされているアプリの完全なリストがあり、アプリケーションがインストールされたときにブロードキャストがありますが、アプリの起動回数が必要です。私はこれでこのアプリを見ます。CPU時間、フォアグラウンド時間、および起動カウントがあります...どうやってそれを行うのですか??
1399 次
3 に答える
3
最後に私はそれをします!実行中のアプリケーションを毎分チェックする AlarmManager を作成します。アプリケーションが実行中 (バックグラウンドまたはアクティブ) の場合は、最後に見た時間をチェックします。この時間が 1 分を超える場合は、カウントを増やします。今、アプリケーションが外部サーバーに送信したデータの数を取得しようとしています。このデータはありますが、このデータがアプリケーションをインストールしたときのものなのか、スマートフォンを起動したときのものなのか知っていますか?
Long txByte = TrafficStats.getUidTxBytes(listApp.getAppsRunning().get(i).getPid());
このコードは、カウント時間を取得するためのものです
for(int i=0; i< listApp.getAppsRunning().size(); i++)
{
String pName = listApp.getAppsRunning().get(i).getPackageName();
String Ldate = "0";
int Nrun = 0;
Long Ntime = null, Ndata = null ;
Cursor c=db.fetchInstalled(pName);
if(c.moveToFirst())
{
Nrun = c.getInt(2);
Ldate = c.getString(3);
Ntime = c.getLong(4);
Ndata = c.getLong(5);
Log.d("db", "last time: " + Nrun+ " time: " + Ldate);
}
if(Ldate.equalsIgnoreCase("0"))
{
Nrun++;
db.updateLaunchAndTime(Nrun, lastUpdated, pName, Ntime, Ndata);
}
else
{
SimpleDateFormat dateFormat = new SimpleDateFormat("MMMM dd, yyyy h:mmaa");
Date lastDate = null;
Date currentDate = null;
try {
lastDate = dateFormat.parse(Ldate);
currentDate = dateFormat.parse(lastUpdated);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//int pid = android.os.Process.getUidForName(listApp.getAppsRunning().get(i).getPid());
Long txByte = TrafficStats.getUidTxBytes(listApp.getAppsRunning().get(i).getPid());
Log.d("pid process", "pid: " + listApp.getAppsRunning().get(i).getPid());
Ndata = txByte;
Log.d("data send", "send: " + Ndata);
long diff = currentDate.getTime() - lastDate.getTime();
if(diff > 100* 1000)
{
Log.d("db", "difference plus 1 min app: " + pName);
Nrun++;
}
Ntime = Ntime+diff;
db.updateLaunchAndTime(Nrun, lastUpdated, pName, Ntime, Ndata);
}
//db.insertRunningP(pName , lastUpdated);
}
db.close()
このコードの消費電力を確認したところ、バッテリー全体の 3% 未満でした。今のところ、これが私が見つけた最良の解決策です。
于 2013-02-04T16:26:58.323 に答える
2
私はこれまでやったことがありませんが、http://developer.android.com/reference/android/app/ActivityManager.htmlが必要な情報を提供していると確信しています。
于 2013-01-17T16:40:25.667 に答える
1
デバイスをルート化した場合は、使用統計ファイルを読ん/data/system/usagestats/usage-*
で詳細情報を確認することもできます。
于 2013-08-26T07:37:57.703 に答える