Android 3.0 API

API 수준: 11

개발자를 위한 Android 3.0 플랫폼 (HONEYCOMB)은(는) 다운로드 가능한 이 구성요소를 사용할 수 있습니다. 다운로드 가능한 플랫폼에는 Android 라이브러리 및 시스템이 포함되어 있습니다. 이미지뿐 아니라 에뮬레이터 스킨 세트 등이 있습니다. 다운로드 가능한 플랫폼에는 제공합니다

개발자에게는 Android 3.0 플랫폼을 다운로드할 수 있는 구성요소입니다. 다운로드 가능한 플랫폼에는 Android 라이브러리와 시스템 이미지뿐만 아니라 에뮬레이터 스킨과 자세히 알아보세요. Android 3.0에 대한 개발이나 테스트를 시작하려면 Android SDK Manager를 사용하여 플랫폼을 SDK에 다운로드합니다.

API 개요

아래 섹션에서는 Android 3.0 개발자를 위한 새로운 기능의 기술 개요를 제공합니다. 이전 버전 이후 프레임워크 API의 새로운 기능과 변경사항을 포함합니다.

프래그먼트

프래그먼트는 프래그먼트의 고유한 요소를 구분할 수 있게 해주는 새로운 프레임워크 구성 요소입니다. 활동을 자체 UI 및 수명 주기를 정의하는 독립 실행형 모듈로 확장합니다. 생성 시 프래그먼트를 사용하려면 Fragment 클래스를 확장하고 여러 수명 주기를 구현해야 합니다. 콜백 메서드를 지원합니다.Activity 그런 다음 여러 개의 여러 창 UI를 만들어 각 프래그먼트가 표시되는 창은 자체 수명 주기 및 사용자 입력을 관리합니다.

UI를 제공하지 않고 프래그먼트를 사용하고 대신 프래그먼트를 작업자로 사용할 수도 있습니다. 예를 들어 확인할 수 있습니다

또한 다음 사항에 유의하세요.

  • 프래그먼트는 독립적이며 여러 활동에서 재사용할 수 있습니다.
  • 활동 내에서 프래그먼트를 추가, 삭제, 교체하고 애니메이션으로 표시할 수 있습니다.
  • 액티비티에서 관리하는 백 스택에 프래그먼트를 추가하여 프래그먼트가 변경될 때 사용자가 여러 객체를 통해 뒤로 주
  • 대체 레이아웃을 사용한다면 레이아웃에 따라 프래그먼트를 혼합하여 화면 크기 및 방향에 따라
  • 프래그먼트는 컨테이너 활동에 직접 액세스할 수 있으며 프래그먼트에 항목을 기여할 수 있습니다. 활동의 작업 모음 (다음에 설명)

활동에서 프래그먼트를 관리하려면 프래그먼트와 상호작용하기 위한 여러 API를 제공하는 FragmentManager를 사용해야 합니다. 액티비티에서 프래그먼트를 찾고 백 스택에서 프래그먼트를 팝하여 확인할 수 있습니다

프래그먼트 추가 또는 삭제와 같은 트랜잭션을 실행하려면 FragmentTransaction를 만들어야 합니다. 그런 다음 add() remove() 또는 replace()와 같은 메서드를 호출할 수 있습니다. 모든 광고 단위를 트랜잭션에 관해 실행하려는 변경사항에 관한 자세한 내용은 commit()를 호출해야 합니다. 그러면 시스템은 프래그먼트 트랜잭션을 합니다.

프래그먼트 사용에 관한 자세한 내용은 프래그먼트 문서를 참조하세요. 여러 개 API 데모 애플리케이션을 지원합니다.

작업 모음

작업 모음은 활동 창 상단에 있는 기존의 제목 표시줄을 대체합니다. 왼쪽 모서리에 애플리케이션 로고가 있고 옵션 메뉴로 이동합니다. 또한 작업 모음으로 다음 작업을 할 수 있습니다.

  • 메뉴 항목을 작업 모음에 '작업 항목'으로 직접 추가합니다.

    메뉴 항목의 XML 선언에 값이 "ifRoom"android:showAsAction 속성을 포함합니다. 공간이 충분하면 메뉴에서 항목이 작업 모음에 바로 표시됩니다. 그렇지 않으면 항목이 작업 모음 오른쪽의 메뉴 아이콘으로 표시됩니다.

  • 작업 항목을 위젯 (예: 검색창)으로 바꾸기 '작업 뷰'를 선택합니다.

    메뉴 항목의 XML 선언에서 android:actionViewLayout 속성을 추가합니다. (레이아웃 리소스 또는 클래스 이름이 있는 android:actionViewClass 속성) 위젯에 추가합니다. 항목이 표시되도록 android:showAsAction 속성도 선언해야 합니다. 를 클릭합니다.) 작업 표시줄에 공간이 부족하고 항목이 더보기 메뉴를 사용하는 경우 일반 메뉴 항목처럼 동작하며 위젯을 표시하지 않습니다.

  • 애플리케이션 로고에 작업을 추가하고 맞춤 로고로 대체

    애플리케이션 로고에는 자동으로 android.R.id.home ID가 할당됩니다. 터치하면 시스템이 활동의 onOptionsItemSelected() 콜백에 전달합니다. 콜백에서 이 ID에 응답하기만 하면 됩니다. 메서드를 사용하여 애플리케이션의 '홈'으로 이동 등의 작업을 수행할 수 있습니다. 있습니다.

    아이콘을 로고로 바꾸려면 매니페스트 파일에서 애플리케이션 로고를 android:logo 드림 속성을 설정한 다음 활동에서 setDisplayUseLogoEnabled(true)를 호출합니다.

  • 프래그먼트의 백 스택을 통해 뒤로 이동하는 탐색경로 추가
  • 프래그먼트 간에 이동하기 위한 탭 또는 드롭다운 목록 추가
  • 테마와 배경으로 액션 바 맞춤설정

액션 바는 새로운 홀로그램 테마를 사용하는 모든 애플리케이션에 android:minSdkVersion 또는 android:targetSdkVersion"11"로 설정하는 경우에도 표준 화질을 사용할 수 있습니다.

작업 모음에 관한 자세한 내용은 작업 모음 문서를 참고하세요. 여러 개 API 데모 애플리케이션을 지원합니다.

시스템 클립보드

이제 애플리케이션에서 단순한 텍스트 이외의 데이터를 복사하여 시스템 전체에서 데이터를 붙여넣을 수 있습니다. 클립보드로 이동합니다. 잘린 데이터는 일반 텍스트, URI 또는 인텐트일 수 있습니다.

콘텐츠 제공자를 통해 사용자가 복사하도록 하려는 데이터에 대한 시스템 액세스 권한을 제공함으로써 사용자는 애플리케이션에서 이미지나 데이터 구조와 같은 복잡한 콘텐츠를 복사하여 해당 유형의 콘텐츠를 지원하는 다른 애플리케이션에 붙여넣습니다.

클립보드 사용을 시작하려면 전역 ClipboardManager 객체를 가져옵니다. 이를 위해 getSystemService(CLIPBOARD_SERVICE)를 호출합니다.

항목을 클립보드에 복사하려면 하나 이상의 ClipData.Item가 포함된 새 ClipData 객체를 만들어야 합니다. 각 객체는 단일 항목을 설명합니다. ClipData 객체 만들기 하나의 ClipData.Item만 포함하는 경우 도우미 메서드 중 하나를 사용할 수 있습니다. newPlainText(), newUri()newIntent() 등은 ClipData (제공하는 ClipData.Item).

클립보드에 ClipData를 추가하려면 ClipboardManager 인스턴스의 setPrimaryClip()에 전달합니다.

그러면 ClipboardManager에서 getPrimaryClip()를 호출하여 클립보드에서 파일을 읽을 수 있습니다 (붙여넣기 위해). 수신한 ClipData를 처리하면 복잡하며 클립보드의 데이터 유형을 실제로 처리할 수 있는지 확인해야 합니다. 붙여넣지 마세요.

클립보드에는 잘린 데이터 (ClipData) 하나만 있습니다. 객체)를 하나씩 포함하지만 하나의 ClipData에 여러 개의 ClipData.Item가 포함될 수 있습니다.

자세한 내용은 및 붙여넣기 문서를 참조하세요. 또한 API 데모에서 복사하여 붙여넣기에 대한 간단한 구현도 확인할 수 있습니다. 샘플 및 메모장 샘플의 더 완전한 구현을 참조하세요.

드래그 앤 드롭

새로운 API는 애플리케이션의 사용자 인터페이스에서 드래그 앤 드롭 작업을 간소화합니다. 드래그 작업은 ClipData에서 실행되는 일종의 데이터 전송입니다. 한 곳에서 다른 곳으로 이동하는 것입니다. 드래그 작업의 시작과 종료 지점은 View이므로 드래그 앤 드롭 작업을 직접 처리하는 API는 다음과 같습니다. (View 클래스에서)

드래그 앤 드롭 작업에는 각각 여러 드래그 작업으로 정의되는 수명 주기가 있습니다. DragEvent 객체(예: ACTION_DRAG_STARTED, ACTION_DRAG_ENTERED, ACTION_DROP입니다. 드래그에 참여하려는 각 뷰 작업을 수신 대기할 수 있습니다

활동에서 콘텐츠 드래그를 시작하려면 startDrag()를 호출합니다. View에 대해 ClipData 객체를 제공하여 드래그할 데이터, '그림자'를 용이하게 하는 View.DragShadowBuilder 사용자가 드래그하는 동안 손가락 아래에 표시되는 화면 및 Object 드래그 객체에 관한 정보를 객체를 수신할 수 있는 뷰와 함께 전달

View('드롭' 수신)에서 드래그 객체를 수락하려면 뷰를 등록합니다. setOnDragListener()를 호출하여 OnDragListener로 바꿉니다. 뷰에서 드래그 이벤트가 발생하면 시스템은 DragEvent를 수신하는 OnDragListeneronDrag()를 호출합니다. 발생한 드래그 작업의 유형을 설명합니다 (예: ACTION_DRAG_STARTED, ACTION_DRAG_ENTEREDACTION_DROP)을 입력합니다. 드래그 중에 시스템은 드래그 아래의 뷰에 관해 onDrag()를 반복적으로 호출하여 드래그 이벤트 스트림입니다. 수신 뷰는 DragEvent에서 getAction()를 호출하여 onDragEvent()에 전달된 이벤트 유형을 문의할 수 있습니다.

참고: 드래그 이벤트에 ClipData 객체가 포함될 수 있지만 이는 시스템 클립보드와 관련이 없습니다. 드래그 앤 드롭 드래그한 데이터를 시스템 클립보드에 배치해서는 안 됩니다.

자세한 내용은 드래그 및 삭제 문서 또한 API 데모 애플리케이션 및 Honeycomb 갤러리 애플리케이션입니다.

앱 위젯

Android 3.0은 사용자에게 더욱 개선된 대화형 앱 위젯을 위한 여러 가지 새로운 위젯 클래스를 지원합니다. 다음을 포함한 홈 화면: GridView, ListView, StackView, ViewFlipper, AdapterViewFlipper

더 중요한 점은 새 RemoteViewsService를 사용하여 앱을 만들 수 있다는 것입니다. 원격 데이터가 지원하는 GridView, ListView, StackView와 같은 위젯을 사용하는 컬렉션이 있는 위젯 콘텐츠를 제공할 수 있습니다.

AppWidgetProviderInfo 클래스(<appwidget-provider> 요소로 XML에 정의됨)도 새로운 두 필드(autoAdvanceViewIdpreviewImage)를 지원합니다. autoAdvanceViewId 필드를 사용하면 앱 위젯의 호스트가 자동으로 진행해야 하는 앱 위젯 하위 뷰입니다. 이 previewImage 필드는 앱 위젯은 위젯 선택도구의 모양과 모습이며 사용자에게 표시됩니다. 이 필드가 앱 위젯의 아이콘이 미리보기에 사용됩니다.

previewImage 필드에서 지정할 앱 위젯의 미리보기 이미지를 만들 수 있도록 Android Emulator에는 다음이 포함됩니다. '위젯 미리보기'라는 애플리케이션을 실행합니다 미리보기 이미지를 만들려면 이 애플리케이션을 실행하고 앱 위젯을 만들고 미리보기 이미지가 표시되는 방식을 설정한 다음 애플리케이션의 드로어블 리소스에 배치합니다.

새로운 앱 위젯 기능의 구현은 StackView 앱 위젯날씨 목록 위젯에서 확인할 수 있습니다. 애플리케이션을 실행할 수 있습니다

상태 표시줄 알림

콘텐츠가 더 풍부한 상태를 지원하도록 Notification API가 확장되었습니다. 막대 알림과 새로운 Notification.Builder 클래스를 사용하면 Notification 객체 만들기

새로운 기능에는 다음이 포함됩니다.

  • setLargeIcon()를 사용하여 알림에서 큰 아이콘을 지원합니다. 일반적으로 사진을 제공한 사람의 연락처 사진을 보여주는 소셜 응용 프로그램 알림이나 미디어 앱이 앨범 썸네일을 표시할 수 있습니다.
  • setTicker()를 사용하여 상태 표시줄 티커에서 맞춤 레이아웃을 지원합니다.
  • 더 많은 대화형 알림 위젯을 위해 PendingIntent가 있는 버튼을 포함하도록 맞춤 알림 레이아웃을 지원합니다. 예를 들어 알림을 통해 활동을 시작하지 않고도 음악 재생을 제어할 수 있습니다.

콘텐츠 로더

새로운 프레임워크 API는 Loader 클래스를 사용하여 데이터의 비동기 로드를 용이하게 합니다. 뷰, 프래그먼트를 사용하여 작업자 스레드에서 데이터를 동적으로 로드합니다. CursorLoader 서브클래스는 ContentProvider

새 로더가 요청되거나 데이터가 다음과 같은 경우 콜백을 수신하는 LoaderCallbacks 인터페이스를 구현하기만 하면 됩니다. initLoader()를 호출하여 Activity 또는 프래그먼트의 로더를 추가해야 합니다.

자세한 내용은 로더 문서를 참조하세요. 또한 LoaderCursor에서 로더를 사용하는 예제 코드 및 LoaderThrottle 샘플을 사용합니다.

블루투스 A2DP 및 헤드셋 API

Android에는 이제 애플리케이션이 연결된 블루투스 A2DP 및 헤드셋 프로필 기기를 사용합니다. 예를 들어 애플리케이션은 블루투스 헤드셋이 사용 중지되거나 적절하게 사용자에게 알려야 합니다. 또한 애플리케이션은 (공급업체별 AT 명령에 대해 브로드캐스트하고 사용자에게 연결된 배터리 잔량이 부족한 경우 등은 기기가 제한됩니다.

A2DP 또는 HEADSETgetProfileProxy()를 호출하여 각 BluetoothProfile를 초기화할 수 있습니다. 프로필 상수와 수신할 BluetoothProfile.ServiceListener 블루투스 클라이언트가 연결되거나 연결 해제되었을 때 콜백을 호출합니다.

애니메이션 프레임워크

새롭고 유연한 애니메이션 프레임워크를 통해 모든 객체의 임의의 속성에 애니메이션을 적용할 수 있음 (View, Drawable, Fragment, Object 또는 기타 항목)를 지원합니다. 이 도구를 사용하면 다음과 같습니다.

  • 시간
  • 반복 횟수 및 동작
  • 시간 보간 유형
  • 애니메이터는 애니메이션을 함께, 순차적으로 또는 지정된 지연 후에 재생하도록 설정합니다.
  • 프레임 새로고침 지연

객체의 정수, 부동 소수점 수, 16진수에 이러한 애니메이션 관점 등을 정의할 수 있습니다. 기본적으로 설정됩니다. 즉, 객체에 이러한 유형 중 하나에 대한 속성 필드가 있으면 시간이 지남에 따라 값을 변경하여 애니메이션에 영향을 줄 수 있습니다. 다른 유형의 값에 애니메이션을 적용하려면 시스템에 TypeEvaluator 인터페이스를 구현하여 지정된 유형의 값을 계산하는 방법

속성 값에 애니메이션을 적용하는 데 사용할 수 있는 두 가지 애니메이터가 있습니다. ValueAnimatorObjectAnimator입니다. ValueAnimator는 애니메이션 값을 계산하지만 구체적인 값은 인식하지 못합니다. 애니메이션으로 표현되는 객체나 속성을 뜻합니다. 단순히 계산을 수행하고 업데이트를 수신 대기하고 자체 로직으로 데이터를 처리합니다. ObjectAnimatorValueAnimator의 서브클래스입니다. 를 사용하면 애니메이션할 객체와 속성을 설정할 수 있으며 모든 애니메이션 작업을 처리합니다. 즉, 애니메이션을 적용할 객체를 ObjectAnimator에 제공하고 시간 경과에 따라 변경될 객체의 속성 및 속성에 적용할 값 집합 애니메이션을 시작할 수 있습니다.

또한 LayoutTransition 클래스는 자동 전환을 사용 설정합니다. 액티비티 레이아웃 변경에 관한 애니메이션입니다. 일부에 대해 전환을 사용 설정하려면 LayoutTransition 객체를 만들고 이를 setLayoutTransition()를 호출하여 모든 ViewGroup 이렇게 하면 기본 그룹에 항목이 추가되거나 그룹에서 삭제될 때마다 실행되는 애니메이션 커스텀 LayoutTransition에서 setAnimator()를 호출하고 맞춤 Animator를 제공합니다. 예: ValueAnimator 또는 ObjectAnimator 사용할 수 있습니다.

자세한 내용은 속성 애니메이션 문서를 참고하세요. 다음과 같은 작업을 할 수 있습니다. API에서 Animation API를 사용하는 여러 샘플도 참조하세요. 데모 애플리케이션을 지원합니다.

확장 UI 프레임워크

  • ListView 및 GridView의 다중 선택 선택

    setChoiceMode()의 새로운 CHOICE_MODE_MULTIPLE_MODAL 모드를 사용하면 사용자가 여러 항목을 선택할 수 있습니다. ListView 또는 GridView에서 가져올 수 있습니다. 사용 위치 사용자는 여러 항목을 선택한 다음 원하는 작업을 선택하여 액션 바의 옵션 목록에서 수행할 수 있습니다 (다중 선택으로 변환됨). 작업 모드).

    객관식 선택을 사용 설정하려면 setChoiceMode(CHOICE_MODE_MULTIPLE_MODAL)를 호출하고 setMultiChoiceModeListener()에서 MultiChoiceModeListener 사용

    사용자가 항목을 길게 누르면 작업 모음이 다중 선택 모드로 전환됩니다. 작업 모드 항목이 선택되면 시스템은 onItemCheckedStateChanged()를 호출하여 MultiChoiceModeListener에 알립니다.

    객관식 선택의 예는 List15. 자바 클래스에 대해 자세히 알아보세요.

  • 뷰 변환을 위한 새로운 API

    새로운 API를 사용하면 활동의 뷰에 2D 및 3D 변환을 쉽게 적용할 수 있습니다. 있습니다. 새로운 변환은 뷰의 뷰 속성을 정의하는 객체 속성 집합으로 레이아웃 위치, 방향, 투명도 등을 설정할 수 있습니다.

    뷰 속성을 설정하는 새로운 메서드에는 setAlpha(), setBottom(), setLeft(), setRight(), setBottom(), setPivotX(), setPivotY(), setRotationX(), setRotationY(), setScaleX(), setScaleY(), setAlpha() 등이 있습니다.

    일부 메서드에는 레이아웃에서 지정할 수 있는 상응하는 XML 특성도 있습니다. 기본 변환을 적용합니다. 사용 가능한 속성에는 translationX, translationY, rotation, rotationX, rotationY, scaleX, scaleY, transformPivotX transformPivotY, alpha입니다.

    이러한 새로운 뷰 속성 중 일부를 새 애니메이션 프레임워크와 함께 사용 (설명에 설명) 몇 가지 멋진 애니메이션을 뷰에 쉽게 적용할 수 있습니다. 예를 들어 View, 'rotationY'와 함께 ObjectAnimator를 제공합니다. 시작 및 종료 값을 설정할 수 있습니다.

    Kotlin

    ObjectAnimator.ofFloat(myView, "rotationY", 0f, 360f).apply {
        duration = 2000
        start()
    }
    

    자바

    ObjectAnimator animator = ObjectAnimator.ofFloat(myView, "rotationY", 0, 360);
    animator.setDuration(2000);
    animator.start();
    
  • 새로운 홀로그램 테마

    표준 시스템 위젯과 전반적인 디자인이 새롭게 디자인되었으며 '홀로그램' 사용자 인터페이스 테마입니다. 시스템에서 새 테마를 적용합니다. 표준 스타일 및 테마 시스템을 사용합니다.

    Android 3.0 플랫폼을 타겟팅하는 모든 애플리케이션(android:minSdkVersion 또는 또는 android:targetSdkVersion 값을 "11"로 설정: 기본적으로 홀로그램 테마를 상속합니다. 그러나 애플리케이션이 자체 테마를 적용하는 경우에는 테마가 홀로그램 테마를 상속하도록 스타일을 업데이트하지 않는 한 홀로그램 테마입니다.

    개별 활동에 홀로그램 테마를 적용하거나 자체 테마로 상속받기 정의, 여러 새 Theme.Holo 중 하나 사용 있습니다. 애플리케이션이 Android 3.0 이전 버전과 호환되고 플랫폼에 따라 테마를 선택해야 합니다. 버전을 참조하세요.

  • 새 위젯 <ph type="x-smartling-placeholder">
      </ph>
    • AdapterViewAnimator

      전환 시 애니메이션을 실행하는 AdapterView의 기본 클래스 있습니다.

    • AdapterViewFlipper

      두 개 이상의 뷰 간에 애니메이션을 적용하는 간단한 ViewAnimator 추가할 수 있습니다. 한 번에 한 자녀만 표시됩니다. 요청이 있을 경우 다음 값 사이 정기적으로 각 아동을 대상으로 합니다

    • CalendarView

      사용자가 날짜를 터치하여 캘린더에서 날짜를 선택할 수 있도록 하고 원하는 날짜로 변경합니다. 위젯에서 사용 가능한 날짜 범위를 구성할 수 있습니다.

    • ListPopupWindow

      호스트 뷰에 자체를 고정하고 EditText 뷰에 입력할 때 추천 단어가 표시됩니다.

    • NumberPicker

      사용자가 사전 정의된 범위에서 숫자를 선택할 수 있도록 사용 설정합니다. 위젯은 입력란과 위쪽 및 아래쪽 버튼을 사용하여 숫자를 선택할 수 있습니다. 입력란을 터치하면 값을 스크롤하거나 다시 터치하여 현재 값을 직접 수정합니다. 또한 다음을 통해 색인 대신 해당 문자열이 표시되도록 위치를 문자열로 표시합니다. 있습니다.

    • PopupMenu

      뷰에 고정된 모달 팝업 창에 Menu를 표시합니다. 이 앵커 뷰 아래에 공간이 있으면 아래에 팝업이 표시되고, 공간이 없으면 위에 팝업이 표시됩니다. IME (소프트 키보드)가 표시되면 사용자가 선택합니다.

    • SearchView

      지정된 기존의 검색 대화상자와 같은 방식으로 추천 검색어를 표시합니다. 이 위젯은 작업 모음에 검색 위젯을 제공하는 데 특히 유용합니다. 자세한 내용은 검색 인터페이스 만들기를 참조하세요.

    • StackView

      하위 요소를 3D 스택에 표시하고 사용자가 스와이프할 수 있는 뷰 볼 수 있습니다.

그래픽

  • 하드웨어 가속 2D 그래픽

    이제 매니페스트 요소의 <application>에서 android:hardwareAccelerated="true"를 설정하여 애플리케이션에 OpenGL 렌더기를 사용 설정할 수 있습니다. 요소 또는 개별 <activity> 요소

    이 플래그는 애플리케이션이 더 빠르게 그리도록 하여 도움이 됩니다. 이에 따라 애니메이션과 스크롤이 더 매끄러워졌으며 전반적으로 사용자 상호작용에 대한 성능과 반응이 개선되었습니다.

  • 하드웨어 및 소프트웨어 레이어 지원 보기

    기본적으로 View에는 지정된 레이어가 없습니다. 포드의 뷰는 LAYER_TYPE_HARDWARELAYER_TYPE_SOFTWARE 값으로 지정된 하드웨어 또는 소프트웨어 레이어에 의해 지원되며, setLayerType() 또는 layerType 속성의 값을 제공합니다.

    하드웨어 레이어는 하드웨어별 텍스처 (일반적으로 프레임 버퍼 객체 또는 OpenGL 하드웨어의 FBO) 및 Android의 하드웨어 렌더링을 사용하여 뷰가 렌더링되도록 합니다. 하드웨어 가속이 사용 설정된 경우에만 뷰 계층 구조에 적용됩니다. 하드웨어가 가속이 꺼지면 하드웨어 레이어는 소프트웨어 레이어와 정확히 동일하게 작동합니다.

    소프트웨어 레이어는 비트맵에 의해 지원되며 Android의 소프트웨어 렌더링 파이프라인에 액세스할 수 있습니다 소프트웨어 계층은 영향을 받는 뷰 트리가 자주 업데이트되는 경우 피할 수 있습니다 업데이트할 때마다 이는 잠재적으로 느릴 수 있습니다

    자세한 내용은 LAYER_TYPE_HARDWARELAYER_TYPE_SOFTWARE 문서를 참고하세요.

  • Renderscript 3D 그래픽 엔진

    Renderscript는 3D 장면을 빌드하기 위한 API를 모두 제공하는 런타임 3D 프레임워크입니다. 셰이더 언어로 사용할 수 있습니다. Renderscript를 사용하면 그래픽 작업과 데이터 처리를 가속화할 수 있습니다. Renderscript는 고성능 3D 효과를 얻을 수 있습니다.

    자세한 내용은 3D 렌더링 및 API로 계산 Renderscript 문서를 참조하세요.

미디어

  • 타임랩스 동영상

    Camcorder API는 이제 타임랩스 동영상을 녹화하는 기능을 지원합니다. setCaptureRate()는 프레임 속도를 캡처되어야 합니다.

  • 이미지 스트림을 위한 텍스처 지원

    SurfaceTexture를 사용하면 이미지 스트림을 OpenGL ES로 캡처할 수 있습니다. 만들 수도 있습니다 다음을 위해 setPreviewTexture()를 호출합니다. Camera 인스턴스에서 동영상 재생 또는 미리보기 프레임을 그릴 SurfaceTexture를 지정할 수 있습니다. 있습니다.

  • HTTP 라이브 스트리밍

    이제 애플리케이션은 M3U 재생목록 URL을 미디어 프레임워크에 전달하여 HTTP 라이브를 시작할 수 있습니다. 스트리밍 세션입니다. 미디어 프레임워크는 대부분의 HTTP 라이브 스트리밍 사양을 지원합니다. 적응형 비트 전송률도 지원합니다 다음에 대해 지원되는 미디어 형식 문서를 참조하세요. 자세히 알아보세요.

  • EXIF 데이터

    ExifInterface에는 사진 조리개, ISO, 노출을 위한 새로운 필드가 포함되어 있습니다. 있습니다.

  • 캠코더 프로필

    새로운 hasProfile() 메서드 및 여러 동영상 품질 프로필 (예: QUALITY_1080P, QUALITY_720P, QUALITY_CIF 등)을 통해 캠코더를 확인할 수 있습니다. 선택할 수 있습니다.

  • 디지털 미디어 파일 전송

    플랫폼에는 USB를 통한 미디어/사진 전송 프로토콜 (MTP/PTP) 지원 기능이 내장되어 있으며, 사용자는 장치 간에 그리고 호스트 컴퓨터로 모든 유형의 미디어 파일을 쉽게 전송할 수 있습니다. 개발자는 이러한 지원을 바탕으로 사용자가 풍부한 콘텐츠를 만들거나 관리할 수 있는 애플리케이션을 개발할 수 있습니다. 여러 미디어 파일을 전송하거나 공유하려고 할 수 있습니다.

  • 디지털 권한 관리 (DRM)

    디지털 확인 및 시행을 위한 새로운 확장 가능한 디지털 권한 관리 (DRM) 프레임워크 제공합니다. 이 방법은 다음과 같은 두 가지 아키텍처 레이어로 구현됩니다.

    • 애플리케이션에 노출되고 Dalvik VM을 통해 실행되는 DRM 프레임워크 API 사용할 수 있습니다
    • 프레임워크 API를 구현하고 DRM용 인터페이스를 노출하는 네이티브 코드 DRM 관리자 다양한 DRM 체계에 대한 권한 관리 및 복호화를 처리할 수 있습니다.

    애플리케이션 개발자에게는 프레임워크로 추상화하고 통합된 API를 제공하여 관리하는 데 사용됩니다. 이 API는 DRM 작업의 복잡성을 숨기고 보호되는 콘텐츠와 비보호 콘텐츠, 그리고 다양한 DRM에 걸쳐 스키마입니다.

    기기 제조업체, 콘텐츠 소유자, 인터넷 디지털 미디어 제공업체의 경우 DRM 프레임워크의 플러그인 API는 선택한 DRM 스키마에 대한 지원을 Android 시스템: 콘텐츠 보호 조치를 안전하게 시행

    미리보기 릴리스에서는 디지털 확인 및 시행을 위한 어떠한 기본 DRM 플러그인도 제공하지 않습니다. 제공합니다. 그러나 기기 제조업체는 기기와 함께 DRM 플러그인을 제공할 수 있습니다.

    모든 DRM API는 android.drm 패키지에서 찾을 수 있습니다.

키보드 지원

  • Control, Meta, Caps Lock, Num Lock, Scroll Lock 수정자가 지원됩니다. 자세한 내용은 META_CTRL_ON 및 관련 필드를 참고하세요.
  • Esc, Home, End, 삭제 및 기타 항목을 선택합니다. 다음과 같이 키 이벤트가 전체 키보드에서 발생하는지 확인할 수 있습니다. getKeyboardType() 쿼리 및 KeyCharacterMap.FULL 확인
  • 이제 TextView에서 키보드 기반 잘라내기, 복사, 붙여넣고, 모두 선택, Ctrl+X, Control+C, Ctrl+V 및 Control+A입니다. 또한 PageUp/PageDown, Home/End, 키보드 기반 텍스트 선택
  • KeyEvent는 키를 더 쉽게 확인할 수 있도록 몇 가지 새로운 메서드를 추가합니다. 올바르게 일관되게 일관되게 유지합니다. hasModifiers(int)를 참고하세요. hasNoModifiers(), metaStateHasModifiers(), metaStateHasNoModifiers()입니다.
  • 애플리케이션은 Activity, Dialog 또는 View를 서브클래스로 분류하고 이를 구현하여 맞춤 단축키를 구현할 수 있습니다. onKeyShortcut()입니다. 프레임워크는 이 메서드를 호출합니다. 를 누릅니다. 옵션 메뉴를 만들 때 키보드를 등록할 수 있습니다. 각 <item>android:alphabeticShortcut 또는 android:numericShortcut 속성을 설정하여 단축키 요소 (또는 setShortcut() 사용)
  • Android 3.0에는 새로운 '가상 키보드'가 포함되어 있습니다. ID가 KeyCharacterMap.VIRTUAL_KEYBOARD인 기기 가상 키보드에는 테스트를 위해 키 이벤트를 합성하는 데 유용한 데스크톱 스타일의 미국 키 맵이 있습니다. 있습니다.

분할 터치 이벤트

이전에는 한 번에 하나의 뷰만 터치 이벤트를 수락할 수 있었습니다. Android 3.0 여러 뷰와 창에 걸쳐 터치 이벤트를 분할하는 지원을 추가하여 여러 뷰에서 동시 터치 이벤트를 지원합니다.

분할 터치 이벤트는 애플리케이션이 타겟팅할 때 기본적으로 사용 설정됨 Android 3.0 즉, 애플리케이션이 android:minSdkVersion 또는 android:targetSdkVersion 속성의 값을 "11"로 설정합니다.

그러나 다음 속성을 사용하면 내부 뷰에서 분할 터치 이벤트를 사용 중지할 수 있습니다. 특정 뷰 그룹 및 창에 적용할 수 있습니다

  • 뷰 그룹의 android:splitMotionEvents 속성 를 사용하면 레이아웃의 하위 뷰 간에 발생하는 분할 터치 이벤트를 사용 중지할 수 있습니다. 예를 들면 다음과 같습니다.
    <LinearLayout android:splitMotionEvents="false" ... >
        ...
    </LinearLayout>
    

    이렇게 하면 선형 레이아웃의 하위 뷰는 터치 이벤트를 분할할 수 없습니다. 즉, 한 개의 뷰만 수신하기 때문입니다.

  • android:windowEnableSplitTouch 스타일 속성 을 사용하면 활동 테마에 분할 터치 이벤트를 적용하여 여러 창에서 분할 터치 이벤트를 사용 중지할 수 있습니다. 또는 전체 애플리케이션에서 사용할 수 있습니다 예를 들면 다음과 같습니다.
    <style name="NoSplitMotionEvents" parent="android:Theme.Holo">
        <item name="android:windowEnableSplitTouch">false</item>
        ...
    </style>
    

    이 테마가 <activity> 또는 <application>에 적용되면 현재 활동 창 내의 터치 이벤트만 허용됩니다. 예를 들어 분할을 사용 중지하면 여러 창의 터치 이벤트가 포함된 경우 시스템 표시줄이 터치 이벤트를 동시에 수신할 수 없습니다. 있습니다. 이는 활동 내부의 뷰가 터치를 분할할 수 있는지에는 영향을 미치지 않습니다. 이벤트 - 기본적으로 활동은 여러 뷰에 걸쳐 터치 이벤트를 분할할 수 있습니다.

    테마 만들기에 관한 자세한 내용은 스타일 및 테마 적용을 참고하세요.

WebKit

  • 새로운 WebViewFragment 클래스를 사용하여 WebView입니다.
  • WebSettings 메서드: <ph type="x-smartling-placeholder">
      </ph>
    • setDisplayZoomControls()를 통해 다음을 숨길 수 있음 사용자가 손가락 동작으로 확대/축소할 수 있도록 허용하면서 화면 확대/축소 컨트롤 (setBuiltInZoomControls()를 설정해야 함) true)을 입력합니다.
    • 새로운 WebSettings 메서드인 setEnableSmoothTransition()를 사용하면 화면 이동 및 확대/축소 시 부드럽게 전환할 수 있습니다. 사용 설정하면 WebView에서 솔루션을 선택합니다. 을 사용하여 성능을 최대화할 수 있습니다 (예를 들어 WebView의 콘텐츠가 WebView 실행 중에 표시됩니다.
  • WebView 메서드: <ph type="x-smartling-placeholder">
      </ph>
    • onPause() 콜백: 모든 처리를 일시중지합니다. WebView와 연결된 객체입니다. 이는 불필요한 CPU 또는 네트워크 트래픽을 모니터링할 수 있습니다.
    • onResume() 콜백: 처리를 재개합니다. onPause() 중에 일시중지된 WebView와 연결되어 있습니다.
    • saveWebArchive()를 사용하면 현재 보기를 기기에 웹 보관 파일로 저장합니다.
    • showFindDialog()는 다음 언어로 텍스트 검색을 시작합니다. 표시할 수 있습니다.

브라우저

브라우저 애플리케이션은 웹 애플리케이션을 지원하기 위해 다음 기능을 추가합니다.

  • 미디어 캡처

    HTML 미디어 캡처에 정의된 대로 브라우저에서 웹 애플리케이션이 오디오, 이미지 및 비디오 캡처에 액세스할 수 있도록 기기의 성능입니다. 예를 들어 다음 HTML은 사용자에게 업로드할 사진 촬영:

    <input type="file" accept="image/*;capture=camera" />
    

    또는 capture=camera 매개변수를 제외하면 사용자가 새 이미지를 가져오거나 기기에서 (예: Gallery 애플리케이션) 하나를 선택합니다.

  • 기기 방향

    기기 방향 이벤트에 정의된 대로 사양에 따라 웹 애플리케이션에서 정보를 제공하는 DOM 이벤트를 수신할 수 있도록 정보를 제공합니다.

    기기 방향은 x, y, z축(도)으로 표현되며 모션은 가속도 및 회전 속도 데이터로 표현됩니다. 오리엔테이션을 위해 웹페이지를 등록할 수 있음 이벤트 유형이 "deviceorientation"window.addEventListener 호출 "devicemotion" 이벤트 유형을 등록하여 모션 이벤트를 등록합니다.

  • CSS 3D 변환

    CSS 3D 변환 모듈 사양에 따라 CSS에서 렌더링된 요소를 세 가지 버전으로 변환할 수 있습니다. 측정기준에 따라 달라집니다.

JSON 유틸리티

새로운 수업 JsonReaderJsonWriter의 유용한 기능 JSON 스트림 읽기 및 쓰기 새 API는 org.json 클래스를 보완하며 이는 메모리에 저장된 문서를 저장하는 것입니다

다음을 호출하여 JsonReader의 인스턴스를 만들 수 있습니다. 생성자 메서드를 호출하고 JSON 문자열을 제공하는 InputStreamReader을 전달합니다. 그런 다음 beginObject()를 호출하여 객체 읽기를 시작하고 nextName()로 키 이름을 지정하는 경우 메서드를 사용하여 값 읽기 nextString()nextInt()와 같은 유형에 따라 다르며 hasNext()이 true인 동안 계속 실행합니다.

생성자를 호출하여 JsonWriter의 인스턴스를 만들고 적절한 OutputStreamWriter를 전달합니다. 그런 다음 리더와 유사하게 name()를 사용하여 속성 이름을 추가합니다. 적절한 value() 메서드를 사용하여 각 값으로 사용됩니다.

이러한 클래스는 기본적으로 엄격합니다. setLenient() 메서드는 그들이 허용하는 것에 더 자유롭게 하도록 구성합니다. 이 관대한 파싱 모드는 org.json의 기본 파서와도 호환됩니다.

새로운 기능 상수

<uses-feature> manfest 요소는 외부 주체 (예: Google Play)에 하드웨어 및 소프트웨어 기능을 기반으로 합니다. 이 릴리스에서 Android는 다음 새 상수를 제공합니다.

  • "android.hardware.faketouch"

    선언하면 애플리케이션이 에뮬레이션된 터치스크린 (또는 그 이상) 에뮬레이션된 터치스크린을 제공하는 기기는 사용자 입력을 제공합니다. 터치스크린 일부를 에뮬레이션할 수 있는 시스템 기능을 제공합니다 이러한 입력 시스템의 예로는 컴퓨터를 구동하는 마우스 또는 리모컨이 커서를 올려놓습니다. 이러한 입력 시스템은 클릭, 위로, 드래그와 같은 기본 터치 이벤트를 지원합니다. 하지만 동작, 플링 등 더 복잡한 입력 유형은 더 어렵거나 모조 터치 기기에서는 불가능하며 멀티터치 동작은 절대 불가능합니다.

    애플리케이션에 복잡한 동작이 필요하지 않고 에뮬레이션된 터치스크린이 있는 기기에서 애플리케이션이 필터링되기를 원하지 않는 경우: <uses-feature>"android.hardware.faketouch"을 선언해야 합니다. 요소가 포함됩니다. 이렇게 하면 애플리케이션을 최대한 많은 기기 유형에서 사용할 수 있으므로 에뮬레이션된 터치스크린 입력만 제공하는 앱도 포함합니다.

    터치 스크린이 포함된 모든 기기는 다음과 같은 이유로 "android.hardware.faketouch"도 지원합니다. 터치 스크린 기능은 모조 터치 기능을 포함합니다. 따라서 터치 스크린을 사용하려면 <uses-feature> 요소를 사용합니다.

새로운 권한

  • "android.permission.BIND_REMOTEVIEWS"

    이 권한은 <service> 매니페스트에서 필수 권한으로 선언해야 합니다. 요소를 사용할 수 있습니다.RemoteViewsService 예를 들어 RemoteViewsService를 사용하여 컬렉션 뷰에서 매니페스트 항목은 다음과 같을 수 있습니다.

    <service android:name=".widget.WidgetService"
        android:exported="false"
        android:permission="android.permission.BIND_REMOTEVIEWS" />
    

새로운 플랫폼 기술

  • 스토리지 <ph type="x-smartling-placeholder">
      </ph>
    • 온보드 eMMC 스토리지 사용을 위한 ext4 파일 시스템 지원
    • MTP 장치를 지원하는 FUSE 파일 시스템.
    • 키보드 및 USB 허브를 지원하기 위한 USB 호스트 모드 지원
    • MTP/PTP 지원
  • Linux 커널 <ph type="x-smartling-placeholder">
      </ph>
    • 2.6.36으로 업그레이드됨
  • Dalvik VM <ph type="x-smartling-placeholder">
      </ph>
    • SMP를 지원하고 최적화하는 새로운 코드
    • JIT 인프라의 다양한 개선사항
    • 가비지 컬렉터 개선사항: <ph type="x-smartling-placeholder">
        </ph>
      • SMP에 맞게 조정됨
      • 더 큰 힙 크기 지원
      • 비트맵 및 바이트 버퍼의 통합 처리
  • Dalvik 핵심 라이브러리 <ph type="x-smartling-placeholder">
      </ph>
    • 새롭고 훨씬 더 빠른 NIO (최신 I/O 라이브러리) 구현
    • 예외 메시지 개선
    • 전체 정확성 및 성능 수정

API 차이점 보고서

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

API 수준

Android 3.0 플랫폼은 API에 액세스할 수 있습니다 Android 3.0 API 정수 식별자가 할당됩니다. 11 — 시스템 자체에 저장됩니다. 'API 수준'이라고 하는 이 식별자를 사용하면 애플리케이션이 호환되는지 여부를 정확하게 판단하기 위해 할 수 있습니다.

Android 3.0에 도입된 API를 애플리케이션에 사용하려면 Android 라이브러리에 대해 애플리케이션을 컴파일하고 지원합니다. 필요에 따라 android:minSdkVersion="11"도 추가해야 합니다. 속성을 <uses-sdk> 요소에 추가합니다. 합니다. 애플리케이션이 Android 2.3 이상에서만 실행되도록 설계된 경우 이 속성을 선언하면 애플리케이션이 이전에 확인할 수 있습니다

자세한 내용은 API란? 레벨?