2013-08-04 4 views

답변

1

:

또한
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_CHANGEDACTION_TIMEZONE_CHANGED 의도 방송을 듣고 고려하십시오.

uptimeMillis()은 시스템이 부팅 된 후 밀리 초 단위로 계산됩니다. 이 클럭은 시스템이 딥 슬립 모드 (CPU 꺼짐, 디스플레이 어둡기, 외부 입력 대기 디바이스)로 들어갈 때 멈추지 만 클럭 조정, 유휴 또는 다른 절전 메커니즘의 영향을받지 않습니다. 이것은 Thread.sleep(millls), Object.wait(millis)System.nanoTime()과 같은 대부분의 간격 타이밍의 기초입니다. 이 클럭은 단조 로움이 보장되며, 인터벌이 장치 슬립을 확장하지 않을 때 인터벌 타이밍에 적합합니다. 타임 스탬프 값을 허용하는 대부분의 메서드는 현재 uptimeMillis() 클럭을 필요로합니다.

elapsedRealtime()elapsedRealtimeNanos()은 시스템 부팅 후 시간을 반환하며 딥 슬립을 포함합니다. 이 클럭은 단조 로움을 보장하며 CPU가 절전 모드 일 때도 계속 틱하므로 일반 용도의 타이밍 타이밍에 권장되는 기준이됩니다.

+0

고마워요! 알렉스. 포괄적입니다. –

+0

안녕하세요! 알렉스, uptimeMillis()와 elapsedRealtime()이/proc/uptime에서 오는 두 개의 숫자와 관련되는 방법을 설명 할 수 있습니까? 실시간이 첫 번째 숫자와 일치하는 것으로 보입니다. 이 두 숫자로 가동 시간을 추측 할 수 있는지 알고 싶습니다. 감사! –