Chromebook에 맞게 앱 최적화

Google Chromebook에서는 이제 Google Play 스토어 및 Android 앱을 지원합니다. 이 문서에서는 Chromebook에 맞게 Android 앱을 최적화할 수 있는 몇 가지 방법에 대해 설명합니다.

앱의 매니페스트 파일 업데이트

Chromebook에 맞게 Android 앱을 최적화하려면 먼저 매니페스트 파일(AndroidManifest.xml)을 업데이트하여 Chromebook과 Android를 실행하는 다른 기기 사이의 몇 가지 주요 하드웨어 및 소프트웨어 차이를 처리해야 합니다.

Chrome OS 버전 M53부터, android.hardware.touchscreen 기능을 명시적으로 필요로 하지 않는 모든 Android 앱도 android.hardware.faketouch 기능을 지원하는 Chrome OS 기기에서 작동합니다. 하지만, 앱이 가능한 최상의 방법으로 모든 Chromebook에서 작동하도록 하려면 매니페스트 파일에 액세스하여 다음에 표시된 것처럼 android.hardware.touchscreen 기능이 필수 항목이 아니도록 설정을 조정해야 합니다. 또한 마우스 및 키보드 상호 작용도 검토해야 합니다.

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          ... >
    <!-- Some Chromebooks don't support touch. Although not essential,
         it's a good idea to explicitly include this declaration. -->
    <uses-feature android:name="android.hardware.touchscreen"
                  required="false" />
</manifest>

보통, 기기마다 사용할 수 있는 센서가 각각 다릅니다. Android 플랫폼이 지원하는 모든 센서에 대한 개요는 센서 개요 문서를 참조하세요. Android 핸드헬드 기기에 GPS와 가속도계가 있을 수 있지만 센서를 모든 Chromebook에서 사용할 수 있다는 보장은 없습니다. 하지만, 센서 기능이 다른 방법으로 제공되는 경우가 있습니다. 예를 들어, Chromebook에 GPS 센서가 없는 경우가 있을 수 있지만, 이러한 Chromebook이 Wi-Fi 연결을 기반으로 위치 데이터를 제공할 수 있습니다. 센서 지원 여부에 상관없이 Chromebook에서 앱이 실행되도록 하려면 어떠한 센서도 필수 항목이 아니도록 매니페스트 파일을 업데이트해야 합니다.

참고: 앱에 특정한 센서를 요구하지는 않지만 센서를 사용할 수 있는 경우 해당 센서에서 측정한 값을 사용하는 경우에는 앱에서 센서가 제공하는 정보를 수집하려고 하기 전에 센서의 가용성을 동적으로 확인해야 합니다.

일부 소프트웨어 기능은 Chromebook에서 지원되지 않습니다. 예를 들어, 맞춤형 IME, 앱 위젯, 라이브 배경화면 및 앱 런처를 제공하는 앱은 지원되지 않으므로 Chromebook에 설치할 수 없습니다. 현재 Chromebook에서 지원되지 않는 전체 소프트웨어 기능 목록은 호환되지 않는 소프트웨어 기능을 참조하세요.

다중 창 모드 지원 활용

Chrome OS에서의 Android 앱 구현에는 기본 다중 창 지원 기능이 포함되어 있습니다. 전체 화면을 벗어나게 자동으로 그리는 대신, Android는 Chrome OS 기반의 앱을 이 폼 팩터에 적합한 레이아웃으로 렌더링합니다. Google은 가장 흔히 사용되는 창 레이아웃을 지원합니다.

  • 세로 모드 – Nexus 5와 유사합니다.
  • 가로 모드 – Nexus 7과 유사합니다.
  • 최대화 모드 – 사용 가능한 모든 화면 픽셀을 사용합니다.

또한, 최종 사용자에게 사용 가능한 모든 레이아웃 간을 전환할 수 있는 창 컨트롤이 제공됩니다. 올바른 방향 옵션을 선택하여 사용자가 앱을 실행할 때 올바른 레이아웃이 표시되도록 할 수 있습니다. 앱을 가로 모드와 세로 모드에서 사용할 수 있으면, 가능한 경우 기본적으로 가로 모드로 설정됩니다. 이 옵션이 설정되고 나면 앱별로 설정이 유지됩니다. Google은 앱을 테스트하여 창 크기 변경을 적절히 처리하는지 확인할 것을 권장합니다.

키보드, 트랙패드 및 마우스 지원

모든 Chromebook에는 물리적 키보드 및 트랙패드가 있으며, 일부 Chromebook에는 터치스크린도 있습니다. 일부 기기는 노트북에서 태블릿으로 전환할 수도 있습니다.

많은 기존 앱이 이미 추가 작업을 수행할 필요 없이 마우스와 트랙패드 상호 작용을 지원하고 있습니다. 하지만, 사용자가 터치스크린 대신 트랙패드를 사용하여 앱과 상호 작용할 때 앱 동작을 적절하게 조정하는 것이 항상 좋으며, 두 인터페이스 간을 적절히 구분하고 지원해야 합니다. 물리적 키보드가 지원된다고 가정했을 때 개발자는 이제 자신이 개발한 앱을 이용하는 사용자의 생산성을 높일 수 있도록 핫키를 제공할 수 있습니다. 예를 들어, 앱이 인쇄를 지원할 경우 Ctrl+P를 사용하여 인쇄 대화상자를 열 수 있습니다.

효율적으로 백업 및 복원 사용

Chromebook의 가장 강력한 기능 중 하나는 사용자가 기기 간에 손쉽게 마이그레이션할 수 있다는 것입니다. 즉, 누군가가 지금까지 사용해 온 Chromebook을 그만 사용하고 다른 Chromebook을 사용하기 시작한 경우 간단하게 로그인하기만 하면 모든 앱이 나타납니다.

팁: 필수는 아니지만 앱의 데이터를 클라우드로 백업하는 것이 좋습니다.

Chromebook은 학교와 같이 많은 사람들이 함께 사용할 수도 있습니다. 로컬 저장소는 무한하지 않기 때문에 저장소를 함께 사용하는 모든 계정을 원하는 지점에 기기에서 제거할 수 있습니다. 학교 현장에서는 이러한 시나리오를 유념하는 것이 좋습니다.

NDK 라이브러리 업데이트

앱이 Android NDK 라이브러리를 사용하고 해당 대상 SDK 버전이 23 이상이면 ARM 및 x86 버전의 NDK 라이브러리가 Android 6.0(API 레벨 23) 이상에서 호환되지 않으므로 텍스트 재배치가 이 두 버전 모두에서 제거되었는지 확인해야 합니다. NDK 라이브러리에 텍스트 재배치를 유지하면 Chromebook에서 비호환성 오류가 발생할 수도 있습니다. 이는 특히 x86 아키텍처를 사용하는 기기에서 실행하는 경우 그렇습니다.

참고: NDK 라이브러리를 올바르게 업데이트하는 방법에 대한 자세한 내용을 보려면 Android 6.0 변경 사항 문서의 런타임 섹션을 참조하세요.

새로운 Android 기능 지원 계획

Chromebook 기반의 Android 앱은 처음에 Android 6.0(API 레벨 23)용 API와 함께 제공됩니다. 위에 요약되어 있는 모범 사례를 따르면 앱이 Android 7.0(API 레벨 24)에 도입된 다중 창 향상 기능과 호환될 가능성이 커집니다. 여러 가지 향상된 기능을 갖춘 Android 7.0부터 제공되는 API 및 동작을 지원하도록 계획하는 것이 좋습니다. 예를 들어, 다중 창 지원 기능이 더욱 긴밀하게 통합되어 있으므로 액티비티의 크기를 마음대로 조정하여 더 자연스럽게 만들 수 있습니다. 앱과 마우스 커서 컨트롤에 걸친 드래그 앤 드롭 작업을 지원하는 API에 액세스할 수도 있습니다.

앱 테스트

테스트를 위해 앱을 Chromebook에 로드하려면 Chrome OS 기기에서 개발자 모드로 전환하고 알 수 없는 소스를 사용하도록 설정해야 합니다. 기기를 개발자 모드로 전환하는 데 대한 자세한 지침은 Chrome OS 기기를 개발자 모드로 전환을 참조하세요. 기기가 개발자 모드로 전환된 후에는 Chrome 설정으로 가서 security in app 설정 아래에 있는 Enable Unknown Sources를 선택할 수 있습니다.

개발자 모드를 활성화한 후에는 여러 방법 중 하나를 사용하여 Android 앱을 Chrome OS 기기에 로드할 수 있습니다. 자세한 내용은 Chromebook에서 앱 로드 페이지의 앱 로드 섹션을 참조하세요.

참고: Android 앱이 다양한 Chromebook 기기와 사용 가능한 폼 팩터에서 제대로 작동하도록 하기 위해 ARM 기반 Chromebook, x86 기반 Chromebook, 터치스크린이 있는 기기와 없는 기기, 컨버터블 기기(노트북과 태블릿 간을 바꿀 수 있는 기기)에서 앱을 테스트하는 것이 좋습니다. 지원되는 기기의 전체 목록을 보려면 Chrome OS 기기의 앱 지원 페이지를 참조하세요.

ADB 설정

ADB 연결을 설정하기 전에 먼저 Chromebook에 Android 앱을 설치할 수 있도록 개발자 모드에서 Chrome OS를 시작해야 합니다.

주의: Chrome OS 기기를 개발자 모드로 전환하면 기기가 다시 시작되고 기기에 있는 모든 기존 데이터가 지워집니다.

ADB를 설정하려면 다음 단계를 완료하세요.

  1. Ctrl+D를 눌러 기기를 시작합니다.
  2. 설정 프로세스를 완료합니다.
  3. 테스트 계정을 로그인합니다.
  4. Google Play 스토어 약관 및 서비스 조건을 수락합니다.

방화벽 구성

들어오는 ADB 연결을 허용하도록 Chrome OS 방화벽을 구성하려면 다음 단계를 완료하세요.

  1. Ctrl+Alt+T를 눌러 Chrome OS 터미널을 시작합니다.
  2. shell을 입력하여 bash 명령어 셸로 이동합니다.
    crosh> shell
    chronos@localhost / $
    
  3. 다음 명령어를 입력하여 개발자 기능을 설정하고 방화벽 설정 변경 사항에 대해 디스크 쓰기 액세스를 사용하도록 설정합니다.
    chronos@localhost / $ sudo /usr/libexec/debugd/helpers/dev_features_rootfs_verification
    chronos@localhost / $ sudo reboot
    
    sudo reboot 명령어를 사용하면 Chromebook이 재시작됩니다.

    참고: Tab 키를 눌러 파일 이름의 자동 완성 기능을 활성화할 수 있습니다.

  4. 기기가 재시작되면 테스트 계정으로 로그인하고 다음 명령어를 입력하여 secure shell을 활성화하고 방화벽을 적절히 구성합니다.
    chronos@localhost / $ sudo /usr/libexec/debugd/helpers/dev_features_ssh
    
    이제 셸에서 나갈 수 있습니다.

참고: Chromebook에서는 이 절차를 한 번만 완료해야 합니다.

Chromebook의 IP 주소 확인

Chromebook의 IP 주소를 확인하려면 다음 단계를 완료하세요.

  1. 화면의 오른쪽 하단 영역에 있는 시계 아이콘을 클릭합니다.
  2. Settings를 클릭합니다.
  3. Settings 영역의 Internet Connection 섹션에 사용 가능한 모든 네트워크가 나열됩니다. ADB에 사용할 네트워크를 하나 선택합니다.
  4. 나타나는 IP 주소를 기록해 둡니다.

ADB 디버깅 활성화

ADB 디버깅을 활성화하려면 다음 단계를 완료하세요.

  1. 화면의 오른쪽 하단 영역에 있는 시계 아이콘을 클릭합니다.
  2. Settings를 클릭합니다.
  3. Android Apps 섹션에서 Manage your Android apps in Settings 줄에 있는 Settings 링크를 클릭합니다. 그러면 Android 앱 설정이 나타납니다.
  4. About device를 클릭합니다.
  5. Build number를 일곱 번 클릭하여 개발자 모드로 이동합니다.
  6. 창의 왼쪽 상단 영역에 있는 화살표를 클릭하여 기본 Settings 화면으로 돌아갑니다.
  7. Developer options 항목을 클릭하고, ADB debugging을 활성화한 후 OK를 클릭하여 ADB 디버깅을 허용합니다.
  8. 개발용 컴퓨터로 돌아가서 ADB를 통해 Chromebook의 IP 주소 및 포트 22를 사용하여 Chromebook에 연결합니다.
  9. Chromebook에서 디버거를 허용할지 묻는 메시지가 표시되면 Allow를 클릭합니다. ADB 세션이 설정되었습니다.

ADB 디버그 문제해결

ADB 기기에 모든 항목이 올바르게 연결되어 있는데도 오프라인으로 표시되는 경우가 있습니다. 이 경우, 다음 단계를 완료하여 문제를 해결하세요.

  1. Developer options에서 ADB debugging을 비활성화합니다.
  2. 터미널 창에서 adb kill-server를 실행합니다.
  3. ADB debugging 옵션을 다시 활성화합니다.
  4. 터미널 창에서 adb connect를 실행해 봅니다.
  5. 디버그를 허용할지 묻는 메시지가 표시되면 Allow를 클릭합니다. ADB 세션이 설정되었습니다.

추가 학습 자료

Chromebook에 맞게 Android 앱을 최적화하는 방법에 대한 자세한 내용은 다음 자료를 참조하세요.