Android 2.2 API

API 수준: 8

Android 2.2는 사용자 기능, 개발자 기능, API 변경사항, 버그 수정을 포함하는 마이너 플랫폼 출시입니다. 개발자 기능 및 API 변경사항에 관한 자세한 내용은 프레임워크 API 섹션을 참고하세요.

개발자는 Android 2.2 플랫폼을 Android SDK의 다운로드 가능한 구성요소로 사용할 수 있습니다. 다운로드 가능한 플랫폼에는 Android 라이브러리, 시스템 이미지, 에뮬레이터 스킨 세트 등이 포함됩니다. Android 2.2 개발 또는 테스트를 시작하려면 Android SDK Manager를 사용하여 플랫폼을 SDK로 다운로드하세요.

플랫폼 하이라이트

새로운 사용자 기능 및 플랫폼 주요 사항 목록을 보려면 Android 2.2 플랫폼 하이라이트 문서를 참고하세요.

API 수준

Android 2.2 플랫폼은 업데이트된 버전의 프레임워크 API를 제공합니다. Android 2.2 API에는 시스템 자체에 저장된 정수 식별자 8이 할당됩니다. 'API 수준'이라고 하는 이 식별자를 사용하면 시스템에서 애플리케이션을 설치하기 전에 애플리케이션이 시스템과 호환되는지 올바르게 판단할 수 있습니다.

Android 2.2에 도입된 API를 애플리케이션에서 사용하려면 애플리케이션 매니페스트에 있는 <uses-sdk> 요소의 android:minSdkVersion 속성에 적절한 값인 '8'을 설정해야 합니다.

API 수준을 사용하는 방법에 관한 자세한 내용은 API 수준 문서를 참고하세요.

프레임워크 API 변경사항

아래 섹션에서는 Android 2.2 플랫폼에서 제공하는 애플리케이션 프레임워크 API의 변경사항에 관한 정보를 제공합니다.

외부 저장소 미디어에 앱 설치

이제 Android 플랫폼에서 애플리케이션이 기기의 내부 메모리에 설치하는 대신 기기의 외부 저장소 미디어 (SD 카드 등)에 설치를 요청할 수 있습니다.

애플리케이션 개발자는 매니페스트 파일 android:installLocation의 새로운 <manifest> 속성을 사용하여 애플리케이션의 기본 설치 위치를 표현할 수 있습니다. 이 속성은 "internalOnly", "preferExternal", "auto"의 세 가지 값을 지원합니다. 설치 시 시스템은 android:installLocation 값을 확인하고 가능한 경우 선호하는 위치에 따라 애플리케이션 .apk를 설치합니다. 애플리케이션이 외부 설치를 요청한 경우 시스템은 이를 외부 미디어의 암호화된 비공개 파티션에 설치합니다. 애플리케이션 .apk가 외부에 설치되면 사용자는 시스템에서 사용자 설정의 애플리케이션 관리를 통해 .apk의 저장소 위치를 변경하고 필요한 경우 기기의 내부 메모리로 이동할 수 있게 하며 그 반대의 경우도 마찬가지입니다.

기본적으로 시스템은 기기의 내부 메모리에 모든 애플리케이션을 설치합니다. 단, 외부 설치를 명시적으로 요청하는 애플리케이션은 예외입니다. 즉, 시스템은 android:installLocation 속성에 액세스할 수 없으므로 시스템이 항상 기존 애플리케이션을 내부 메모리에 설치합니다. 하지만 필요한 경우 레거시 애플리케이션을 이전 버전의 플랫폼 내부 및 외부 Android 2.2 이상 플랫폼에 설치되도록 구성하고 컴파일할 수 있습니다.

기기의 외부 미디어에 설치를 요청하는 것은 일부 애플리케이션에 적합하지 않습니다. 특히 외부 미디어를 제거할 수 있고 마운트 해제/재마운트를 하면 사용자 환경과 시스템 설정이 중단될 수 있기 때문입니다.

외부 설치를 요청해야 하는 애플리케이션과 요청하지 않아야 하는 애플리케이션 유형에 관한 설명을 비롯하여 애플리케이션의 기본 설치 위치 설정에 관한 자세한 내용은 앱 설치 위치 문서를 참고하세요.

데이터 백업

이제 플랫폼은 애플리케이션이 사용자 데이터를 백업 및 복원하는 데 사용할 수 있는 일반화된 백업 서비스를 제공하여 사용자가 기기를 전환하거나 애플리케이션을 재설치할 때 데이터를 유지할 수 있도록 합니다. 백업 관리자는 클라우드의 백업 저장소 영역과 애플리케이션 데이터를 주고받는 작업을 처리합니다. 백업 관리자는 임의 데이터에서 파일에 이르기까지 모든 유형의 데이터를 저장할 수 있으며 원자적으로 백업 및 복원 작업을 관리합니다. 자세한 내용은 데이터 백업을 참고하세요.

그래픽

미디어

  • 오디오 포커스, 전송 제어, 오디오 포커스의 일시적인 손실, 볼륨 낮추기를 관리하는 android.media.AudioManager의 새로운 API를 도입했습니다.
  • 오디오를 SCO로 라우팅하기 위한 새로운 브로드캐스트 인텐트: 새로운 상태를 나타내는 추가 항목이 포함된 ACTION_SCO_AUDIO_STATE_CHANGED
  • 사운드 로드 완료를 감지하는 SoundPool의 새로운 API
  • 자동 일시중지 및 다시 시작을 위한 SoundPool의 새로운 API
  • 채널 수, 인코딩 및 샘플링 레이트, 샘플링 레이트의 오디오 설정을 지정하는 MediaRecorder의 새 API
  • 미디어 데이터베이스에 파일을 추가하여 자동으로 스캔되도록 하는 새로운 API MediaScannerConnection.scanFileMediaScannerConnection.OnScanCompletedListener을 참고하세요.

음성 인식 및 타사 인식 엔진

  • 이 플랫폼은 애플리케이션이 사용 가능한 음성 인식기와 더 풍부한 상호작용을 할 수 있도록 하는 새로운 음성 인식 API를 제공합니다. 예를 들어, API만으로도 음성 인식을 IME에 긴밀하게 통합할 수 있습니다.
  • 또한 이 플랫폼은 서드 파티 개발자가 플러그인 인식 엔진을 만들 수 있는 RecognitionService 기본 클래스도 제공합니다.
  • 콜백을 수신하는 새로운 RecognitionListener 인터페이스
  • 새로운 RecognizerIntent 추가 항목을 통해 요청자 앱이 세부정보를 기본 언어, 밀리초 단위의 최소 길이 등으로 지정할 수 있습니다.

카메라 및 캠코더

  • 카메라 미리보기 API를 변경하여 미리보기 파이프라인의 효율성을 개선했습니다.
  • 카메라의 새로운 디스플레이 방향이 추가되었습니다 (이제 세로 방향으로 작동할 수 있음).
  • 확대/축소 수준을 관리하는 android.hardware.Camera의 새로운 API
  • 초점 거리, 노출, 확대/축소 수준, 시야각 등과 같은 기기 카메라 설정을 쿼리하고 설정하기 위한 새로운 API android.hardware.Camera.Parameters입니다.
  • 동영상 및 이미지 썸네일을 위한 새로운 thumbnail 유틸리티
  • 새로운 CamcorderProfileCamcorderProfile 클래스를 사용하면 앱이 기기 하드웨어 카메라 기능을 확인할 수 있습니다.
  • android.media.ExifInterface에서 GPS와 초점 거리 검색을 위한 새로운 지원 기능을 추가했습니다.

기기 정책 관리자

개발자는 새로운 기기 정책 관리 API를 사용하여 최소 비밀번호 안전성, 데이터 완전 삭제 등과 같은 기기의 보안 기능을 제어할 수 있는 '기기 관리자' 애플리케이션을 작성할 수 있습니다. 사용자는 기기에 사용 설정된 관리자를 선택할 수 있습니다. 자세한 내용은 android.app.admin 클래스 또는 DeviceAdminSample.java의 애플리케이션 코드 예를 참조하세요.

UI 프레임워크

  • 새로운 UI 모드인 '자동차 모드'와 '야간 모드'와 UiModeManager을 사용하면 애플리케이션이 특정 사용자 모드에 맞게 애플리케이션 UI를 조정할 수 있습니다.
  • 새로운 ScaleGestureDetector을 사용하면 뷰에서 제공된 MotionEvents를 사용하여 둘 이상의 포인터 (멀티터치)가 포함된 변환 동작을 감지하고 처리할 수 있습니다.
  • MotionEvent 객체에서 멀티터치 이벤트가 보고되는 방식이 개선되었습니다.
  • 레이아웃 속성 fill_parent의 이름이 match_parent로 변경되었습니다. 이는 XML 및 Java 코드 모두에 영향을 미칩니다 (ViewGroup.LayoutParams 참고). 플랫폼은 기존 애플리케이션에서의 fill_parent 사용을 계속 준수합니다.
  • 새로운 레이아웃 속성 tabStripEnabled, tabStripRight, tabStripLeft를 통해 개발자는 TabWidgets의 하단 스트립을 맞춤설정할 수 있습니다.
  • Activity에서 관리되는 대화상자 지원이 개선되었습니다.

계정 및 동기화

  • 새로운 메서드 AddPeriodicSync()를 사용하면 지정된 빈도로 특정 계정, 권한, 추가 항목과의 주기적 동기화를 예약할 수 있습니다.

새로운 매니페스트 요소 및 속성

  • 애플리케이션의 기본 설치 위치를 지정하는 방법은 다음과 같습니다 (위의 외부 저장소 미디어에서 앱 설치 참고).
    • <manifest> 요소의 새 android:installLocation 속성 애플리케이션이 정의한 기본 설치 위치를 지정합니다.
  • 사용자 데이터 백업 관리 방법 (자세한 내용은 위의 백업 관리자 참고):
    • <application> 요소의 새 android:backupAgent 속성 백업/복원 작업(있는 경우)을 처리하기 위해 애플리케이션에서 제공하는 BackupAgent 서브클래스의 구성요소 이름을 지정합니다.
    • <application> 요소의 새 android:restoreAnyVersion 속성 애플리케이션이 백업된 데이터 세트의 복원을 시도할 준비가 되었는지 여부를 나타내는 불리언 값입니다. 백업이 현재 기기에 설치된 것보다 최신 버전의 애플리케이션에서 가져온 것이라도 마찬가지입니다.
  • 플랫폼의 JIT 컴파일러 관리:
    • <application> 요소의 새 android:vmSafeMode 속성 애플리케이션을 실행할 때 JIT 컴파일러 최적화를 사용 중지할지 여부를 지정하는 불리언 값입니다.

권한

  • android.permission.BIND_DEVICE_ADMIN - 시스템만 기기와 상호작용할 수 있도록 모든 기기 관리 broadcast receiver에 이 권한이 필요합니다.
  • android.permission.KILL_BACKGROUND_PROCESSES - 애플리케이션이 killBackgroundProcesses(String)를 호출하도록 허용합니다.
  • android.permission.BIND_WALLPAPER: 시스템만 상호작용할 수 있도록 모든 WallpaperService에 이 권한이 필요합니다.
  • android.permission.SET_TIME - 애플리케이션이 시스템 시간을 설정할 수 있도록 합니다.

API 차이점 보고서

Android 2.2 (API 수준 8)의 모든 API 변경사항에 관한 자세한 내용은 API 차이점 보고서를 참고하세요.