ADB 및 Android 앱 테스트

Chromebook에서 Android 앱을 실행할 수 있다는 것은 멋진 일입니다. 이를 통해 사용자는 광범위한 Android 생태계 제품에 액세스할 수 있으며 Android 개발자는 ChromeOS 사용자에게 다가갈 수 있습니다.

개발자는 사용자 환경을 개선할 수 있도록 다양한 폼 팩터에서 앱을 확인해야 합니다. 이러한 이유로 ChromeOS는 Android 개발자에게 Chromebook에서 앱을 배포하고 테스트할 수 있는 도구를 제공합니다.

개발자가 Chromebook에서 Android 스튜디오를 사용하여 ChromeOS에서 직접 Android 앱을 배포하든 다른 기기에서 Android 앱을 배포하든 상관없이 개발자는 ADB를 사용하여 앱을 배포하고 Chromebook과의 다양한 상호작용을 디버깅할 수 있습니다. 자세한 내용은 아래 단계를 확인하세요.

ADB 디버그 사용 설정

이전에는 Chromebook에서 ADB를 사용하는 것이 개발자 모드에서만 가능했습니다. 개발자 모드에서 사용하려면 기기를 파워워싱(재설정)해야 하고 보안이 저하될 수 있습니다. 다행히 Chrome 81 이후 개발자는 개발자 모드가 아닌 상태로 기기를 유지하면서도 간단한 설정 변경으로 개발한 앱을 ChromeOS에서 바로 배포할 수 있습니다. 방법은 다음과 같습니다.

먼저, Chromebook이 개발자 모드가 아닌 것을 확인합니다. 그런 다음, 설정으로 이동하여 Linux를 사용 설정합니다 (이전에 사용 설정하지 않은 경우).

Linux 사용 설정

Linux를 사용할 수 있게 되면 Linux 설정을 엽니다. 그러면 새로운 옵션인 'Android 앱 개발'이 표시됩니다. 이 옵션을 엽니다.

ADB 디버깅 사용 설정으로 전환하면 컴퓨터가 다시 시작됩니다.

ADB 디버깅 사용 설정

컴퓨터가 다시 시작되면 기기에 앱 스토어에서 다운로드하지 않은 애플리케이션이 있을 수 있음을 알려주는 메시지가 표시됩니다.

이 기기에는 Google에서 확인하지 않은 앱이 설치되어 있을 수 있습니다.

이제 ADB를 사용하여 Chromebook에 앱을 배포하고 디버깅 명령어를 실행하며 기기와 직접 상호작용할 수 있습니다.

다양한 Chromebook 기기 및 사용 가능한 폼 팩터에서 Android 앱이 원활하게 작동하도록 하려면 다음 기기에서 앱을 테스트하는 것이 좋습니다.

  • ARM 기반 Chromebook
  • x86 기반 Chromebook
  • 터치스크린이 있는 기기와 터치스크린이 없는 기기
  • 컨버터블 기기(노트북과 태블릿 사이에서 전환할 수 있는 기기)
  • 스타일러스가 있는 기기

ChromeOS에서 배포

ADB 디버깅을 사용 설정한 후에는 Android 스튜디오를 사용하여 Android 앱을 ChromeOS 기기에 직접 로드할 수 있고, APK가 있는 경우에는 터미널을 사용하여 로드할 수 있습니다.

Android 스튜디오를 사용하여 배포

위에서 설명한 대로 Android 스튜디오 및 ADB를 설정한 후에는 Android 스튜디오에서 바로 Chromebook의 Android 컨테이너로 앱을 푸시할 수 있습니다.

다음과 같이 Chromebook이 기기 드롭다운에 옵션으로 표시됩니다.

Android 스튜디오 기기 드롭다운

이제 다른 Android 기기와 마찬가지로 앱을 푸시할 수 있습니다. 새 기기에 푸시하려고 하면 처음에는 ADB 승인 대화상자가 표시됩니다. 승인하면 애플리케이션이 새 창에서 실행됩니다.

Android 스튜디오에서 ADB를 통해 기기에 연결

이제 번거롭게 개발자 모드를 사용하지 않고 앱을 Chromebook에 배포할 수 있으며 테스트하며 디버깅할 수 있습니다.

터미널을 사용하여 배포

필요하다면 ADB를 설치합니다.

sudo apt install adb

기기에 연결합니다.

adb connect arc

기기에 배포하려고 처음 시도하면 USB 디버깅을 위한 승인 팝업이 표시되며 이를 허용해야 합니다.

기기에 연결할 수 있는 권한

다음과 같이 터미널에서 앱을 설치합니다.

adb install [path to your APK]

터미널에서 앱 설치

다른 기기에서 배포

위에서 설명한 방법을 사용할 수 없는데 다른 기기에서 앱을 푸시해야 한다면 USB 또는 네트워크 주소를 사용하여 기기를 ADB에 연결할 수 있습니다.

네트워크를 통해 ADB에 연결

  1. ADB 디버깅을 사용 설정했는지 확인합니다.

Chromebook의 IP 주소를 가져옵니다.

  1. 화면의 오른쪽 하단에 있는 시계를 클릭합니다.

  2. 톱니바퀴 아이콘을 클릭합니다.

  3. 연결되어 있는 네트워크 유형(Wi-Fi 또는 모바일 데이터)을 클릭한 다음 네트워크의 이름을 클릭합니다.

  4. IP 주소를 메모해 둡니다.

Chromebook에 연결합니다.

  1. 개발 머신으로 돌아가서 ADB를 사용하여 IP 주소로 Chromebook에 연결합니다.

    adb connect 
  2. Chromebook에서 디버거를 허용할지 여부를 묻는 메시지가 표시되면 허용을 클릭합니다. ADB 세션이 설정됩니다.

네트워크를 통해 ADB 디버깅 문제 해결

모든 항목이 제대로 연결되어 있는데 ADB 기기가 오프라인 상태로 표시될 때가 있습니다. 이 경우 문제를 해결하려면 다음 단계를 완료하세요.

  1. 개발자 옵션에서 ADB 디버깅을 비활성화합니다.
  2. 터미널 창에서 adb kill-server를 실행합니다.
  3. ADB 디버깅 옵션을 재활성화합니다.
  4. 터미널 창에서 adb connect를 실행해 봅니다.
  5. 디버깅을 허용할지 여부를 묻는 메시지가 표시되면 허용을 클릭합니다. ADB 세션이 설정됩니다.

USB를 통해 ADB에 연결

USB를 통해 다른 기기에서 Chromebook으로 APK를 푸시하려면 Chromebook을 구성하여 호스트 머신에서 앱을 푸시할 수 있도록 개발자 모드에서 ChromeOS를 시작해야 합니다. 현재 개발자 모드가 필요한 유일한 방법이며 소수의 기기에서만 작동합니다. 따라서 네트워크를 통해 ADB를 대신 사용하는 것이 좋습니다. 계속 진행하려면 다음 단계에 따라 개발자 모드로 전환하세요.

  1. ADB 디버깅을 사용 설정했는지 확인합니다.
  2. 기기가 USB 디버깅을 지원하는지 확인합니다.
  3. control+alt+t를 눌러 ChromeOS 터미널을 시작합니다.
  4. shell을 입력하여 bash 명령어 셸로 이동합니다.
    crosh> shell
    chronos@localhost / $
  5. 다음 명령어를 입력하여 기기를 설정합니다.
    $ sudo crossystem dev_enable_udc=1
    $ sudo reboot
  6. 재부팅 후 터미널을 다시 열고 다음 명령어를 실행하여 Chromebook의 USB 포트에서 ADB를 사용 설정합니다.
    $ sudo ectool usbpd  dr_swap

USB 케이블을 제거했다가 다시 연결할 때마다 이 명령어를 사용합니다. Chromebook이 UFP 모드에 있도록 하려면 ectool usbpd 를 실행합니다.

  1. USB 케이블을 기기의 지원되는 포트에 연결합니다.
  2. 호스트 머신의 Android SDK 플랫폼 도구에서 adb devices를 실행하여 Chromebook이 ADB 지원 기기목록에 표시되는지 확인합니다.
  3. Chromebook에서 디버거를 허용할지 여부를 묻는 메시지가 표시되면 허용을 클릭합니다. ADB 세션이 설정됩니다.