2010-02-24 7 views
2

어떤 응용 프로그램을 실행하고시작 시간

+0

응용 프로그램을 시작한 시점이나 응용 프로그램이 사용 가능하게 된 시간을 측정 하시겠습니까? –

+0

차이점은 무엇입니까 ... 화면이 표시 될 때 (실제로 내가 의미하는 것) –

+0

내 대답은 여기에보세요 - http://stackoverflow.com/a/33994484/2308720 – Oleksandr

답변

6

흠 - 먼저 정확하게 말하면 안드로이드에서 응용 프로그램보다는 활동을 시작한다는 것을 지적해야합니다!

응용 프로그램의 시작 지점이 LAUNCH 의도를 처리하는 활동이기 때문에 질문을 "활동 시작 시간 측정 방법"으로 해석 할 수 있습니다.

여기서는 Activities 라이프 사이클을 살펴 보시기 바랍니다 : https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle.

멋진 그래프를 보면 시작 시간이 본질적으로 onCreate(), onStart()onResume()에 소비 된 시간임을 알 수 있습니다.

이것을 측정하려면 traceview을 사용하는 것이 좋습니다. 실제로 시간을 보냈던 모든 세부 정보가 표시됩니다. onCreate()의 시작 부분에 Debug.startMethodTracing("startUp");을 사용하여 추적을 시작하고 onResume()의 끝에 추적을 끝내고 Debug.stopMethodTracing();으로 추적을 시작하십시오.

onCreate()은 인스턴스 당 한 번만 호출되기 때문에 onResume()을 여러 번 호출해도 걱정할 필요가 없습니다.이 메서드는 stop 메서드를 두 번 호출하므로 아무런 해가되지 않습니다.

재미있게 보내십시오 - 나는 트레이스 뷰의 가능성을 아주 좋아합니다!

+0

좋은 조언 주셔서 감사합니다! 추적보기는 http://developer.android.com/tools/debugging/debugging-tracing.html에서 확인할 수 있습니다. Application 클래스 인스턴스는 Activity 이전에 시작되므로 Application.onCreate()에 측정을 시작해야합니다. – kotucz

1

을 위해 빠른 내가 사용하는 것이 로그 캣 (이 일부 코드를 다음의 더 나은 일을 할 수있는 경우) 안드로이드에 출시 시간을 계산하는 가장 좋은 방법은 , 다음과 같이 입력하십시오.

더 큰 작업을 수행하려면 Traceview을 시도하십시오.

-1

위의 답변 범위에서 JIT로 인해 Traceview가 실시간으로 제공 할 수없는 것은 프로파일 링 중에 해제되어 있습니다. Traceview는 소스 코드를 실행하는 시간을 모니터링하는 쓸모없는 도구입니다. (Traceview는 위에서 언급 한 startMethodTracing() 및 stopMethodTracing()과 함께 Debug 클래스를 사용하여 stacktrace를 확인하는 데 유용한 도구입니다).

나는 (예를 들어 이클립스 플러그인을 통해) systrace를 사용하는 것이 좋습니다. 이것은 실행의 실시간 (및 많은 다른 기능)을 계산하는 데 가장 좋은 도구입니다.

은 자세한 내용을 살펴 가지고 : 가끔은 Systrace이 작동하지 않습니다하려면, 또한 http://developer.android.com/tools/debugging/systrace.html

을 (FS 매핑에서 따라 다름).

당신은 의 올바른으로 '시스템 \ 코어 \ ROOTDIR \ init.rc'를 확인해야 'debugfs의' 장착. 로해야합니다 는 'debugfs의/SYS/커널/디버그/SYS/커널/디버그 마운트'

1

이있을 것입니다에서 응용 프로그램의 실행 시간을 표시하는

system_process I/ActivityManager﹕ Displayed com.android.vending/com.google.android.finsky.activities.MainActivity: +549ms 

같은 자동 로그 뭔가 사용자가 앱에 입력하면 사용자와 더욱 상호 작용할 준비가됩니다. ActivityManager에서 가져온 것입니다.

또한 log를 사용하여 onCreate()에서 onResume까지의 시간을 측정하는 것이 좋습니다. 이 정보는 API 버전 19 이상 기본적으로 로그 캣에 기록됩니다

-

1

당신은 대답 here을 찾을 수 있습니다. 당신이 찾는 명령 줄에서 로그 캣 출력을 추적, 또는 터미널의 경우 경과 시간은 간단

- 의 핵심은 바로 이곳에서 찾고 입니다. Android Studio에서 경과 시간을 찾으려면 logcat보기에서 필터를 사용 중지해야합니다. 앱 자체가 아닌 시스템 서버가이 로그를 제공하기 때문에 필터를 사용하지 않도록 설정해야합니다.

다음은 설명서의 예제입니다.

ActivityManager: Displayed com.android.myexample/.StartupTiming: +3s534ms

추출물은 documentation에서입니다.

관련 문제