ChromeOS 기기의 앱 지원

Google Play 스토어를 사용하여 여러 Google Chromebook에 Android 앱을 설치할 수 있습니다. 이 문서에서는 Android 앱을 설치할 수 있는 Chromebook, Chromebox 및 Chromebase에 관해 설명합니다.

개요

대부분의 Android 휴대전화에는 ARM 칩셋이 있습니다. 그러나 많은 ChromeOS 기기가 x86 칩을 사용합니다. Kotlin 또는 자바로 작성된 기본 앱에서는 이 차이가 중요하지 않습니다. 그러나 게임 엔진으로 만든 앱을 비롯하여 네이티브 코드로 작성된 앱의 경우 기기의 칩셋이 중요한 문제가 될 수 있습니다.

네이티브 코드가 있는 모든 앱과 게임이 armeabi-v7a (arm32), arm64-v8a (arm64), x86 (x86_32), x86_64 등 4가지 주요 Android ABI (Application Binary Interface)와 함께 제공되는 것이 이상적입니다. 이렇게 하면 각 기기에서 최고의 성능을 구현하고 배터리 소모를 최소화할 수 있습니다. 예를 들어 cmake 기반 build.gradle 파일에는 다음이 포함될 수 있습니다.

Groovy

externalNativeBuild {
    cmake {
        abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'
    }
}

Kotlin

externalNativeBuild {
    cmake {
        abiFilters("armeabi-v7a", "arm64-v8a", "x86", "x86_64")
    }
}

Android Package Kit (APK) 크기

모놀리식 APK의 각 ABI는 크기를 늘립니다. 이는 사용자의 디스크 사용량, 앱 다운로드 크기, 앱이 Play 스토어 크기 제한의 영향을 받는지에 영향을 미칠 수 있습니다. 이를 방지하는 가장 좋은 방법은 Android App Bundle을 사용하는 것입니다.

App Bundle을 사용하면 사용자의 다운로드 크기를 늘리지 않고도 Android 스튜디오 내에서 4개의 ABI를 모두 쉽게 번들로 묶을 수 있습니다. 또한 Dynamic Delivery를 쉽게 활용할 수 있어 사용자가 요청 시에만 대용량 게임 콘텐츠를 다운로드할 수 있습니다. App Bundle을 사용할 수 없다면 유사한 동작에 이전의 다중 APK를 사용할 수 있습니다.

32비트 및 64비트 빌드

모든 Android 앱은 64비트 빌드 버전을 제공해야 합니다. 32비트 빌드는 ARM 및 x86 기기 모두에서 선택사항입니다. 자세한 내용은 Android 64비트 문서⁠를 참고하세요.

64비트 빌드만 제공하면 필요한 빌드 타겟 수와 테스트 표시 경로가 줄어들지만 게임을 실행할 수 있는 기기의 종류도 제한됩니다. 예를 들어 다른 하드웨어 제한으로 인해 많은 구형 Chromebook은 64비트 CPU를 사용하더라도 32비트 Android 앱만 실행할 수 있습니다. 앱이 이러한 기기에서 실행될 수 있도록 하려면 32비트 및 64비트 지원을 모두 포함해야 합니다.

ARM 변환

x86 Chromebook은 가능할 때마다 ARM 코드를 변환하려고 하지만 변환은 성능을 저하시키고 배터리 사용량을 증가시킵니다. 최상의 사용자 환경을 위해 x86 빌드를 제공하세요. 그럴 수 없다면 빌드에 arm32 및 arm64 ABI를 모두 포함하세요. 일부 x86 Chromebook은 arm64 코드를 변환하지 않을 수 있기 때문입니다.

arm32 변환은 모든 Android 지원 Chromebook에서 사용할 수 있지만 모든 Chromebook이 arm64 코드를 변환할 수 있는 것은 아닙니다. 즉, 게임에 arm64 빌드 타겟만 있다면 많은 ChromeOS 기기에서 사용할 수 없습니다. x86 바이너리를 제공할 수 없다면 빌드에 arm32 및 arm64 ABI를 모두 포함해야 합니다.

포함된 ABI ChromeOS 지원
arm64 나쁨
arm32 및 arm64 좋음(변환 포함)
arm32, arm64, x86_32, x86_64 최고