마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 카메라어플 개발중 박스 빠르게 그리기

0 추천
카메라 어플을 만들고 있습니다.

박스를 33ms 안에 계속 적으로 갱신하고 싶은데.. 실제 invalidate()를 이용하여 ondraw 하면 늦는것 같습니다.

(한 프레임씩 밀리는 느낌)

preview 나와 있는 상태 이기 떄문에 surfaceview 에서 직접 draw 함수를 짜서

넣으려고 하니... canvaslock 를 할수 없다는 exception error 만 발생 합니다.

어떻게 하면 좋은 방법이 있을까요?
만드러보아요 (170 포인트) 님이 2013년 3월 13일 질문

1개의 답변

0 추천
 
채택된 답변
속도가 문제라면, NDK(JNI) 에서 C 로 만드시기를 권장합니다.

프레임버퍼에 직접 그리는 방법도 있습니다.

/dev/graphics/fb0 를 열고 그냥 쓰면 됩니다.

물론, 이것도 Java 단에서 해도 관계 없으나 저는 NDK 에서 C 로 만들었습니다.
JINASYS (5,630 포인트) 님이 2013년 3월 17일 답변
만드러보아요님이 2013년 3월 18일 채택됨
프레임 버퍼에 루트 권한 없이 접근이 가능한가요? 관련 포스팅좀 공유해주시면 안될까요?
답변 감사합니다. ^^;;;;ㅣ
jni 에서     int fp= open("/dev/graphics/fb0", O_RDWR);
    if(fp<0){
        LOGE("failed fp = %d",fp);
        return 0;
    }
열면 -1 즉 못연것으로 나옵니다. 갤2에서 테스트 중인데..
혹 다른 설정이 있어야 하나요?
구글링을좀 해보니... 안드로이드에서 루팅하지 않고서는 frame buffer 에 접근 및 R/W 등이 안되는 것 같은데.. 다른 방법이 있는건가요? 알고 계시면.. 공유 부탁 드립니다.
알고보니 일부 폰에서만 루팅없이 됩니다. (갤텝구형, S2 등)
나머지는 루팅이 필요한 것 같습니다. ㅠㅠ
...