API 수준: 9
개발자는 Android 2.3(GINGERBREAD
) 플랫폼을 Android SDK의 다운로드 가능한 구성요소로 사용할 수 있습니다. 다운로드 가능한 플랫폼에는 Android 라이브러리, 시스템 이미지, 에뮬레이터 스킨 세트 등이 포함됩니다. Android 2.3을 개발하거나 테스트를 시작하려면 Android SDK Manager를 사용하여 플랫폼을 SDK에 다운로드하세요.
API 개요
아래 섹션에서는 이전 버전 이후 프레임워크 API의 새로운 기능과 변경사항을 포함하여 2.3의 새로운 기능에 관한 기술 개요를 제공합니다.
SIP 기반 VoIP
이제 플랫폼에는 개발자가 인터넷 전화 통신 애플리케이션을 빌드할 수 있는 SIP 프로토콜 스택 및 프레임워크 API가 포함됩니다. API를 사용하면 애플리케이션에서 세션, 전송 수준의 통신 또는 오디오를 관리할 필요 없이 음성 통화 기능을 제공할 수 있습니다. 이러한 기능은 플랫폼의 SIP API 및 서비스에 의해 투명하게 처리됩니다.
SIP API는 android.net.sip
패키지로 제공됩니다. 키 클래스는 SipManager
로, 애플리케이션은 SIP 프로필을 설정 및 관리하고 음성 통화를 시작하고 음성 통화를 수신하는 데 사용됩니다. 음성 통화가 설정되면 애플리케이션은 통화를 음소거하고 스피커 모드를 사용 설정하며 DTMF 톤을 전송하는 등의 작업을 할 수 있습니다. 애플리케이션은 SipManager
를 사용하여 일반 SIP 연결을 만들 수도 있습니다.
플랫폼의 기본 SIP 스택 및 서비스는 제조업체 및 관련 이동통신사의 재량에 따라 기기에서 사용할 수 있습니다. 따라서 애플리케이션에서 통화 기능을 사용자에게 노출하기 전에 isApiSupported()
메서드를 사용하여 SIP 지원을 사용할 수 있는지 확인해야 합니다.
SIP API를 사용하려면 애플리케이션에서 매니페스트 파일에서 <uses-permission
android:name="android.permission.INTERNET">
및 <uses-permission
android:name="android.permission.USE_SIP">
를 선언하여 사용자에게 권한을 요청해야 합니다.
또한 개발자는 Google Play에서 필터링을 요청하여 플랫폼의 SIP 스택 및 서비스가 포함되지 않은 기기의 사용자에게 애플리케이션이 표시되지 않도록 할 수 있습니다. 필터링을 요청하려면 애플리케이션 매니페스트에 <uses-feature
android:name="android.software.sip"
android:required="true">
및 <uses-feature
android:name="android.software.sip.voip">
를 추가합니다.
자세한 내용은 SIP 개발자 가이드를 참고하세요.
근거리 무선통신(NFC)
Android 2.3에는 사용자가 NFC 지원 기기를 터치하여 스티커, 스마트 포스터, 기타 기기에 삽입된 요소에 태그를 지정할 때 발견되는 NDEF 태그를 개발자가 읽을 수 있는 NFC 스택과 프레임워크 API가 포함되어 있습니다.
이 플랫폼은 태그가 범위 내에 들어올 때 태그를 검색할 수 있도록 기기 하드웨어와 함께 작동하는 기본 NFC 서비스를 제공합니다. 태그를 찾으면 플랫폼은 인텐트를 브로드캐스트하고 태그의 NDEF 메시지를 인텐트에 extras로 추가하여 애플리케이션에 알립니다. 애플리케이션은 인텐트 필터를 만들어 타겟팅된 태그와 메시지를 인식하고 처리할 수 있습니다. 예를 들어 인텐트로 태그를 받은 후 애플리케이션은 NDEF 메시지를 추출하거나 저장하거나 사용자에게 알리거나 다른 방식으로 처리합니다.
NFC API는 android.nfc
패키지에서 사용할 수 있습니다. 주요 클래스는 다음과 같습니다.
NfcAdapter
: 기기의 NFC 하드웨어를 나타냅니다.NdefMessage
: 데이터를 전달하는 '레코드'가 기기와 태그 간에 전송되는 표준 형식인 NDEF 데이터 메시지를 나타냅니다. 애플리케이션은ACTION_TAG_DISCOVERED
인텐트에서 이러한 메시지를 수신할 수 있습니다.NdefRecord
: 공유 중인 데이터의 유형을 설명하고 데이터 자체를 전달하는NdefMessage
로 전달됩니다.
NFC 통신은 기기 하드웨어의 무선 기술에 의존하므로 특정 기기에서 플랫폼의 NFC 기능 지원은 제조업체에서 결정합니다. 현재 기기에서 NFC 지원을 확인하려면 애플리케이션은 isEnabled()
를 호출하여 NfcAdapter
를 쿼리하면 됩니다. 그러나 NFC API는 기본 하드웨어 지원과 관계없이 항상 존재합니다.
NFC API를 사용하려면 애플리케이션이 매니페스트 파일에서 <uses-permission
android:name="android.permission.NFC">
를 선언하여 사용자에게 권한을 요청해야 합니다.
또한 개발자는 Google Play에서 필터링을 요청하여 NFC를 지원하지 않는 기기의 사용자에게 애플리케이션이 표시되지 않도록 할 수 있습니다. 필터링을 요청하려면 애플리케이션의 매니페스트에 <uses-feature android:name="android.hardware.nfc"
android:required="true">
를 추가합니다.
NFC API를 사용하는 샘플 애플리케이션을 보려면 NFCDemo를 참고하세요.
자이로스코프 및 기타 센서
Android 2.3에는 자이로스코프, 회전 벡터, 선형 가속, 중력, 기압계 등 여러 새로운 센서 판독 유형을 위한 플랫폼 및 API 지원이 추가되었습니다. 개발자는 새로운 센서 측정값을 사용하여 기기 위치 및 모션의 정확한 변화에 빠르고 부드럽게 반응하는 애플리케이션을 만들 수 있습니다. 센서 API는 자이로스코프 및 기타 센서 변경사항을 관심 있는 애플리케이션에 보고합니다(애플리케이션 프레임워크에서 실행하든 네이티브 코드에서 실행하든).
기기에서 사용할 수 있는 구체적인 하드웨어 센서 세트는 기기 제조업체의 재량에 따라 다릅니다.
개발자는 자이로스코프 센서를 제공하지 않는 기기의 사용자에게 애플리케이션이 표시되지 않도록 Google Play에서 필터링을 요청할 수 있습니다. 이렇게 하려면 애플리케이션 매니페스트에 <uses-feature
android:name="android.hardware.sensor.gyroscope"
android:required="true">
를 추가합니다.
API 세부정보는 Sensor
를 참고하세요.
여러 카메라 지원
이제 애플리케이션은 기기에서 사용할 수 있는 모든 카메라를 사진 또는 동영상 캡처에 사용할 수 있습니다. Camera
를 사용하면 애플리케이션이 사용 가능한 카메라 수와 각 카메라의 고유한 특성을 쿼리할 수 있습니다.
- 새
Camera.CameraInfo
클래스는 카메라의 위치 특성 (방향, 전면 또는 후면)을 저장합니다. Camera
클래스의 새로운getNumberOfCameras()
및getCameraInfo()
메서드를 사용하면 애플리케이션이 사용 가능한 카메라를 쿼리하고 필요한 카메라를 열 수 있습니다.- 새로운
get()
메서드를 사용하면 애플리케이션이 특정 카메라의CamcorderProfile
를 검색할 수 있습니다. - 새
getJpegEncodingQualityParameter()
를 사용하면 애플리케이션이 특정 카메라의 스틸 이미지 캡처 품질 수준을 가져올 수 있습니다.
전면 카메라에 액세스하기 위한 샘플 코드를 보려면 ApiDemos 샘플 애플리케이션의 CameraPreview.java를 참고하세요.
Camera API는 다음 사항도 추가합니다.
- 초점 거리, 초점 모드, 미리보기 fps 최대/최소를 포함한 카메라의 새 매개변수 카메라 매개변수를 가져오는 새로운
getFocusDistances()
,getPreviewFpsRange()
,getSupportedPreviewFpsRange()
와 미리보기 프레임 속도를 설정하는setPreviewFpsRange()
를 추가했습니다.
믹스 가능한 오디오 효과
플랫폼의 미디어 프레임워크는 베이스 부스트, 헤드폰 가상화, 이퀄라이제이션, 에코 등 새로운 트랙별 또는 전역 오디오 효과 지원을 추가합니다.
- 새
android.media.audiofx
패키지는 오디오 효과에 액세스하는 API를 제공합니다. - 새
AudioEffect
는 Android 오디오 프레임워크에서 제공하는 오디오 효과를 제어하는 기본 클래스입니다. - 애플리케이션이 오디오 효과 집합을
AudioTrack
또는MediaPlayer
인스턴스와 연결할 수 있는 새 오디오 세션 ID입니다. - 새로운
AudioTrack
클래스 생성자를 사용하여 특정 세션 ID로AudioTrack
를 만들 수 있습니다. 새로운attachAuxEffect()
,getAudioSessionId()
,setAuxEffectSendLevel()
메서드 - 새로운
attachAuxEffect()
,getAudioSessionId()
,setAudioSessionId(int)
,setAuxEffectSendLevel()
메서드 및 지원 유형
오디오 효과에 관한 샘플 코드를 보려면 ApiDemos 샘플 애플리케이션의 AudioFxDemo.java를 참고하세요.
미디어 프레임워크는 다음 사항도 추가합니다.
- JPEG 파일용 EXIF 메타데이터에서 고도 태그를 새롭게 지원합니다. EXIF 고도 태그의 값을 검색하는 새 메서드
getAltitude()
- 새로운
setOrientationHint()
메서드를 사용하면 애플리케이션이 동영상 캡처 중에MediaRecorder
에 방향을 알려줄 수 있습니다.
다운로드 관리자
플랫폼에는 장기 실행 HTTP 다운로드를 처리하는 새로운 DownloadManager
시스템 서비스가 포함되어 있습니다. 애플리케이션은 URI를 특정 대상 파일로 다운로드하도록 요청할 수 있습니다. DownloadManager
는 백그라운드에서 다운로드를 실행하여 HTTP 상호작용을 처리하고, 실패 후 또는 연결 변경 및 시스템 재부팅 시 다운로드를 다시 시도합니다.
- 애플리케이션은
getSystemService(String)
를 호출하고DOWNLOAD_SERVICE
를 전달하여DownloadManager
클래스의 인스턴스를 가져올 수 있습니다. 이 API를 통해 다운로드를 요청하는 애플리케이션은ACTION_NOTIFICATION_CLICKED
의 broadcast receiver를 등록하여 사용자가 알림이나 다운로드 UI에서 실행 중인 다운로드를 클릭할 때 적절하게 처리해야 합니다. DownloadManager.Request
클래스를 사용하면 애플리케이션이 새 다운로드를 요청하는 데 필요한 모든 정보(예: 요청 URI, 다운로드 대상)를 제공할 수 있습니다. 요청 URI가 유일한 필수 매개변수입니다. 기본 다운로드 대상은 시스템에서 사용할 공간을 확보해야 하는 경우 시스템이 파일을 삭제할 수 있는 공유 볼륨입니다. 다운로드의 영구 저장소의 경우 외부 저장소의 다운로드 대상을 지정합니다 (setDestinationUri(Uri)
참고).DownloadManager.Query
클래스는 애플리케이션이 활성 다운로드를 쿼리하고 필터링할 수 있는 메서드를 제공합니다.
StrictMode
개발자가 애플리케이션 성능을 모니터링하고 개선할 수 있도록 이 플랫폼에서는 StrictMode
라는 새로운 시스템 기능을 제공합니다.
애플리케이션에 구현되면 StrictMode는 애플리케이션의 기본 스레드에서 발생하는 활동과 같이 애플리케이션 성능을 저하시킬 수 있는 우발적인 디스크 또는 네트워크 활동을 포착하여 개발자에게 알립니다. 여기서 UI 작업이 수신되고 애니메이션도 실행됩니다.
개발자는 StrictMode에서 발생하는 네트워크 및 디스크 사용 문제를 평가하고 필요한 경우 수정하여 기본 스레드의 응답성을 높이고 ANR 대화상자가 사용자에게 표시되지 않도록 할 수 있습니다.
StrictMode
는 핵심 클래스이며 시스템 및 VM과의 기본 통합 지점입니다. 이 클래스는 인스턴스에 적용되는 스레드 및 VM 정책을 관리하기 위한 편의 메서드를 제공합니다.StrictMode.ThreadPolicy
및StrictMode.VmPolicy
에는 개발자가 정의하고 스레드 및 VM 인스턴스에 적용하는 정책이 포함됩니다.
StrictMode를 사용하여 애플리케이션을 최적화하는 방법에 관한 자세한 내용은 android.os.StrictMode
의 클래스 문서와 샘플 코드를 참고하세요.
UI 프레임워크
- 오버스크롤 지원
- 뷰 및 위젯에서 오버스크롤을 새롭게 지원합니다. 뷰에서 애플리케이션은 지정된 뷰의 오버스크롤을 사용 설정/사용 중지하고, 오버스콜 모드를 설정하고, 오버스크롤 거리를 제어하고, 오버스크롤 결과를 처리할 수 있습니다.
- 위젯에서 애플리케이션은 애니메이션, 스프링백, 오버스크롤 거리와 같은 오버스크롤 특성을 제어할 수 있습니다. 자세한 내용은
android.view.View
및android.widget.OverScroller
를 참고하세요. ViewConfiguration
는getScaledOverflingDistance()
및getScaledOverscrollDistance()
메서드도 제공합니다.- 오버스크롤 동작을 제어하기 위한
<ListView>
요소의 새로운overScrollMode
,overScrollFooter
및overScrollHeader
속성
- 터치 필터링 지원
- 터치 필터링을 새롭게 지원하여 애플리케이션에서 민감한 기능에 액세스할 수 있는 뷰의 보안을 개선할 수 있습니다. 예를 들어 터치 필터링은 권한 요청 부여, 구매 또는 광고 클릭과 같은 사용자 작업의 보안을 보장하는 데 적합합니다. 자세한 내용은 View 클래스 문서를 참고하세요.
- 뷰 요소의 새로운
filterTouchesWhenObscured
속성. 이 속성은 뷰의 창이 표시되는 다른 창으로 가려질 때 터치를 필터링할지 여부를 선언합니다."true"
로 설정하면 토스트 메시지, 대화상자 또는 다른 창이 뷰의 창 위에 표시될 때마다 뷰가 터치를 수신하지 않습니다. 자세한 내용은 보안 문서 보기를 참고하세요.
터치 필터링의 샘플 코드를 보려면 ApiDemos 샘플 애플리케이션의 SecureView.java를 참고하세요.
- 이벤트 관리 개선
- 입력 이벤트의 새로운 기본 클래스인
InputEvent
이 클래스는 이벤트가 구성된 InputDevice를 쿼리하는 등의 방식으로 애플리케이션이 이벤트의 의미를 결정할 수 있는 메서드를 제공합니다.KeyEvent
및MotionEvent
는InputEvent
의 서브클래스입니다. - 입력 기기의 새로운 기본 클래스인
InputDevice
이 클래스는 특정 입력 기기의 기능에 관한 정보를 저장하고 애플리케이션이 입력 기기의 이벤트를 해석하는 방법을 결정할 수 있는 메서드를 제공합니다.
- 입력 이벤트의 새로운 기본 클래스인
- 모션 이벤트 개선
MotionEvent
API는 '포인터 ID' 정보를 포함하도록 확장되어 애플리케이션이 위아래로 이동할 때 개별 손가락을 추적할 수 있습니다. 이 클래스는 애플리케이션이 모션 이벤트로 효율적으로 작동할 수 있도록 다양한 메서드를 추가합니다.- 이제 입력 시스템에는 새 포인터 ID 정보로 모션 이벤트를 생성하여 새 포인터가 다운될 때 식별자를 합성하는 로직이 있습니다. 시스템은 모션 이벤트 중에 여러 포인터 ID를 개별적으로 추적하고, 마지막 포인터 집합과 다음 포인터 집합 사이의 거리를 평가하여 포인터의 적절한 연속성을 보장합니다.
- 텍스트 선택 컨트롤
- 새로운
setComposingRegion
메서드를 사용하면 현재 스타일을 유지하면서 텍스트 영역을 텍스트 작성으로 표시할 수 있습니다.getSelectedText
메서드는 선택된 텍스트를 애플리케이션에 반환합니다. 메서드는BaseInputConnection
,InputConnection
,InputConnectionWrapper
에서 사용할 수 있습니다. <TextView>
의 새로운textSelectHandle
,textSelectHandleLeft
,textSelectHandleRight
및textSelectHandleWindowStyle
속성이 텍스트 선택 앵커와 포함하는 창의 스타일을 표시하는 데 사용되는 드로어블을 참조합니다.
- 새로운
- 활동 제어
ActivityInfo
는 활동 방향을 관리하기 위한 새로운 상수인SCREEN_ORIENTATION_FULL_SENSOR
,SCREEN_ORIENTATION_REVERSE_LANDSCAPE
,SCREEN_ORIENTATION_REVERSE_PORTRAIT
,SCREEN_ORIENTATION_SENSOR_LANDSCAPE
,SCREEN_ORIENTATION_SENSOR_PORTRAIT
를 추가합니다.ActivityManager.RunningAppProcessInfo
의importance
필드에 새 상수IMPORTANCE_PERCEPTIBLE
가 추가되었습니다. 이 값은 특정 프로세스가 사용자가 능동적으로 인지할 수 있다고 간주되는 무언가를 실행 중임을 나타냅니다. 백그라운드 음악 재생을 실행하는 애플리케이션을 예로 들 수 있습니다.- 활동을 영구으로 표시하는 Activity.setPersistent(boolean) 메서드는 이제 지원 중단되었으며 구현은 노옵스(no-ops)입니다.
- 알림 텍스트 및 아이콘 스타일
- 알림 스타일을 관리하기 위한 새로운
TextAppearance.StatusBar.EventContent
,TextAppearance.StatusBar.EventContent.Title
,TextAppearance.StatusBar.Icon
및TextAppearance.StatusBar.Title
이 추가되었습니다.
- 알림 스타일을 관리하기 위한 새로운
- 나머지 OpenGL ES 2.0 메서드
glDrawElements()
및glVertexAttribPointer()
를android.opengl.GLES20
클래스에 추가합니다. - 평면 4:2:0 YCrCb 형식인
YV12
픽셀 형식 지원을 추가합니다. - 알람을 설정하거나 알람을 처리하는 새로운
AlarmClock
제공자 클래스 제공자에는 활동을 시작하여 알람 시계 애플리케이션에서 새 알람을 설정하는 데 사용할 수 있는ACTION_SET_ALARM
인텐트 작업과 추가 항목이 포함되어 있습니다.SET_ALARM
인텐트를 수신하려는 애플리케이션은 SET_ALARM 권한이 필요한 활동을 만들어야 합니다. 새 알람을 만들려는 애플리케이션은Context.startActivity()
를 사용해야 합니다. 그래야 사용자가 사용할 알람 시계 애플리케이션을 선택할 수 있습니다. MediaStore
는 새로운 인텐트 작업PLAY_FROM_SEARCH
를 지원합니다. 이 작업을 통해 애플리케이션은 음악 미디어를 검색하고 가능한 경우 결과에서 콘텐츠를 자동으로 재생할 수 있습니다. 예를 들어 애플리케이션이 음악을 듣기 위한 음성 인식 명령어의 결과로 이 인텐트를 실행할 수 있습니다.MediaStore
는 미디어 스캐너에 포함된 디렉터리 및 하위 디렉터리에 있는 미디어를 무시하도록 지시하는 새로운MEDIA_IGNORE_FILENAME
플래그도 추가합니다. 개발자는 이 기능을 사용하여 갤러리에 그래픽이 표시되지 않도록 하고 애플리케이션 사운드와 음악이 음악 앱에 표시되지 않도록 할 수 있습니다.Settings
제공자는 새로운 활동 작업APPLICATION_DETAILS_SETTINGS
및MANAGE_ALL_APPLICATIONS_SETTINGS
를 추가합니다. 이를 통해 애플리케이션이 특정 애플리케이션의 세부정보 화면을 표시하거나 애플리케이션 관리 화면을 표시할 수 있습니다.ContactsContract
제공자는 연락처의 SIP (인터넷 전화통신) 주소를 저장하기 위한ContactsContract.CommonDataKinds.SipAddress
데이터 종류를 추가합니다.LocationManager
는 이제 애플리케이션을 식별하는 시스템 관리 클래스인WorkSource
에 따라 wake lock 또는 Wi-Fi 잠금을 유발하는 애플리케이션 요청을 추적합니다.LocationManager
는 주기적 업데이트를 요청하는 모든 클라이언트를 추적하고 최소 업데이트 시간을 설정할 때 이를WorkSource
매개변수로 제공자에게 알려줍니다. 네트워크 위치 정보 제공자는WorkSource
를 사용하여 애플리케이션에서 시작한 절전 모드 해제 및 Wi-Fi 잠금을 추적하고 애플리케이션 관리에서 보고된 애플리케이션의 배터리 사용량에 이를 추가합니다.LocationManager
는 활동 등록이 지정된 기준에 따라 주기적 또는 일회성 위치 업데이트를 수신하도록 하는 몇 가지 새로운 메서드를 추가합니다 (아래 참고).- 새
Criteria
클래스를 사용하면 애플리케이션이 위치 정보 제공자를 선택하기 위한 기준 집합을 지정할 수 있습니다. 예를 들어 정확도, 전력 사용량, 고도, 속도, 방위 보고 기능, 금전적 비용에 따라 제공업체를 정렬할 수 있습니다. - Android 2.3에는 OBB (Opaque Binary Blob) 파일을 지원하는 새로운
StorageManager
가 추가되었습니다. OBB의 플랫폼 지원은 Android 2.3에서 사용할 수 있지만, OBB 파일을 만들고 관리하기 위한 개발 도구는 2011년 초까지 사용할 수 없습니다. - Android 2.3 플랫폼은 실제 SD 카드를 사용할 수 없는 경우 가상 SD 카드 파티션을 제공하지만 SD 카드가 포함되지 않은 기기를 위한 공식 지원을 추가합니다. 편의 메서드
isExternalStorageRemovable()
를 사용하면 애플리케이션에서 실제 SD 카드가 있는지 확인할 수 있습니다. - 하드웨어 및 소프트웨어 기능을 선언하기 위한 새로운 상수를 추가했습니다. 아래의 새로운 기능 상수 섹션의 목록을 참고하세요.
PackageInfo
는 패키지 설치 시간과 최종 업데이트 시간을 저장하는 새로운firstInstallTime
및lastUpdateTime
필드를 추가합니다.- 특정 콘텐츠 제공자 클래스에 관해 알려진 모든 정보를 검색하는 새로운
getProviderInfo()
메서드가 추가되었습니다. TelephonyManager
는 CDMA EVDO Rev B 네트워크 유형을 지정하기 위해 상수NETWORK_TYPE_EVDO_B
를 추가합니다.- 새로운
getPsc()
메서드는 UMTS 네트워크에서 제공 셀의 기본 스크램블링 코드를 반환합니다. NativeActivity
는 새로운 유형의 Activity 클래스로, 수명 주기 콜백이 네이티브 코드에 직접 구현됩니다.NativeActivity
및 기본 네이티브 코드는 다른 활동과 마찬가지로 시스템에서 실행됩니다. 특히 Android 애플리케이션의 시스템 프로세스에서 실행되고 애플리케이션의 기본 UI 스레드에서 실행되며 다른 활동과 동일한 수명 주기 콜백을 수신합니다.- 새로운
InputQueue
클래스 및 콜백 인터페이스를 사용하면 네이티브 코드에서 이벤트 큐를 관리할 수 있습니다. - 새로운
SurfaceHolder.Callback2
인터페이스를 사용하면 네이티브 코드에서SurfaceHolder
를 관리할 수 있습니다. Window
의 새로운takeInputQueue
및takeSurface()
메서드를 사용하면 네이티브 코드에서 이벤트와 노출 영역을 관리할 수 있습니다.dalvik.system
는 이전에 지원 중단된 여러 클래스를 삭제합니다.- Dalvik Core 라이브러리:
- 새 컬렉션:
ArrayDeque
,NavigableMap
,ConcurrentSkipListMap
,LinkedBlockingDeque
- 새로운
Arrays
유틸리티:binarySearch()
,copyOf()
,copyOfRange()
등 HttpURLConnection
의 경우CookieManager
입니다.- 보다 완전한 네트워크 API:
InterfaceAddress
,NetworkInterface
,IDN
File
읽기 및 쓰기 제어String.isEmpty()
Normalizer
및Normalizer.Form
javax.net.ssl
서버 소켓이 개선되었습니다.
- 새 컬렉션:
<supports-screens>
요소의 새로운xlargeScreens
속성을 사용하여 애플리케이션에서 초대형 화면 폼 팩터를 지원하는지 여부를 나타냅니다. 자세한 내용은 여러 화면 지원을 참고하세요.<activity>
요소의android:screenOrientation
속성에 관한 새 값:"reverseLandscape"
- Activity에서 화면을 가로 방향으로, 정상적인 가로 방향에서 반대 방향으로 바꾸려고 합니다."reversePortrait"
- Activity는 화면을 세로 모드 방향으로, 정상적인 세로 모드와 반대 방향으로 바꾸려고 합니다."sensorLandscape"
- 활동은 화면을 가로 방향으로하려고 하지만 센서를 사용하여 화면이 향하는 방향을 변경할 수 있습니다."sensorPortrait"
- 활동은 화면을 세로 방향으로 만들려고 하지만 센서를 사용하여 화면이 향하는 방향을 변경할 수 있습니다."fullSensor"
- 방향은 실제 방향 센서에 의해 결정됩니다. 즉, 사용자가 기기를 이동하는 방법에 따라 디스플레이가 회전합니다. 이렇게 하면 기기가 정상적으로 실행하는 것과 관계없이 4번의 회전이 가능합니다 (예: 일부 기기는 일반적으로 180도 회전을 사용하지 않음).
com.android.permission.SET_ALARM
- 애플리케이션이 인텐트를 브로드캐스트하여 사용자를 위한 알람을 설정할 수 있도록 합니다.SET_ALARM
인텐트 작업을 처리하는 활동에는 이 권한이 필요합니다.android.permission.USE_SIP
- 애플리케이션이SIP API
를 사용하여 인터넷 전화를 걸거나 받을 수 있습니다.android.permission.NFC
- 애플리케이션이NFC API
를 사용하여 NFC 태그를 읽을 수 있도록 허용합니다.android.hardware.audio.low_latency
- 애플리케이션이 기기에서 지연 시간이 짧은 오디오 파이프라인을 사용하며 사운드 입력 또는 출력의 지연이나 지연에 민감합니다.android.hardware.camera.front
- 애플리케이션이 기기에서 전면 카메라를 사용합니다.android.hardware.nfc
- 애플리케이션이 기기에서 NFC 무선 기능을 사용합니다.android.hardware.sensor.barometer
- 애플리케이션이 기기의 기압계를 사용합니다.android.hardware.sensor.gyroscope
- 애플리케이션이 기기의 자이로스코프 센서를 사용합니다.android.software.sip
: 애플리케이션이 기기에서 SIP API를 사용합니다.android.software.sip.voip
- 애플리케이션이 기기에서 SIP 기반 VoIP 서비스를 사용합니다.android.hardware.touchscreen.multitouch.jazzhand
- 애플리케이션은 다섯 개 이상의 지점을 완전히 독립적으로 추적하기 위해 기기 화면에서 고급 멀티포인트 멀티터치 기능을 사용합니다.
초대형 화면
이제 플랫폼이 태블릿 기기에서 볼 수 있는 것과 같은 초대형 화면 크기를 지원합니다. 개발자는 매니페스트 파일에 <supports
screens ... android:xlargeScreens="true">
요소를 추가하여 애플리케이션이 초대형 화면 크기를 지원하도록 설계되었음을 표시할 수 있습니다. 애플리케이션은 새로운 리소스 한정자인 xlarge
를 사용하여 초대형 화면과 관련된 리소스에 태그를 지정할 수 있습니다. 초대형 및 기타 화면 크기를 지원하는 방법에 관한 자세한 내용은 여러 화면 지원을 참고하세요.
그래픽
콘텐츠 제공자
위치
저장용량
패키지 관리자
전화 통신
활동 수명 주기, 창에 대한 네이티브 액세스
Android 2.3은 네이티브 코드를 사용하는 애플리케이션에 광범위한 API 집합을 노출합니다. 이러한 응용 프로그램에서 관심을 가질만한 프레임워크 클래스는 다음과 같습니다.
네이티브 코드 작업 또는 NDK 다운로드에 관한 자세한 내용은 Android NDK 페이지를 참고하세요.
Dalvik 런타임
새로운 매니페스트 요소 및 속성
새 권한
새 특성 상수
플랫폼에는 개발자가 애플리케이션 매니페스트에서 애플리케이션에 필요하다고 선언할 수 있는 몇 가지 새로운 하드웨어 기능이 추가됩니다. 이를 통해 개발자는 애플리케이션이 Google Play에 게시될 때 필터링되는 방식을 제어할 수 있습니다.
기능을 선언하고 필터링에 사용하는 방법에 관한 자세한 내용은 <uses-feature>
문서를 참고하세요.
API 차이점 보고서
Android 2.3 (API 수준 9)의 모든 API 변경사항을 자세히 보려면 API 차이점 보고서를 참고하세요.
API 수준
Android 2.3 플랫폼은 업데이트된 버전의 프레임워크 API를 제공합니다. Android 2.3 API에는 시스템 자체에 저장되는 정수 식별자 9가 할당됩니다. 'API 수준'이라고 하는 이 식별자를 사용하면 시스템에서 애플리케이션을 설치하기 전에 애플리케이션이 시스템과 호환되는지 올바르게 판단할 수 있습니다.
Android 2.3에 도입된 API를 애플리케이션에서 사용하려면 Android 2.3 SDK 플랫폼에서 제공되는 Android 라이브러리에 대해 애플리케이션을 컴파일해야 합니다. 필요에 따라 애플리케이션의 매니페스트에 있는 <uses-sdk>
요소에 android:minSdkVersion="9"
속성을 추가해야 할 수도 있습니다. 애플리케이션이 Android 2.3 이상에서만 실행되도록 설계된 경우 이 속성을 선언하면 애플리케이션이 이전 버전의 플랫폼에 설치되지 않습니다.
자세한 내용은 API 수준이란 무엇인가요?를 참고하세요.