우분투에서 buildozer를 이용하여 빌드한 APK를 물리적인 안드로이드 기기에 업로드한 뒤에 해당 Kivy 안드로이드 어플리케이션을 디버그하기 위한 환경을 구축하고 디버그하는 방법에 대해서 다룹니다.


(사용환경)

- 디버거로 ADB[각주:1]를 이용합니다.

- 예시에서 어플리케이션이 작동하는 모바일 기기는 LG K10[각주:2]입니다.

- 디버거를 실행시키는 PC에 설치된 운영체제는 Ubuntu 16.04 LTS입니다.


우선 이전 게시물(2017/06/09 - [Methods] - 우분투 16.04 LTS에서 안드로이드 스튜디오 설치)을 참고하여 안드로이드 스튜디오를 설치합니다. 안드로이드 스튜디오를 설치하는 과정에서 JDK, SDK, ADB 등 안드로이드 개발에 관련된 정신 사나운 의존관계들을 전부 설치하게 됩니다.


ADB가 설치되지 않았다면 다음 명령어를 수행하여 설치합니다.

$ sudo apt install adb

$ sudo apt install android-tools-adb


안드로이드 기기를 ADB가 인식하게 하려면 연결하려는 기기의 다음 세 가지를 명시해 주어야 합니다.

  1. Vendor ID
  2. Manufacturer ID
  3. Model ID

이것들에 대해서 자세히 알 필요는 없습니다. 단지 어떤 기기든 상관 없이 그 세 가지를 선언하기 위해서 다음 명령어를 실행한다는 점만 알면 충분합니다.[각주:3][각주:4][각주:5] Nicolas Bernaerts라는 어떤 개인이 잘 정리해서 올린 파일을 다운로드해서 갱신 반영하는 명령입니다.

$ sudo wget -O $HOME/.android/adb_usb.ini https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/android/adb_usb.ini

$ sudo wget -O /etc/udev/rules.d/51-android.rules https://raw.githubusercontent.com/NicolasBernaerts/ubuntu-scripts/master/android/51-android.rules

$ sudo chmod a+r /etc/udev/rules.d/51-android.rules

$ sudo service udev restart


이제 우분투가 설치된 PC와 안드로이드 기기를 USB 포트로 연결하기에 앞서 디버그할 안드로이드 기기의 설정에서 USB 디버깅을 허용해야 합니다.

설정 - 휴대폰 정보 - 소프트웨어 정보에서 빌드 번호 항목을 7번 연속으로 누르면 숨겨진 개발자 옵션을 사용할 수 있게 됩니다.

그런 다음 설정 - 개발자 옵션에서 USB 디버깅 항목을 활성화합니다.



모바일 기기를 PC에 연결하고 장치가 USB로 연결된 것을 확인합니다.

$ lsusb



ADB에 연결된 장치들을 열거하여 ADB가 장치를 인식한 것을 확인합니다.

$ adb devices



이제 다음 명령어를 통해서 Kivy 애플리케이션이 내보내는 디버그 메시지를 실시간으로 출력할 수 있습니다.

$ adb logcat | grep python



이상입니다.


  1. https://developer.android.com/studio/command-line/adb.html [본문으로]
  2. http://www.lge.co.kr/lgekor/product/mobile/smart-phone/productDetail.do?cateId=0210&prdId=EPRD.301234 [본문으로]
  3. 출처입니다. Nicolas Bernaerts라는 사람이 이곳(http://bernaerts.dyndns.org/linux/74-ubuntu/354-ubuntu-xenial-android-adb-fastboot-qtadb)에 설명을 잘 해 놓았으니 궁금하신 분은 읽어 보세요. [본문으로]
  4. https://askubuntu.com/questions/213874/how-to-configure-adb-access-for-android-devices [본문으로]
  5. https://source.android.com/source/initializing [본문으로]
Top