public void run() {
while(mRun){
tick = (System.currentTimeMillis() - CurrTime) * 0.001f;
CurrTime = System.currentTimeMillis();

canvas = null;
try{
canvas = holder.lockCanvas(null); //캔버스 잠그고 내부 버퍼에 그린다.
synchronized (holder) { //다른 쓰레드와 동기화 유지
st1.update(tick); //스테이지 객체 정보 갱신
st1.draw(canvas); //스테이지 객체들 그림 그리기
}
}finally{
if(canvas != null)
holder.unlockCanvasAndPost(canvas); //버퍼 그려진것 view 로 옮긴다.
}
}
}//쓰레드 종료

안드로이드 게임을 만들고 있습니다
쓰레드로 루프를 구성해서 계속적으로
게임의 상태와 그리는 제어를 해주고 있습니다

그런데 너무 프레임이 안나옵니다.
fps 찍어 보면 10프레임에서 14프레임 사이에서 왔다 갔다 합니다.

canvas = holder.lockCanvas(null); 락을 해제 하고 
쓰레드를 돌려 보면 속도가 sleep() 으로 제어하는 만큼 정상 적인 속도로 출력이 됩니다.
30프레임 60프레임 등등...

게임 자체의 유닛들과 배경 움직임이야 시간 값을 구하여서 출력을 해주고 있는지라 어느정도 문제는 없는데 

화면 갱신 시간이 너무 나오질 않아서 화면이 계속 끊겨서 보입니다

해결 방법 없을까요??