안드로이드의 최신 버전은 종종 앱에 대한 좋은 API 들을 제공하는 하지만, 여러분은 더 많은 디바이스들이 업데이트를 할 때 까지 예전 버전에 대한 지원을 계속해야 만 합니다. 이번 시간에는 오래된 버전에서 최신 API들의 이득을 얻을 수 있는 방법을 소개하겠습니다.
안드로이드 개발자 사이트에는 Google Play Store에 방문한 디바이스의 수를 기반으로 설치되어 있는 Platform Versions 에 대한dashboard 를 정기적으로 업데이트 해주고 있습니다. 일반적으로, 최선버전을 타겟으로 하는 여러분의 앱이 전체 활동하는 디바이스의 90%를 지원하도록 하는 것이 좋은 습관입니다.
Tip: 여러 안드로이드 버전을 통틀어 가장 좋은 특징과 기능들 제공하기 위해 여러분의 앱에 오래된 버전에서 다양한 최신 플랫폼 API들을 사용하도록 허용하는 Android Support Library 를 사용 해야만 합니다.
최소(Minimum)와 타겟(Target) API Levels 지정하기
------------------------------------------
AndroidManifest.xml 파일은 여러분에 앱에 대한 세부사항들이 묘사되어 있습니다. 그리고 이것이 지원하는 Android 버전에 대해서도 식별되어 있습니다. 특히, 여러분의 앱 설계와 테스트에 대응되는 가장 높은 API level과 이에 호환되는 가장 낮은 버전의 API level 을 식별하기 위한 <uses-sdk 요소에 있는 minSdkVersion 과 targetSdkVersion 속성.
예:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" ... > <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="15" /> ... </manifest> |
새로운 Android 버전이 출시되면, 몇몇 스타일(Style)과 행동(Behavior)이 바뀔 수 도 있습니다. 여러분의 앱이 이러한 변경 사항을 활용하여 앱의 스타일에 맞는지 확인하도록 하려면, 여러분은 반드시 targetSdkVersion의 값이 최신 안드로이드 버전과 일치하도록 설정해야 만 합니다.
실행할 때 시스템 버전 확인하기
--------------------------------
안드로이드는 Build 상수 클래스안에 각 플랫폼 버전에 대한 유일한 코드를 제공하고 있습니다. 가장 높은 API level를 시스템이 사용할 수 있는 경우에만 이 API들의 사용을 보증하기 때문에 이런 상태를 확인하기 위해 여러분의 앱안에 이 코드들을 사용합니다.
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); } } |
Note : XML 리소스들을 파싱(parsing)할 때, 안드로이드는 현재 디바이스에서 지원하지 않는 XML속성은 무시합니다. 그래서 여러분은 최신버전에서 지원하고 있는 XML 속성에 대해 오래된 버전에서 다운될 걱정없이 안전하게 사용할 수 있습니다. 예를들어, 만약 여러분이 앱에 대해 targetSdkVersion="11"을 설정하면, 기본적으로 안드로이드 3.0버전 이상에서만 포함하고 있는 ActionBar을 포함합니다. 그런다음 액션바에 메뉴 아이템을 추가하기 위해서는, 여러분의 메뉴 리소스 XML안에 android:showAsAction="ifRoom"을 설정할 필요가 있습니다. 안드로이드의 이전 버전은 단순하게 이 showAsAction 속성을 무시하기 때문에(즉, 여러분은 res/menu-v11/로 구분된 별도의 버전이 필요하지 않습니다.), 버전 간 XML파일에서 이 작업을 하는 것은 안전합니다.
플랫폼 스타일(Style)과 테마(Theme) 사용하기
---------------------------------------------
안드로이드는 기본 운영체체(OS)의 모양과 느낌을 주는 사용자경험(user experience : UX) 테마(Theme)를 제공합니다. 이 테마들(Themes)은 메니페스트 파일내에서 앱에 적용할 수 있습니다. 스타일(Style)과 테마(Theme)에 내장 된 이것들을 사용함으로서 여러분의 앱은 자연스럽게 새로 릴리즈된 안드로이의 최신 모양과 느낌으로 만들어집니다.
여러분의 액티비티를 하나의 다이얼로그 박스(Dialog Box)처럼 만들기
<activity android:theme="@android:style/Theme.Dialog"> |
여러분의 액티비티가 투명한 배경을 가지도록 만들기
<activity android:theme="@android:style/Theme.Translucent"> |
res/values/styles.xml 에 정의된 여러분의 커스텀 테마(custom theme) 사용하기
<activity android:theme="@style/CustomTheme"> |
여러분의 앱 전체(모든 액티비티들)에 적용하기, <application> 요소의 android:theme 속성을 추가합니다.
<application android:theme="@style/CustomTheme"> |
테마(Theme)를 사용하여 만들기에 대한 추가정보는 개발자 사이트의 Styles and Theme 가이드를 참고하시기 바랍니다.
'Android 개발자사이트 튜토리얼' 카테고리의 다른 글
Activity 시작하기(Starting) 1 (0) | 2015.03.27 |
---|---|
액티비티 생명주기 관리하기(Managing the Activity Lifecycle) (0) | 2015.03.27 |
다른 크기, 해상도, 밀도의 화면들 지원하기(Supporting Difference Screens) (0) | 2015.03.27 |
다른 언어들 지원하기(Supporting Difference Languages) (0) | 2015.03.27 |
서로 다른 디바이스들 지원하기(Supporting Different Devices) (0) | 2015.03.27 |