기기 호환성 개요

Android는 휴대전화, Android, iOS와 같은 다양한 기기에서 실행되도록 태블릿, 텔레비전입니다. 다양한 장치는 잠재고객층을 구축할 수 있습니다. 앱이 모든 기기에서 성공하려면 다음 조건을 충족해야 합니다. 기능 가변성을 허용하고 필요에 따라 유연하게 조정되는 사용자 인터페이스 제공 다양한 화면 구성에 적용할 수 있습니다.

Android는 기기 호환성을 지원하기 위해 동적 앱 프레임워크를 제공합니다. 구성별 리소스를 제공할 수 있는 앱 리소스(예: 앱 리소스) 파일(예: 다양한 화면 크기에 대한 여러 XML 레이아웃)을 지원합니다. Android가 현재 기기 구성에 따라 적절한 리소스를 로드합니다. 다음으로 바꿉니다. 앱 디자인 및 추가 앱 리소스를 고려한 후 다양한 기기에서 사용자 환경을 최적화하는 단일 애플리케이션 패키지 (APK)를 만듭니다. 있습니다.

하지만 필요한 경우 앱의 기능 요구사항을 지정하고 Google Play 스토어에서 앱을 설치할 수 있는 기기 유형을 관리합니다. 이 문서에서는 적절한 잠재고객에게 도달하기 위한 앱 준비 방법을 알아봅니다.

'호환성' 정의

Android 개발과 관련하여 두 가지 유형의 호환성이 있습니다. 기기 호환성앱 호환성

Android는 오픈소스 프로젝트이므로 모든 하드웨어 제조업체는 Android 운영체제를 실행하는 기기를 빌드할 수 있습니다. 그러나 장치는 'Android 호환' 애플리케이션을 위해 작성된 앱을 올바르게 실행할 수 있는 경우에만 Android 실행 환경. Android의 정확한 세부정보는 GKE 클러스터에서 실행되는 Android의 경우 호환성 프로그램에 설명된 사용자 인증 정보를 제공해야 합니다. 각 기기는 호환성 테스트 모음을 통과해야 합니다. 호환되어야 합니다.

앱 개발자는 기기가 Google Play에서 Android 호환 기기: Android 호환 기기만 Google Play 스토어로 이동하세요. 사용자가 Google Play 스토어에서 앱을 설치하면 Android 호환 기기를 사용 중입니다.

그러나 앱이 각 SDK와 호환되는지 잠재적인 기기 설정이 있을 수 있습니다. Android는 다양한 기기에서 실행되기 때문에 일부 기기에서는 특정 기능이 지원되지 않을 수 있습니다. 예를 들어, 기기에는 나침반 센서가 없을 수 있습니다. 앱의 핵심 기능이 나침반 센서가 필요한 경우 앱은 다음 조건을 충족하는 기기와만 호환됩니다. 포함할 수 있습니다.

기기에 대한 앱 사용 가능 여부 제어

Android는 플랫폼을 통해 앱에서 활용할 수 있는 다양한 기능을 지원합니다 API에 액세스할 수 있습니다 나침반 센서와 같은 일부 기능은 하드웨어에 기반합니다. 일부는 소프트웨어 기반(예: 앱 위젯) 일부는 플랫폼 버전에 따라 다릅니다. 모든 기기가 모든 기능을 지원하는 것은 아니므로 앱의 앱의 필수 기능에 따라 기기 사용 가능 여부를 결정합니다.

최대한 많은 앱 사용자층에 도달하려면 단일 APK 또는 AAB를 사용하여 기기 설정을 최소화합니다. 대부분의 경우 런타임에서 선택적 기능을 사용 중지하고 제공하는 앱 리소스와 같은 다른 구성에 대한 대안으로 다양한 화면 크기에 맞게 레이아웃을 조정할 수 있습니다. 필요한 경우 앱의 Google Play 스토어를 통한 특정 기기의 사용 가능 여부는 다음에 따라 제공됩니다. 기기 특성:

기기 기능

기기 기능에 따라 앱의 사용 가능 여부를 관리하기 위해 Android는 다음을 정의합니다. 제공되지 않을 수도 있는 하드웨어 또는 소프트웨어 기능의 기능 ID 모든 기기에서 사용할 수 있습니다. 예를 들어 나침반 센서의 기능 ID는 FEATURE_SENSOR_COMPASS, 앱 위젯의 기능 ID는 FEATURE_APP_WIDGETS

필요한 경우 사용자가 앱을 설치할 때 기기에서 기능을 선언함으로써 필요한 기능을 제공하지 않는 경우 <uses-feature> 드림 요소의 매니페스트 파일에 있는 파일을 찾습니다.

예를 들어 나침반이 없는 기기에서는 앱이 제대로 작동하지 않습니다. 나침반 센서를 요구사항으로 선언하려면 매니페스트 태그:

<manifest ... >
    <uses-feature android:name="android.hardware.sensor.compass"
                  android:required="true" />
    ...
</manifest>

Google Play 스토어는 앱에 필요한 기능을 앱이 호환되는지 여부를 판단하기 위해 호환되어야 합니다. 기기에 필요한 모든 기능이 사용자가 앱을 설치할 수 없습니다.

하지만 앱의 기본 기능이 앱의 기본 기능에 필요하지 않은 경우 사용하려면 required 속성을 "false"로 설정하고 런타임에 기기 기능을 확인합니다. 현재 기기에서 앱 기능을 사용할 수 없는 경우 해당하는 앱 기능을 사용할 수 있습니다. 예를 들어 특성이 를 호출하여 사용할 수 있음 hasSystemFeature() :

Kotlin

if (!packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device doesn't have a compass. Turn off the compass feature.
    disableCompassFeature()
}

자바

PackageManager pm = getPackageManager();
if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
    // This device doesn't have a compass. Turn off the compass feature.
    disableCompassFeature();
}

사용 가능 여부를 제어하는 데 사용할 수 있는 모든 필터에 대한 정보 보기 앱을 사용하려면 Google Play 필터 문서를 참조하세요.

<ph type="x-smartling-placeholder">

플랫폼 버전

기기마다 다음과 같이 서로 다른 버전의 Android 플랫폼을 실행할 수 있습니다. 동일한 버전의 Android 12와 Android 13 중 하나를 선택합니다 연속된 각 플랫폼 버전에 API가 추가되는 경우가 많음 이전 버전에서는 사용할 수 없습니다. 어떤 API 집합이 사용 가능한지 나타내기 위해 각 플랫폼 버전은 API 수준: 예를 들어 Android 12는 API 수준 31이고 Android 13은 API 수준 33입니다.

먼저 minSdkVersion 드림 및 targetSdkVersion 값을 build.gradle 파일에 추가합니다.

Kotlin

android {
    defaultConfig {
        applicationId = "com.example.myapp"

        // Defines the minimum API level required to run the app.
        minSdkVersion(30)

        // Specifies the API level used to test the app.
        targetSdkVersion(33)
        ...
    }
}

Groovy

android {
    defaultConfig {
        applicationId 'com.example.myapp'

        // Defines the minimum API level required to run the app.
        minSdkVersion 30

        // Specifies the API level used to test the app.
        targetSdkVersion 33
        ...
    }
}

build.gradle 파일에 관한 자세한 내용은 다음을 참고하세요. 빌드를 구성합니다.

연속된 각 Android 버전은 빌드된 앱에 대한 호환성을 제공함 이전 플랫폼 버전의 API를 사용하므로 앱이 최신 버전의 Android를 사용할 수 있습니다.

<ph type="x-smartling-placeholder">

그러나 앱이 최신 플랫폼 버전에 추가된 API를 사용하지만 기본 기능에는 API 레벨이 필요하지 않으므로 API 수준이 업그레이드될 때 해당 기능의 성능을 단계적으로 너무 낮습니다. 이 경우 minSdkVersion를 가장 낮은 값으로 설정합니다. 현재 시스템의 주요 기능과 비교하여 버전 SDK_INT, 를 <ph type="x-smartling-placeholder">Build.VERSION_CODES</ph> 확인할 API 수준에 해당하는 예:

Kotlin

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
    // Running on something older than API level 11, so disable
    // the drag and drop features that use ClipboardManager APIs.
    disableDragAndDrop()
}

자바

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
    // Running on something older than API level 11, so disable
    // the drag and drop features that use ClipboardManager APIs.
    disableDragAndDrop();
}

화면 구성

Android는 스마트폰, 태블릿, TV 등 다양한 크기의 기기에서 실행됩니다. 받는사람 화면 유형별로 기기를 분류하는데, Android는 모바일 기기에 맞는 두 가지 각 기기: 화면 크기 (화면의 실제 크기) 및 화면 밀도 (화면에 표시되는 픽셀의 물리적 밀도, 즉 DPI). 다양한 Android는 이러한 변종을 고유한 특성이 있는 그룹으로 타겟팅하기 쉬움:

  • 일반화된 4가지 크기: 소형, 중형, 대형, 특대형
  • 일반화된 여러 밀도: mdpi (중간), hdpi (고밀도), xhdpi (extra) 높음), xxhdpi (초초고밀도) 등

기본적으로 앱은 모든 화면 크기 및 밀도와 호환됩니다. 시스템이 UI 레이아웃과 이미지 리소스를 조정하므로 정의합니다. 일반 화면에 최적화된 비트맵 이미지 제공 나타냅니다.

유연한 레이아웃을 최대한 사용하여 사용자 환경을 최적화합니다. 세로 모드 및 세로 모드와 같은 대규모 구성 변경을 위한 레이아웃이 있는 경우 큰 창 크기와 작은 창 크기를 사용하는 경우 대체 창을 구성을 변경할 수 있는 유연한 레이아웃입니다. 이렇게 하면 폼 팩터에서의 사용자 환경입니다. 그것은 멀티 윈도우 모드에서 창의 크기가 변경될 때도 유용합니다.

다양한 유형의 사용자를 위한 대체 리소스를 만드는 방법에 대한 필요한 경우 앱을 특정 화면 크기로 제한하는 방법 읽기 화면 호환성 개요를 살펴보고 대형 화면 앱 품질 가이드라인을 참고하세요.

비즈니스상의 이유로 앱 사용 가능 여부 제어

기기에 따라 앱의 사용 가능 여부를 제한하는 것 외에도 비즈니스에 맞게 앱의 가용성을 제한해야 할 수도 있습니다. 또는 법적 사유로 인해 발생합니다. 이러한 상황에서 Google Play 스토어에서는 Play Console의 필터 옵션을 이용하면 사용자 언어 또는 무선과 같은 비기술적인 이유로 서비스 제공 있습니다.

필수 하드웨어와 같은 기술 호환성을 위한 필터링 구성요소 - 항상 APK 또는 AAB에 포함된 정보를 기반으로 합니다. 파일에서 참조됩니다. 그러나 지리적 위치와 같은 비기술적인 이유로 필터링 로 시작하는 경우 항상 Google Play Console

추가 리소스

앱 리소스 개요
Android 앱이 별도의 앱으로 구성되는 방식에 관한 정보 앱 코드에서 가져온 리소스에 대한 특정 기기 설정을 위한 리소스도 제공합니다.
Google Play 필터
Google Play 스토어에서 앱이 다른 기기에 설치되지 않도록 할 수 있습니다.
Android에서의 권한
Android에서 권한 시스템으로 특정 API에 대한 앱 액세스를 제한하는 방법 사용자의 동의가 있어야만 API를 사용할 수 있습니다.