다양한 플랫폼 버전 지원

최신 버전의 Android에서 앱에 제공하는 API가 훌륭하기는 하지만, 더 많은 기기가 업데이트될 때까지 이전 버전의 Android를 계속 지원해야 합니다. 이 과정에서는 이전 버전을 계속 지원하면서 최신 API를 활용하는 방법을 보여줍니다.

Android 스튜디오 New Project 마법사를 사용하여 각 Android 버전을 실행하는 활성 기기의 분포를 찾습니다. 이 분포는 Google Play 스토어를 방문한 기기의 수를 기준으로 합니다. 일반적으로 앱을 최신 버전으로 타겟팅할 때는 활성 기기의 약 90%를 지원하는 것이 좋습니다.

팁: 여러 버전의 Android에서 최고의 기능을 제공하려면 앱에서 Android 지원 라이브러리를 사용해야 하며 이 라이브러리를 통해 이전 버전에서 여러 최신 플랫폼 API를 사용할 수 있습니다.

최소 및 대상 API 수준 지정

AndroidManifest.xml 파일은 앱의 세부정보를 설명하고 앱에서 지원하는 Android 버전을 식별합니다. 특히, <uses-sdk> 요소의 minSdkVersiontargetSdkVersion 속성은 앱이 호환되는 가장 낮은 API 수준과 앱을 설계하고 시험한 가장 높은 API 수준을 식별합니다.

예:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... >
    <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" />
    ...
</manifest>

새 Android 버전이 출시되면 일부 스타일과 동작이 바뀔 수 있습니다. 앱이 이러한 변화의 이점을 활용하고, 각 사용자 기기의 스타일에 부합하게 하려면 targetSdkVersion 값이 사용할 수 있는 최신 Android 버전과 일치하도록 설정해야 합니다.

런타임에 시스템 버전 확인

Android는 Build 상수 클래스에서 각 플랫폼 버전의 고유 코드를 제공합니다. 앱에서 이 고유 코드를 사용하여 상위 수준의 API가 시스템에서 사용 가능할 때만 이러한 API에 종속된 코드가 실행되도록 하는 조건을 만드세요.

Kotlin

private fun setUpActionBar() {
    // Make sure we're running on Honeycomb or higher to use ActionBar APIs
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        actionBar.setDisplayHomeAsUpEnabled(true)
    }
}

자바

private void setUpActionBar() {
    // Make sure we're running on Honeycomb or higher to use ActionBar APIs
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
        ActionBar actionBar = getActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
    }
}

참고: XML 리소스를 파싱할 때, Android는 현재 기기에서 지원하지 않는 XML 속성을 무시합니다. 따라서, 이전 버전에서 이러한 코드를 접하게 될 때 오작동할 염려 없이 최신 버전에서만 지원되는 XML 속성을 안심하고 사용할 수 있습니다. 예를 들어, targetSdkVersion="11"을 설정하면 앱은 Android 3.0 이상의 버전에서 기본적으로 ActionBar를 포함합니다. 그런 다음 메뉴 항목을 작업 모음에 추가하려면 메뉴 리소스 XML에 android:showAsAction="ifRoom"을 설정해야 합니다. 이전 버전의 Android는 showAsAction 속성을 간단히 무시하므로(즉, res/menu-v11/에 별도의 버전이 필요하지 않음) 교차 버전 XML 파일에서 이 작업을 실행해도 안전합니다.

플랫폼 스타일 및 테마 사용

Android는 앱에 기본 운영체제의 디자인을 적용하는 사용자 환경 테마를 제공합니다. 매니페스트 파일에서 이 테마를 앱에 적용할 수 있습니다. 기본으로 제공되는 스타일과 테마를 사용하면 새로운 Android 버전이 출시될 때마다 앱이 자연스럽게 최신 버전의 디자인을 따르게 됩니다.

활동이 대화상자처럼 보이게 하려면 다음과 같이 합니다.

<activity android:theme="@android:style/Theme.Dialog">

활동 배경을 투명하게 하려면 다음과 같이 합니다.

<activity android:theme="@android:style/Theme.Translucent">

/res/values/styles.xml에 정의된 고유한 맞춤 테마를 적용하려면 다음과 같이 합니다.

<activity android:theme="@style/CustomTheme">

앱 전체(모든 활동)에 하나의 테마를 적용하려면 android:theme 속성을 <application> 요소에 추가합니다.

<application android:theme="@style/CustomTheme">

테마를 생성하고 사용하는 방법에 관한 자세한 내용은 스타일 및 테마 가이드를 참조하세요.