다양한 플랫폼 버전 지원

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

플랫폼 버전용 대시보드는 정기적으로 업데이트되어 Google Play 스토어를 방문하는 기기의 수를 근거로 Android의 각 버전을 실행하는 사용 중인 기기의 분포를 보여줍니다. 일반적으로 최신 버전을 앱의 대상으로 하되 현재 사용 중인 기기의 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에 종속된 코드가 시스템에서 사용 가능할 때만 실행되도록 하는 조건을 빌드하세요.

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

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

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

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

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

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

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

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

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

테마를 생성하고 사용하는 방법에 관한 자세한 내용은 Styles and Themes 가이드를 참조하세요.