안녕하세요 계속 같은 문제로 골치 썩이는 학생입니다.
아래와 같은 구조의 어플을 만들고 있습니다.

스타트 버튼을 터치하면 그 위의 두 텍스트뷰가 팝업이 됩니다.
이들은 최상위 윈도우에 있어서 홈 버튼을 눌러도 계속 떠있습니다.
'터치하세요' 텍스트뷰를 누르면 OnTouchListener가 등록되어있기 때문에 터치를 감지하여 event.getDownTime()을 이용하여 누른 시점(start time)을 확인합니다.
그리고 '터치하세요'의 내용이 '터치하셨습니다' 로 바뀌고, TextWatcher도 등록하였기 때문에 호출되는 afterTextChanged()에서 종료시점(stop time)을 체크하여 오른쪽 텍스트뷰에 Response Time(stop time - start time)을 표시해줍니다.
문제는 어플리케이션 레벨이기 때문에, 실제 텍스트뷰가 업데이트 된 시점을 정확히 잡아내지 못하고 있습니다.
kernelshark라는 프로그램으로 커널을 확인하면, SurfaceFlinger가 나오기 수십 ms 이전 지점을 stop time으로잡고 있습니다.
코드상으로는 TextWatcher로 afterTextChanged()가 호출된 뒤에 종료시점(stop time)을 찍었는데도 그러합니다.
지금보다 더 정확하게 화면에 나오는 시점을 찍으려면 어떤 방법이 있을까요?
아래 갈색선이 start time으로 나오고 초록색선이 stop time으로 나오는 부분입니다.
좀 더 SurfaceFlinger 나오는 시점과 일치시키고 싶습니다. 감사합니다.
