안드로이드 개발 질문/답변
(글 수 45,052)
안드로이드 과정을 4주간 교육받으면서 PC원격제어같은 앱을 하나 만들어서 어제 마켓에
등록을 했습니다.
화면 동영상쪽 처리에 무지한지라,, PC의 윈도우 화면을
2초에 1개씩 스마트폰 화면 사이즈로 축소후 zip파일로 압축해서 앱에게 TCP로
전송해주는 앱이에요.
소켓관련 로그는 꾸준히 전송데이터가 잘 받아지는 것 같습니다만,
화면에 그려주는게 꽤 오래 걸리는 것 같네요.
압축을 해제 하고, bmp를 화면에 그려주는 과정에서 오래걸리는 것 같아서,
SurfaceView를 상속받아서 처리했지만, 그다지 성능향상이 있지는 않은 것 같네요.
그러던 도중 안드로이드 성능을 개선시킬 수 있는 방법중에 NDK가 눈에 들어오더라구요..
동영상 재생하는것처럼 PC화면을 동영상 캡쳐해서, 폰으로 재생하는 형태로 하고, 이를 NDK를 이용해서
적용하는 형태로 방향을 잡아야 할 것 같은대, 어디서 부터 접근하고 공부해야 할지 망막합니다.
참고 책이나, 사이트,, 프로젝트.. 등.. 조언을 부탁드립니다.




일단 파일을 zip 파일로 압축 하는 것보다
PC 화면 이미지 파일을 스트림 형태로 변경 하여 그 대로 소켓에 전송 하는게 좋은 방법 같습니다.
그렇게 해서 안드로이드 에서 다시 이미지 파일로 변경 변경 하는게 좋겠다는 생각이 드네요
그리고 2초에 1개씩 화면을 전송 한다고 하셧는데요
일반 PC 원격 제어 프로그램의 경우는
첫 이미지는 전체 이미지로 전송 하고, 그 뒤부터는 변경된 이미지만 전송 하여
속도 문제를 어느 정도 해결 하는 걸로 알고 있습니다.
이 처럼 변경된 부분만 전송 한다거나.
또는 안드로이드 화면은 PC 화면 보다 많이 작다는 점에서
보여 주는 부분만 보내 주는 것도 괜찮을 거라 생각을 해봅니다.
만약 동영상일 경우에는 스트리밍에 대해서 자료를 한번 찾아 보는게 좋을 것 같습니다.
마지막으로 NDK 경우는 자바 보다는 속도가 빠르겠지만,
자바가 추구 하는 호환성 문제는 많이 떨어지게 됩니다.
안드로이드 내에서는 자바 보다는 속도가 빠르겟지만,
TCP 라... 이 부분은 음..
자바의 스트림 전송이 빠르지 않을까 라는 생각이 드는데..
짦은 지식으로는 죄송합니다.
PC 원격 제어 같은 앱이라고 하셔서, 적은 글을 바탕으로 저의 생각을 첨부하였습니다.
많은 도움은 안되겠지만, 그 고민의 어느정도 조그만한 열쇠가 되었으면 좋겠습니다.
즐거운 코딩 하시길 바람니다.