Android 2.0, 버전 1

API 수준: 5

Android 2.0은 주요 플랫폼 릴리스입니다. 2009년 11월부터 Android 기반 핸드셋에 배포할 수 있게 되었습니다. 이번 출시에는 사용자와 개발자를 위한 새로운 기능과 변경사항이 포함되어 있습니다. Android 프레임워크 API에서 실행됩니다.

개발자에게는 Android 2.0 플랫폼을 다운로드할 수 있는 구성요소입니다. 다운로드 가능한 플랫폼에는 완벽하게 호환되는 Android 라이브러리, 시스템 이미지, 에뮬레이터 샘플 애플리케이션 등이 있습니다. 다운로드 가능한 플랫폼은 규정을 준수하며 외부 라이브러리가 포함되지 않습니다.

Android용 Android 개발 또는 테스트를 시작하기 위해 Android SDK 및 AVD Manager 도구를 사용하여 플랫폼을 SDK에 다운로드합니다

플랫폼 주요 사항

새로운 사용자 기능 및 플랫폼의 주요 목록은 Android 2.0 플랫폼 주요 사항 문서를 참조하세요.

기본 제공 애플리케이션

다운로드 가능한 플랫폼에 포함된 시스템 이미지는 사용할 수 있습니다.

  • 알람 시계
  • 브라우저
  • 계산기
  • 캠코더
  • 카메라
  • 연락처
  • 맞춤 언어 (개발자 앱)
  • 개발자 도구 (개발자 앱)
  • 다이얼러
  • 이메일
  • 갤러리
  • 동작 빌더
  • 일본어 텍스트 입력용 IME
  • 메시지
  • 음악
  • 설정
  • 예비 부품 (개발자 앱)

Locales

다운로드 가능한 플랫폼에 포함된 시스템 이미지는 기본 제공 언어를 사용합니다. 경우에 따라 있습니다. 다른 경우에는 언어의 기본 버전이 사용됩니다. 이 Android 2.0 시스템에서 사용 가능한 언어 아래 나열된 이미지 (language_country/region 로케일 포함) 설명어)

  • 중국어, 중화인민공화국 (zh_CN)
  • 중국어, 타이완 (zh_TW)
  • 체코어 (cs_CZ)
  • 네덜란드어, 네덜란드 (nl_NL)
  • 네덜란드어, 벨기에 (nl_BE)
  • 영어, 미국 (en_US)
  • 영어, 영국 (en_GB)
  • 영어, 캐나다 (en_CA)
  • 영어, 오스트레일리아 (en_AU)
  • 영어, 뉴질랜드 (en_NZ)
  • 영어, 싱가포르(en_SG)
  • 프랑스어, 프랑스 (fr_FR)
  • 프랑스어, 벨기에 (fr_BE)
  • 프랑스어, 캐나다 (fr_CA)
  • 프랑스어, 스위스 (fr_CH)
  • 독일어, 독일 (de_DE)
  • 독일어, 오스트리아 (de_AT)
  • 독일어, 스위스 (de_CH)
  • 독일어, 리히텐슈타인 (de_LI)
  • 이탈리아어, 이탈리아 (it_IT)
  • 이탈리아어, 스위스 (it_CH)
  • 일본어 (ja_JP)
  • 한국어 (ko_KR)
  • 폴란드어 (pl_PL)
  • 러시아어 (ru_RU)
  • 스페인어 (es_ES)
  • 현지화된 UI 문자열이 액세스 가능한 언어와 일치함 설정을 통해

    에뮬레이터 스킨

    다운로드 가능한 플랫폼에는 여러 가지 화면 크기와 해상도로 애플리케이션을 모델링하는 데 사용할 수 있는 에뮬레이터 스킨 세트가 포함되어 있습니다. 에뮬레이터 스킨은 다음과 같습니다.

    • QVGA (240x320, 저밀도, 소형 화면)
    • WQVGA (240x400, 저밀도, 일반 화면)
    • FWQVGA (240x432, 저밀도, 일반 화면)
    • HVGA (320x480, 중밀도, 일반 화면)
    • WVGA800 (480x800, 고밀도, 일반 화면)
    • WVGA854 (480x854 고밀도, 일반 화면)

    모든 Android 지원 기기에서 제대로 표시되고 작동하는 애플리케이션을 개발하는 방법에 관한 자세한 내용은 여러 화면 지원을 참고하세요.

    개발자 기능

    아래 섹션에서는 다운로드 가능한 Android 2.0 플랫폼 구성 요소가 제공하는 새로운 개발자 기능에 관한 정보를 제공합니다.

    개미 지원

    • 디버그 모드 및 릴리스 모드 애플리케이션 서명 출시 모드 서명에는 zipalign 최적화를 위한 통합 지원이 포함됩니다. 자세한 내용은 애플리케이션 서명을 참조하세요.
    • Emma 계측 프로젝트를 지원하는 새로운 Ant 빌드 시스템이 추가되었습니다 (코드 적용 범위).

    프레임워크 API

    아래 섹션에서는 Android 2.0 플랫폼에서 제공하는 애플리케이션 프레임워크 API에 대한 정보를 제공합니다.

    API 수준

    Android 2.0 플랫폼은 업데이트된 버전의 프레임워크를 제공합니다. API에 액세스할 수 있습니다. 이전 버전과 마찬가지로 Android 2.0 API는 정수 식별자 5가 할당됩니다. 시스템 자체에 저장됩니다. 'API 수준'이라고 하는 이 식별자를 사용하면 애플리케이션이 호환되는지 여부를 정확하게 판단하기 위해 할 수 있습니다.

    Android 2.0에 도입된 API를 애플리케이션에서 사용하려면 다음을 수행해야 합니다. <uses-sdk>의 속성에서 적절한 값 '5'를 설정합니다. 요소를 지정할 수 있습니다.

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

    API 변경사항 요약

    블루투스

    • 블루투스 켜기/끄기
    • 기기 및 서비스 검색
    • RFCOMM을 사용하여 원격 기기에 연결하고 데이터를 주고받습니다.
    • RFCOMM 서비스를 광고하고 수신 RFCOMM 연결을 수신 대기합니다

    동기화 어댑터

    • 동기화 어댑터를 사용하여 백엔드에 연결할 수 있는 새로운 API

    계정 관리자

    • 인증 토큰/비밀번호를 안전하게 저장하고 액세스하는 중앙 집중식 계정 관리자 API

    연락처

    • 여러 계정의 데이터를 허용하는 새로운 연락처 API
    • 새로운 빠른 연락처 프레임워크 API를 사용하면 개발자가 앱에서 연락처 배지를 만들 수 있습니다. 배지를 클릭하면 클릭 한 번으로 사용자에게 연락할 수 있는 방법이 나열된 창이 열립니다.

    WebView

    • 지원 중단된 클래스: UrlInterceptHandler, Plugin, PluginData, PluginList, UrlInterceptRegistry.

    카메라

    • 색상 효과, 장면 모드, 플래시 모드, 초점 모드, 화이트 밸런스, 회전 및 기타 설정을 위한 새로운 매개변수.
    • 확대/축소 수준이 변경되었을 때 작업을 실행하기 위한 새 ZoomCallback 인터페이스.

    미디어

    • 이제 MediaScanner는 MediaStore에 삽입될 때 모든 이미지의 썸네일을 생성합니다.
    • 요청 시 이미지 및 동영상 썸네일을 검색하기 위한 새 썸네일 API

    기타 프레임워크

    • 현재 시스템 배경화면 위에 활동을 쉽게 표시하거나 이전 활동이 백그라운드에서 계속 표시되도록 하는 android.R.style의 새로운 시스템 테마
    • 새로운 WallpaperManager API는 이전에 컨텍스트에 있던 배경화면 API를 대체하고 확장하여 애플리케이션이 시스템 배경화면을 요청하고 설정할 수 있도록 합니다.
    • 새로운 Service API를 사용하면 애플리케이션이 서비스 수명 주기를 올바르게 처리할 수 있습니다. 특히, 서비스가 실행되는 동안 서비스가 종료될 수 있는 메모리 부족 상황에서도 더욱 그렇습니다.
      • Service.setForeground()는 지원 중단되었으며 이제 실제로 작업을 수행하지 않습니다. 이는 진행 중인 알림을 포그라운드 상태와 연결하는 데 도움이 되는(그리고 이를 필요로 하는) 새로운 API인 startForeground()로 대체되었습니다.
    • 이제 MotionEvent가 이를 지원하는 기기의 동시 터치 정보를 보고할 수 있습니다. 최대 3개의 포인터를 동시에 추적할 수 있습니다.
    • KeyEvent에는 action-on-up 및 길게 누르기 동작을 구현하는 데 도움이 되는 새로운 키 전달 API와 가상 키의 경우 키 누름을 취소하는 새로운 메커니즘이 있습니다.
    • WindowManager.LayoutParams에는 창이 표시될 때 화면의 절전 모드를 해제하고 화면이 잠겨 있더라도 창을 표시하도록 하는 새로운 상수가 있습니다. 이를 통해 애플리케이션은 기기를 깨워야 하는 알람 시계와 같은 것을 더 깔끔하게 구현할 수 있습니다.
    • 새로운 Intent API를 사용하면 기기의 도킹 상태를 브로드캐스트하고 기기가 데스크톱 또는 차량용 도크에 배치될 때 애플리케이션이 특수 활동을 시작할 수 있습니다.

    키를 누를 때 실행되는 키 이벤트

    Android 2.0은 HOME, 실제 키가 아닌 MENU, 뒤로, 검색 최적의 사용자 지원 Android 플랫폼은 이제 Android 플랫폼에서 이러한 버튼을 키-다운이 아닌 키-다운/키-업 쌍의 경우 key-up을 사용합니다. 이렇게 하면 사용자가 버튼 영역을 누른 다음 이벤트를 생성하지 않아도 됩니다.

    이러한 동작의 변화는 다음과 같은 경우에만 애플리케이션에 영향을 미칩니다. 버튼 이벤트를 가로채고 키 다운 시가 아닌 키 다운 시 작업 수행 키-업. 특히 애플리케이션이 BACK 키를 가로채는 경우 애플리케이션이 주요 이벤트를 제대로 처리하는지 확인합니다.

    일반적으로 애플리케이션에서 BACK 키를 가로채는 것은 권장되지 않습니다. 그러나 애플리케이션이 실행 중이고 key-up 대신 key-down을 사용하는 경우에는 코드를 수정해야 합니다.

    애플리케이션이 Android 2.0 (API 레벨 5)에서 도입된 API를 사용하는 경우 다음과 같이 새로운 API를 활용하여 키-이벤트 쌍을 관리할 수 있습니다.

    • 활동이나 대화상자에서 '뒤로' 키를 가로채는 경우에는 새 onBackPressed() 메서드를 구현합니다.
    • 뷰에서 뒤로 키를 가로채는 경우 키를 추적해야 함 키를 누를 때 이벤트 발생 (새 startTracking()를 통해) 메서드)를 호출한 다음 key up에서 작업을 호출합니다. 사용할 수 있는 패턴은 다음과 같습니다.
    • Kotlin

      override fun onKeyDown(keyCode: Int, event: KeyEvent): Boolean {
          return when (keyCode) {
              KeyEvent.KEYCODE_BACK -> {
                  if (event.repeatCount == 0) {
                      event.startTracking()
                      true
                  } else {
                      false
                  }
              }
              ...
              else -> super.onKeyDown(keyCode, event)
          }
      }
      
      override fun onKeyUp(keyCode: Int, event: KeyEvent): Boolean {
          return when (keyCode) {
              KeyEvent.KEYCODE_BACK -> {
                  if (event.isTracking && !event.isCanceled) {
                      // *** DO ACTION HERE ***
                      true
                  } else {
                      false
                  }
              }
              ...
              else -> super.onKeyUp(keyCode, event)
          }
      }
      

      자바

      public boolean onKeyDown(int keyCode, KeyEvent event) {
              if (keyCode == KeyEvent.KEYCODE_BACK
                      && event.getRepeatCount() == 0) {
                  event.startTracking();
                  return true;
              }
              return super.onKeyDown(keyCode, event);
          }
      
          public boolean onKeyUp(int keyCode, KeyEvent event) {
              if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
                      && !event.isCanceled()) {
                  // *** DO ACTION HERE ***
                  return true;
              }
              return super.onKeyUp(keyCode, event);
          }
      

    BACK을 처리하도록 기존 애플리케이션을 업데이트하려는 경우 키가 Android 2.0 및 이전 플랫폼 버전에서 모두 제대로 작동하는 경우 위에 표시된 것과 유사한 접근 방식을 사용할 수 있습니다. 여러분의 코드는 키를 누를 때 타겟팅 버튼 이벤트를 처리하고 키 이벤트를 추적하도록 플래그를 설정합니다. 키를 누를 때 이벤트를 포착하여 추적이 플래그가 설정된 경우 또한 포커스의 변화를 관찰하고 추적을 지우는 것이 좋습니다. 포커스를 획득/잃을 때 플래그를 지정합니다.

    API 차이점 보고서

    Android 2.0 (API 레벨 5)의 API 변경사항을 자세히 살펴보려면 API 차이점 보고서를 참조하세요.