如何獲取所有應用程序的啓動計數?我有已安裝的應用程序的完整列表,並且在安裝應用程序時我有廣播,但我需要任何應用程序的啓動計數。 我看到這個app與此。你有cpu時間,前臺時間和發佈計數......他們怎麼做?廣播有應用程序啓動計數
回答
我從來沒有做過,但我很確定http://developer.android.com/reference/android/app/ActivityManager.html提供您需要的信息。
終於我做到了!我創建一個AlarmManager,每分鐘檢查一次正在運行的應用程序,如果一個應用程序正在運行(後臺或活動),我檢查最後一次看到它。如果這個時間大於一分鐘我增加計數。 現在我試圖讓應用程序發送到外部服務器的數據量有多少,我有這個數據,但是你知道這個數據是從我安裝了我的應用程序還是從我啓動我的智能手機?
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%,所以現在這是最好的解決方案,我已經找到
它非常糟糕的方式來做到這一點,因爲它會消耗電池,在那裏應該是一些更好的方法來做到這一點。 –
@AndreaC如果我使用了一個2小時的應用程序,根據你的回答將啓動計數 –
如果您已經植根您的設備,您還可以閱讀/data/system/usagestats/usage-*
中的使用統計文件以瞭解詳細信息。
- 1. 使用廣播重新啓動應用程序 - Android
- 2. 無法啓動應用程序的廣播意圖
- 3. 啓動應用程序時SIM是廣播接收機
- 4. 安裝啓動應用程序從廣播接收器啓動崩潰
- 5. 是否有用戶啓動時的廣播和Android應用程序?
- 6. 應用程序啓動計數
- 7. 如果應用程序未啓動,廣播接收器無法播放
- 8. 應用程序沒有接收廣播發射啓動時,但從其他應用程序發起時接收
- 9. 我想在廣播來啓動系統應用程序活動的onReceive()methord
- 10. 無法在應用程序啓動時調用廣播接收器
- 11. 我可以使用廣播接收器啓動另一個應用程序嗎?
- 12. 如何知道應用程序啓動?使用廣播接收器
- 13. Android應用程序更新廣播
- 14. UWP Windows 10:是否有變量計數應用程序啓動?
- 15. (Android)檢測何時啓動另一個應用程序/啓動計數所有應用程序
- 16. 服務啓動廣播?
- 17. 通過外部廣播接收器重新啓動應用程序
- 18. 如何在安裝應用程序時啓動廣播接收器?
- 19. Android應用程序與廣播接收器後重新啓動爲主
- 20. Android:如何在接收特定廣播時啓動我的應用程序?
- 21. 註冊我的廣播接收器在應用程序啓動時運行?
- 22. Android廣播接收器,每次應用啓動時都會收到廣播
- 23. 計時器在應用程序啓動時自動啓動
- 24. 應用程序窗口預計將有在應用程序啓動年底
- 25. 有序啓動的Web應用程序
- 26. 啓動廣播接收器根本沒有運行啓動
- 27. 廣播接收器完成沒有完成所有應用程序的活動
- 28. 廣播接收器在後臺應用程序不活動
- 29. 在應用程序啓動時啓動應用程序類
- 30. 從應用程序啓動「啓動器應用程序抽屜」?
隨着活動管理者你不能有推出的時間..可能隨着電池狀態你可以有...你有任何想法,如果其可能的浩有廣播messagge當用戶午餐一個應用程序? 謝謝 – AndreaC
反正我看不出來。 – jsmith
這是不可能的,這個應用程序有https://play.google.com/store/apps/details?id=com.rootuninstaller.bstatspro&hl=it – AndreaC