我想了解dumpsys gfxinfo日誌的時間信息。它看起來像這樣:瞭解dumpsys的時間信息gfxinfo
Applications Graphics Acceleration Info:
Uptime: 16264702 Realtime: 28169900
誰能告訴我如何將這些數字與System.currentTimeMillis()?
我想了解dumpsys gfxinfo日誌的時間信息。它看起來像這樣:瞭解dumpsys的時間信息gfxinfo
Applications Graphics Acceleration Info:
Uptime: 16264702 Realtime: 28169900
誰能告訴我如何將這些數字與System.currentTimeMillis()?
long uptime = SystemClock.uptimeMillis();
long realtime = SystemClock.elapsedRealtime();
pw.println("Applications Graphics Acceleration Info:");
pw.println("Uptime: " + uptime + " Realtime: " + realtime);
同樣來自SystemClock描述:
三個不同的時鐘是可用的,並且他們不應該混淆:
System.currentTimeMillis()
是標準的 「牆」 時鐘(時間和 日期)表示自紀元以來的毫秒數。由用戶或電話網絡(見setCurrentTimeMillis(long)
), 設置的掛鐘可以是 ,因此時間可能會跳躍或轉發不可預測。此時鐘 只能在與實際日期和 時間的對應關係很重要時才使用,例如在日曆或鬧鐘應用程序中。 時間間隔或經過時間測量應使用不同的時鐘。如果您使用的是System.currentTimeMillis()
,請考慮收聽ACTION_TIME_TICK
,ACTION_TIME_CHANGED
和ACTION_TIMEZONE_CHANGED
意圖廣播以查明時間何時更改。
uptimeMillis()
以系統啓動後的毫秒計算。當系統進入深度睡眠(CPU關閉,顯示黑暗,設備等待外部輸入)時,此時鐘停止,但不受時鐘縮放,空閒或其他節能機制的影響。這是大多數間隔時間的基礎,例如Thread.sleep(millls)
,Object.wait(millis)
和System.nanoTime()
。這個時鐘保證是單調的,並且當間隔不跨越設備睡眠時適用於間隔定時。大多數接受時間戳值的方法目前都會使用uptimeMillis()
時鐘。
elapsedRealtime()
和elapsedRealtimeNanos()
返回系統啓動以來的時間,幷包含深度睡眠。這個時鐘保證是單調的,即使在CPU處於省電模式時也會繼續保持時鐘狀態,所以是通用間隔時序的推薦基礎。
謝謝!亞歷克斯。這是全面的。 –
嗨!亞歷克斯,你能解釋uptimeMillis()和elapsedRealtime()與從/ proc/uptime得到的兩個數字有關嗎,似乎實時匹配第一個數字。我想知道這兩個數字是否可以推斷正常運行時間。謝謝! –