다른 개발자분들의 의견을 참고하고자 질문을 드립니다.
현재 windowmanager에 view를 addView하는 방식으로 앱들을 실행하고 있습니다.
예를 들면 800(w)x480(h), mdpi 해상도 단말기에 반씩 분리되어 좌측은 네비게이션 맵을 실행, 우측은 mp3 플레이어가 실행되고 있습니다. 이 때 UI 업데이트가 발생하겠지요.
네비게이션 맵+mp3플레이어만 실행되면 cpu 사용율은 40%이상 차지합니다.
그리고 이 상태에서 300 X 100 사이즈의 View를 windowmanager에 addView를 합니다.
결국 네비게이션 맵+mp3플레이어 위에 이 View가 있는 상태입니다.
이 View는 bitmap을 주기적(최소 10fps)으로 onDraw합니다. 여기서 문제가 되는 것이 bitmap을 onDraw 할 때 버벅거립니다.
물론 단독으로 처리하면 버벅거림은 없습니다.
제 생각엔 cpu 사용율은 둘째치고 다른 앱들에서도 UI 업데이트가 발생하는 상황에서 안드로이드 UI Thread가 iOS와는 다르게 실시간으로 우선순위를 높여서 처리하지 않기 때문에 버벅거림은 피할 수 없는 상황이라고 판단이 됩니다.
안드로이드 UI Thread의 우선순위가 NORM_PRIORITY(=5)로 할당되며 UI 처리가 크더라도 변함이 없는 것으로 알고 있습니다. 또한 GC가 발생하면 영향도 받을 것 같습니다.
다른분들의 의견은 어떠신가요?