안드로이드 개발 질문/답변
(글 수 45,052)
대충 GUI 는 SWING 으로 하고, 제가 입력한 글씨만 필터링 해서 실시간 logcat 을 보는 프로그램을 구현하려고 하는데,
device 연결해서 logcat output을 받아와야 할텐데요,
혹 해당 부분은 어떤식으로 구현하는지 궁금합니다.
2012.12.22 17:17:11
adb 가 동작하기 위해 host 상에는 server와 client 두가지가 동작합니다.
server 는 usb를 통해 단말과 연결되고 client 는 tcp 연결을 통해 server와 연결됩니다.
구현하실 부분은 client 의 logcat command 기능입니다.
방안 1)
android/system/core/adb/ 디렉토리에서
commandline.c 에서 logcat 을 keyword로 시작해서 분석을 시작해 보시면 될 것 같습니다.
더불어 adb_client.c 중 일부를 Java에서 구현해야겠지요.
방안 2)
방안 1)의 예상 소요 시간이 개발 일정 상 여의치 않은 경우 아주 간단한 방법으로
java 에서 windows shell command를 실행시켜 adb logcat을 실행시키고 그 standard output을
input stream으로 읽어들이는 방법도 성능상 문제가 없는지 한번쯤 검토해 볼 수 있을 것 같습니다.
http://edivad.wordpress.com/2009/05/18/execute-shell-command-via-java/
로그는 파일로 저장되고 모든 유저가 접근 가능한 걸로 알고 있습니다.(무슨 파일인지 검색해보시면 나올듯)
USB 통신은 안드로이드에서 관련 API 제공합니다.
또한 usb 통신 구현 방식이 소켓을 이용하기 때문에 네트워크통신을 해보셨으면 금방 감잡으실듯 하네요.