API 수준: 13
Android 3.2(HONEYCOMB_MR2
)는 사용자와 개발자를 위한 새로운 기능을 추가하는 점진적 플랫폼 출시입니다. 아래 섹션에서는
새로운 기능 및 개발자 API를
살펴봤습니다
개발자는 Android 3.2 플랫폼을 Android SDK용 다운로드 가능한 구성요소로 사용할 수 있습니다. 다운로드 가능한 플랫폼에는 Android 라이브러리 및 시스템 이미지와 더불어 에뮬레이터 스킨 등이 포함되어 있습니다. Android 3.2에 대한 개발이나 테스트를 시작하려면 Android SDK Manager를 사용하여 플랫폼을 SDK에 다운로드합니다.
플랫폼 주요 사항
신규 사용자 기능
- 더 다양한 태블릿에 맞게 최적화
Android 3.2에는 시스템 전반의 다양한 최적화 기능이 포함되어 있습니다. 더 광범위한 태블릿 기기에서 우수한 사용자 환경을 보장합니다.
- 고정 크기 앱의 호환성 확대/축소
Android 3.2에는 새로운 호환성 확대/축소 모드가 도입되어 사용자는 더 큰 기기에서 고정된 크기의 앱을 볼 수 있는 새로운 방법을 제공합니다. 이 새로운 모드는 태블릿과 같이 더 큰 화면 크기에서 실행되도록 설계되지 않은 앱을 위해 표준 UI 늘리기에 대한 대안으로 픽셀 크기 조정을 제공합니다. 새 모드는 시스템 표시줄의 메뉴 아이콘을 통해 액세스 가능해야 하는 앱의 경우 호환성 지원을 제공합니다.
- SD 카드에서 미디어 동기화하기
이제 SD 카드를 지원하는 기기에서 사용자가 미디어 파일을 SD 카드에서 미디어 파일을 사용하는 앱으로 직접 로드할 수 있습니다. 시스템 시설을 사용하면 앱이 시스템 미디어 저장소에서 파일에 액세스할 수 있습니다.
새로운 개발자 기능
- 화면 지원을 위한 확장 API
Android 3.2는 플랫폼의 화면 지원 API에 확장 프로그램을 도입하여 개발자가 다양한 플랫폼에서 애플리케이션 UI를 관리할 수 있는 Android 구동 기기 API에는 새로운 리소스 한정자와 새로운 매니페스트 속성을 사용하면 애플리케이션 구성 방법을 보다 정밀하게 앱이 일반화된 방식에 의존하지 않고 다양한 크기로 표시됨 크기 카테고리입니다.
고정 크기 앱과 다양한 화면 크기에 대한 지원이 제한된 앱에 최적의 디스플레이를 제공하기 위해 플랫폼은 더 작은 화면 영역에서 UI를 렌더링한 다음 디스플레이에서 사용 가능한 공간을 채우도록 크기를 조정하는 새로운 확대/축소 호환성 모드도 제공합니다. 자세한 내용은 화면 지원 API와 이 API에서 제공하는 컨트롤에 관한 자세한 내용은 아래 섹션을 참고하세요.
API 개요
Screens Support API
Android 3.2에서는 다양한 화면 크기에서 애플리케이션이 표시되는 방식을 더 세부적으로 제어할 수 있는 새로운 화면 지원 API를 도입했습니다. 이 API는 플랫폼의 일반화된 화면 밀도 모델이지만, 정밀한 화면 밀도로도 크기별로 특정 화면 범위를 타겟팅합니다. 밀도 독립형 픽셀 단위 (예: 너비 600dp 또는 720dp)로 일반화된 화면 크기 (대형 또는 특대형) 기준
애플리케이션의 UI를 디자인할 때 여전히 플랫폼을 활용하여 밀도 추상화를 제공합니다. 즉, 애플리케이션은 기기 간 실제 픽셀 밀도의 차이를 보정할 수 있습니다. 나 화면의 크기에 따라 애플리케이션 UI를 디자인할 수 충분한 공간이 있습니다. 플랫폼은 새로운 세 가지 옵션을 사용하여 사용 가능한 공간을 표현하고 특성: smallestWidth, width 및 높이.
- 화면의 smallestWidth는 기본적인 최소 크기이며, 밀도 독립형 픽셀('dp') 단위로 측정됩니다. 화면의 높이 또는 너비 중 더 짧은 값입니다. 세로 모드 화면의 경우 일반적으로 smallestWidth는 너비를 기반으로 하지만 가로 모드 화면의 경우 높이를 기반으로 합니다. 모든 경우에 smallestWidth는 화면의 고정된 특성에서 파생되며 방향에 관계없이 값이 변경되지 않습니다. smallestWidth 는 애플리케이션에 중요한 역할을 합니다. 가능한 가장 짧은 너비를 나타내기 때문입니다. 화면 영역을 제외하고 애플리케이션 UI를 그려야 합니다. 예약됩니다.
- 반대로 화면의 너비 및 높이는 애플리케이션 레이아웃에 사용할 수 있는 현재 가로 또는 세로 공간(측정됨) 'dp' 단위(시스템이 예약한 화면 영역은 제외) 너비 및 사용자가 가로 모드 간에 방향을 전환할 때 화면 높이 변경 사용할 수 있습니다.
새로운 화면 지원 API는 현재 화면의 smallestWidth에 따라 애플리케이션 UI를 관리할 수 있도록 설계되었습니다. 또한 필요에 따라 현재 너비 또는 높이에 따른 UI를 생성합니다. 이를 위해 API는 다음 도구를 제공합니다.
- 레이아웃 및 기타 리소스를 최소 smallestWidth, 너비 또는 높이로 타겟팅하는 새로운 리소스 한정자
- 앱의 최댓값 지정을 위한 새 매니페스트 속성 화면 호환성 범위
또한 애플리케이션은 이전 버전의 플랫폼에서와 같이 계속 시스템을 쿼리하고 런타임에 UI 및 리소스 로드를 관리할 수 있습니다.
새 API를 사용하면 smallestWidth를 통해 더 직접적으로 화면을 타겟팅할 수 있으므로 일반적인 어조의 크기를 이해하는 것이 특성에 따라 다릅니다 아래 표에는 'dp' 단위로 측정된 예 개의 단위로 표시됩니다.
유형 | 밀도 (일반화됨) | 크기 (dp) | smallestWidth (dp) |
---|---|---|---|
기준 전화번호 | mdpi | 320x480까지 확장 가능 | 320 |
소형 태블릿/대형 휴대전화 | mdpi | 480x800까지 확장 가능 | 480 |
7인치 태블릿 | mdpi | 600x1024 | 600 |
10인치 태블릿 | mdpi | 800x1280 | 800 |
아래 섹션에서는 새로운 화면 한정자 및 매니페스트 속성에 대해 자세히 설명합니다. 화면 지원 API를 사용하는 방법에 관한 자세한 내용은 여러 화면 지원을 참고하세요.
화면 지원을 위한 새로운 리소스 한정자
Android 3.2의 새로운 리소스 한정자를 사용하면 다양한 화면 크기에 맞게 레이아웃을 더 효과적으로 타겟팅할 수 있습니다. 한정자를 사용하면 밀도 독립형 픽셀로 측정된 특정 최소 smallestWidth, 현재 너비 또는 현재 높이에 맞게 설계된 리소스 구성을 만들 수 있습니다.
새로운 한정자는 다음과 같습니다.
swNNNdp
- 이 값이 열리는 최소 smallestWidth를 지정합니다. 리소스가 사용되어야 하며 'dp'로 측정됩니다. 개의 단위로 표시됩니다. 위에서 언급했듯이 화면의 smallestWidth는 방향과 상관없이 일정합니다. 예시:sw320dp
,sw720dp
,sw720dp
.wNNNdp
및hNNNdp
: 최솟값을 지정합니다. 리소스가 사용되어야 하는 너비 또는 높이로, 'dp'로 측정됩니다. 개의 단위로 표시됩니다. 위에서 언급한 대로 화면의 너비와 높이는 화면의 방향에 따라 달라지며 방향이 변경될 때마다 변경됩니다. 예시:w320dp
,w720dp
,h1024dp
.
필요한 경우 중복되는 여러 리소스 구성을 만들 수도 있습니다. 예를 들어 480픽셀보다 큰 모든 화면에서 사용할 수 있도록 일부 리소스에 태그를 지정할 수 있습니다. dp, 600dp보다 넓은 경우, 720dp보다 넓은 경우 등입니다. 지정된 화면에 여러 리소스 구성이 적합한 경우 시스템은 가장 근접한 구성을 선택합니다. 모든 디바이스를 어떤 리소스가 주어진 화면에 로드되었는지 확인하고, 한정자를 사용하거나 여러 신규 또는 기존 한정자를 조합할 수 있습니다.
다음은 앞에서 나열한 일반적인 측정기준에 따른 몇 가지 예입니다. 새로운 한정자를 사용할 수 있습니다.
res/layout/main_activity.xml # For phones res/layout-sw600dp/main_activity.xml # For 7” tablets res/layout-sw720dp/main_activity.xml # For 10” tablets res/layout-w600dp/main_activity.xml # Multi-pane when enough width res/layout-sw600dp-w720dp/main_activity.xml # For large width
이전 버전의 플랫폼은 새 한정자를 무시하므로 필요에 따라 이를 혼합하여 모든 기기에서 앱이 멋지게 표시되도록 할 수 있습니다. 다음은 몇 가지 예입니다.
res/layout/main_activity.xml # For phones res/layout-xlarge/main_activity.xml # For pre-3.2 tablets res/layout-sw600dp/main_activity.xml # For 3.2 and up tablets
새 한정자를 사용하는 방법에 대한 자세한 내용은 새 한정자 사용 크기 한정자를 참조하세요.
화면 크기 호환성을 위한 새로운 매니페스트 속성
프레임워크는 다양한 화면 크기에 대한 앱의 지원을 관리할 수 있는 새로운 <supports-screens>
매니페스트 속성을 제공합니다.
특히 앱이 실행되도록 설계된 최대 및 최소 화면과 시스템의 새 화면 호환 모드가 필요하지 않은 최대 화면을 지정할 수 있습니다. 위에 설명된 리소스 한정자와 마찬가지로 새 매니페스트 속성은 smallestWidth로 지정된 대로 애플리케이션이 지원하는 화면 범위를 지정합니다.
화면 지원을 위한 새로운 매니페스트 속성은 다음과 같습니다.
android:compatibleWidthLimitDp="numDp"
- 현재 속성을 사용하면 애플리케이션이 호환성 모드 없이도 실행할 수 있습니다. 현재 화면이 지정된 값보다 큰 경우 시스템은 애플리케이션을 일반 모드로 표시하지만 사용자가 원하는 경우 시스템 표시줄의 설정을 통해 호환 모드로 전환할 수 있습니다.android:largestWidthLimitDp="numDp"
: 이 속성을 사용하면 애플리케이션이 실행되도록 설계된 최대 smallestWidth를 지정할 수 있습니다. 현재 화면이 지정된 값보다 큰 경우 시스템은 애플리케이션을 화면 호환성 모드로 강제 전환하여 현재 화면에서 최상의 디스플레이를 보장합니다.android:requiresSmallestWidthDp="numDp"
- 현재 속성을 사용하면 애플리케이션이 실행할 수 있습니다 현재 화면이 지정된 값보다 작으면 시스템은 애플리케이션이 기기와 호환되지 않는 것으로 간주하지만 이를 방지하지는 않습니다. 설치 및 실행되지 않습니다
참고: Google Play에서는 현재 필터링되지 않습니다.
앱에 적용할 수 있습니다. 필터링 지원은 이후 플랫폼 출시에서 추가될 예정입니다. 애플리케이션에
기존 <supports-screens>
를 사용할 수 있습니다.
속성
새 속성을 사용하는 방법에 대한 자세한 내용은 선언하기 화면 크기 지원을 참조하세요.
화면 호환 모드
Android 3.2는 애플리케이션을 위한 새로운 화면 호환성 모드를 제공합니다. 기본 화면보다 큰 화면을 지원하지 않는다고 명시적으로 선언한 경우 실행할 수 있습니다 이 새로운 '확대/축소' 모드는 픽셀 크기 조정입니다. 즉, 더 작은 화면 영역에서 애플리케이션을 렌더링한 다음 픽셀 크기를 조정하여 현재 화면을 채웁니다.
기본적으로 시스템은 화면 호환성 모드가 필요한 앱에 화면 호환성 모드를 사용자 옵션으로 제공합니다. 사용자는 시스템 바에서 제공되는 컨트롤을 사용하여 확대/축소 모드를 켜거나 끌 수 있습니다.
새 화면 호환 모드가 일부 사용자에게 적합하지 않을 수 있기 때문입니다. 플랫폼에서 애플리케이션이 매니페스트를 사용하여 이를 사용 중지할 수 있도록 허용 속성 앱에서 사용 중지하면 시스템은 앱이 실행 중일 때 사용자에게 '확대/축소' 호환성 모드를 옵션으로 제공하지 않습니다.
참고: Google Cloud에서 애플리케이션의 호환성 모드를 제어하려면 Android에서 대형 화면의 앱을 위한 새로운 모드 도움말을 개발자 블로그.
720p TV 및 유사 기기의 새로운 화면 밀도
720p TV 또는 중간 밀도 화면과 유사한 기기에서 실행되는 애플리케이션의 요구사항을 충족하기 위해 Android 3.2에서는 대략 213dpi의 새로운 일반화된 밀도 tvdpi
를 도입합니다. 애플리케이션은
densityDpi
의 새로운 밀도를 구현하고
새로운 tvdpi
한정자를 사용하여 TV 리소스 및
유사 기기 예를 들면 다음과 같습니다.
res/drawable-tvdpi/my_icon.png # Bitmap for tv density
일반적으로 애플리케이션은 이 밀도로 작동할 필요가 없습니다. 상황 720p 화면에 출력이 필요한 경우 UI 요소를 조정 가능 자동으로 작동합니다
UI 프레임워크
- 프래그먼트
<ph type="x-smartling-placeholder">
- </ph>
- 새
Fragment.SavedState
클래스는 상태를 보유합니다 프래그먼트 인스턴스에서 검색된 정보를saveFragmentInstanceState()
입니다. - 새 메서드
saveFragmentInstanceState()
현재 인스턴스 상태를 합니다. 나중에 새 인스턴스를 만들 때 상태를 사용할 수 있습니다. 현재 상태와 일치하는 프래그먼트의 값을 반환합니다. - 새 메서드
setInitialSavedState()
처음 생성될 때 프래그먼트의 초기 저장된 상태를 설정합니다. - 새
onViewCreated()
콜백 메서드는onCreateView()
반환된 상태이지만 저장된 상태가 뷰에 복원되기 전에 할 수 있습니다. isDetached()
메서드는 프래그먼트가 UI에서 명시적으로 분리되었는지 확인합니다.- 새
attach()
및detach()
메서드를 사용하면 애플리케이션이 UI에서 프래그먼트를 다시 연결하거나 분리할 수 있습니다. - 새
setCustomAnimations()
오버로드 메서드를 사용하면 특정 애니메이션을 설정할 수 있습니다. 들어가기/나가기 작업, 특히 언제 백 스택 팝하기 기존 구현에는 을 사용해야 합니다.
- 새
- ActivityInfo 및 ApplicationInfo의 화면 크기 정보
<ph type="x-smartling-placeholder">
- </ph>
ActivityInfo
님이CONFIG_SCREEN_SIZE
을(를) 추가합니다. 및CONFIG_SMALLEST_SCREEN_SIZE
를 비트 마스크로 사용합니다. (configChanges
) 비트는 활동이 자체에서 화면 크기와 가장 작은 화면 크기를 처리합니다.ApplicationInfo
님이 추가largestWidthLimitDp
,compatibleWidthLimitDp
및requiresSmallestWidthDp
필드 상응하는<supports-screens>
속성에서 파생됨 매니페스트 파일에 포함됩니다.
- WindowManager에서 디스플레이 크기를 가져오는 도우미
<ph type="x-smartling-placeholder">
- </ph>
- 새 메서드
getSize()
및getRectSize()
를 사용하면 애플리케이션이 디스플레이의 원시 크기를 가져올 수 있습니다.
- 새 메서드
- 최신 공개 '홀로그래픽' 스타일
<ph type="x-smartling-placeholder">
- </ph>
- 이제 플랫폼에서 다양한 공개 '홀로그래픽'을 노출하고 스타일
텍스트, 작업 모음 위젯 및 탭 등을 포함할 수 있습니다. 전체 목록은
R.style
를 참고하세요.
- 이제 플랫폼에서 다양한 공개 '홀로그래픽'을 노출하고 스타일
텍스트, 작업 모음 위젯 및 탭 등을 포함할 수 있습니다. 전체 목록은
LocalActivityManager
,ActivityGroup
외LocalActivityManager
가 이제 지원 중단됨 <ph type="x-smartling-placeholder">- </ph>
- 새 애플리케이션은 이러한 클래스 대신 프래그먼트를 사용해야 합니다. 받는사람 이전 버전의 플랫폼에서 계속 실행하려는 경우 Android SDK에서 사용할 수 있는 라이브러리 (호환성 라이브러리) v4 지원 라이브러리는 다음과 호환되는 Fragment API 버전을 제공합니다. Android 1.6 (API 수준 4)
- Android 3.0(API 수준 11) 이상을 대상으로 개발하는 앱의 경우 탭은 일반적으로 작업 표시줄 영역에 탭을 배치하기 위한 새로운
ActionBar.newTab()
및 관련 API를 사용하여 UI에 표시됩니다.
미디어 프레임워크
- 이제 플랫폼의 미디어 제공자 (
MediaStore
)를 사용하는 애플리케이션은 기기에서 지원하는 경우 이동식 SD 카드여야 합니다. 애플리케이션은 MTP API를 사용하여 SD 카드 파일과 직접 상호작용할 수도 있습니다.
그래픽
- Point 및 PointF의 Parcelable 유틸리티
<ph type="x-smartling-placeholder">
- </ph>
Point
및PointF
이제 클래스에Parcelable
인터페이스와 유틸리티 메서드describeContents()
,readFromParcel()
,writeToParcel()
가 포함됩니다.
IME 프레임워크
- 새로운
getModifiers()
메서드 특수키의 현재 상태를 가져옵니다.
USB 프레임워크
- 기기의 원시 USB 설명어를 가져오는 새로운
getRawDescriptors()
메서드 이 더 높은 상위 수준 API를 통해 직접 지원되지 않는 설명어에 액세스하는 사용할 수 있습니다
네트워크
- 네트워크 유형 상수
ConnectivityManager
는 상수TYPE_ETHERNET
및TYPE_BLUETOOTH
를 추가합니다.
전화 통신
- 새로운
NETWORK_TYPE_HSPAP
네트워크 유형 상수입니다.
핵심 유틸리티
- Parcelable 유틸리티
- 새 인터페이스
Parcelable.ClassLoaderCreator
에서 객체가 생성 중인 ClassLoader를 수신할 수 있습니다. ParcelFileDescriptor
객체를 관리하기 위한 새로운adoptFd
,dup()
,fromFd()
- 새 인터페이스
- 바인더 및 IBinder
- 새 메서드
dumpAsync()
Binder
및IBinder
에서 애플리케이션이 지정된 파일로 덤프하여 타겟이 비동기식으로 실행되도록 합니다. - 새로운
IBinder
프로토콜 트랜잭션 코드TWEET_TRANSACTION
를 사용하면 애플리케이션에서 트윗을 보낼 수 있습니다. 타겟 객체에 추가합니다
- 새 메서드
새로운 기능 상수
플랫폼에서 개발자가 선언할 수 있는 새로운 하드웨어 기능 상수를 추가합니다.
Google과 같은 외부 주체에 정보를 제공하기 위해
필요한 하드웨어 및 소프트웨어 기능 사용자는 이러한
및 <uses-feature>
매니페스트 요소에 기타 기능 상수를 포함합니다.
Google Play는 요구사항이 충족되는 기기에서만 애플리케이션을 사용할 수 있도록 <uses-feature>
속성을 기반으로 애플리케이션을 필터링합니다.
- 가로 또는 세로 모드 요구사항을 위한 기능 상수
Android 3.2에서는 애플리케이션이 가로 모드 방향, 세로 모드 방향 또는 둘 다의 디스플레이가 필요한지 지정할 수 있는 새로운 기능 상수를 도입합니다. 이러한 상수를 선언하면 연결된 방향을 제공하지 않는 기기에 애플리케이션을 설치하면 안 된다는 것을 나타냅니다. 반대로 상수 중 하나 또는 둘 다 선언되지 않은 경우 애플리케이션에 선언되지 않은 방향에 대한 환경설정이 없으며 이러한 방향을 제공하지 않는 기기에 설치될 수 있음을 나타냅니다.
android.hardware.screen.landscape
- 애플리케이션이 표시되어야 함: 사용할 수 있습니다.android.hardware.screen.portrait
- 애플리케이션이 표시되어야 함: 세로 방향입니다.
가로 모드 방향과 세로 모드 방향에서 모두 제대로 작동하는 일반적인 애플리케이션은 일반적으로 방향 요구사항을 선언할 필요가 없습니다. 대신 TV용으로 설계된 앱과 같이 주로 하나의 방향에 맞게 설계된 애플리케이션은 상수 중 하나를 선언하여 해당 방향을 제공하지 않는 기기에서 앱을 사용할 수 없도록 할 수 있습니다.
매니페스트에 선언된 활동 중 하나가
android:screenOrientation
속성을 사용하여 특정 방향으로 실행되도록 요청하는 경우 애플리케이션에 해당 방향이 필요하다고도 선언됩니다. - 기타 기능 상수
<ph type="x-smartling-placeholder">
- </ph>
android.hardware.faketouch.multitouch.distinct
- 애플리케이션에서 두 개 이상의 지점에 대한 고유한 추적 기능을 사용하여 에뮬레이션된 다중 터치 입력을 지원해야 합니다.android.hardware.faketouch.multitouch.jazzhand
- 애플리케이션에서 5개 이상의 지점에 대한 고유한 추적 기능을 사용하여 에뮬레이션된 다중 터치 입력을 지원해야 합니다.
API 차이점 보고서
Android 3.2(API 수준 13)의 모든 API 변경사항에 관한 자세한 내용은 API 차이점 보고서를 참고하세요.
API 수준
Android 3.2 플랫폼은 API에 액세스할 수 있습니다 Android 3.2 API 정수 식별자가 할당됩니다. 13 — 즉 시스템 자체에 저장됩니다. 'API 수준'이라고 하는 이 식별자를 사용하면 시스템이 애플리케이션을 설치하기 전에 애플리케이션이 시스템과 호환되는지 올바르게 판단할 수 있습니다.
Android 3.2에 도입된 API를 애플리케이션에서 사용하려면
Android 라이브러리에 대해 애플리케이션을 컴파일하고
지원합니다. 필요에 따라
예상
android:minSdkVersion="13"
도 추가해야 합니다.
속성을 <uses-sdk>
요소에 추가합니다.
합니다.
자세한 내용은 API란? 레벨?