안드로이드 개발 질문/답변
(글 수 45,052)
공부하던중에 궁금한게 떠올라서 글을 올려봅니다.
thread상에 surfaceview를 그리고 계속 렌더링을 하는걸 보고있는데 사람이 인식하기에 30프레임정도가 가장 적당하다는 글을 어디서 본적이 있어서 떠올랐습니다.
thread상에 루프를 돌리면 기기마다 속도가 다를텐데 그러면 일정한 프레임률을 조절하는 방법이 있나요?
2012.12.17 11:28:17
opoenGL 기반으로 작업한다면
v-sync 에 관해서 검색해 보세요
만약 안드로이드 고유의 SufaceView 에 의한
Canvas 에서 모든 작업을 한다면 메서드 프로파일링을 통해서
시간을 체크 해보셔아 할 듯 합니다.
직접 시간을 쪼개어 FPS를 유지하고 싶다면 1프레임의 평균시간을
일정하게 유지하기 위해서 딜레이값을 적절히 넣어야 합니다.
만약 1초에 평균 60프레임이 나오는데 초반 20프레임은 엄청 빠르고 나머지 40프레임이
늦게 나온다면 깜빡이거나.. 버벅거리는 현상이 나타나 보여서 부자연 스럽기 때문에
일정하게 1프레임 속도가 유지 되어야 매끄럽게 보일 수 있습니다.




타임값을 계속 저장하고 일정시간 이상 지났으면 드로우하고 시간을 갱신하면 되지 않을까 합니다.