Android 3.1 API

API 수준: 12

개발자를 위한 Android 3.1 플랫폼 (HONEYCOMB_MR1)은(는) 다음과 같이 사용할 수 있습니다. 다운로드할 수 있는 구성요소입니다. 다운로드 가능한 플랫폼에는 Android 라이브러리와 시스템 이미지뿐만 아니라 에뮬레이터 스킨과 자세히 알아보세요. 다운로드 가능한 플랫폼에는 외부 라이브러리가 포함되어 있지 않습니다.

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

API 개요

아래 섹션에서는 개발자를 위한 새로운 기능의 기술 개요를 제공합니다. 이번에 Android 3.1에 출시된 이후 프레임워크 API의 새로운 기능과 변경사항이 이전 버전으로 이동해야 합니다.

USB API

Android 3.1에는 플랫폼에서 실행되는 애플리케이션과 연결된 주변 장치를 통합하는 것입니다. 이 API는 USB (범용 직렬 버스) 스택과 서비스를 기반으로 하며 USB 호스트 및 장치에 대한 지원을 포함하여 플랫폼에 내장되어 있습니다. 상호작용한다는 것입니다. 개발자는 API를 사용하여 다음과 같은 작업을 수행할 수 있는 인터넷에 연결된 다양한 장치 유형을 검색, 통신 및 USB

스택과 API는 기본 하드웨어의 두 가지 기본 유형인 Android 지원 기기가 호스트 역할을 하는지 또는 외부 하드웨어로 작동하는지 여부 호스트 역할:

  • USB 기기는 호스트 역할을 하는 Android 지원 기기 예를 들어 대부분의 입력 장치, 마우스, 많은 카메라, 허브 등과 마찬가지로 조이스틱은 USB 장치입니다.
  • USB 액세서리는 USB 포트가 있는 USB 포트가 있는 전원을 공급하고 호스트 컨트롤러와 통신할 수 있도록 USB를 통한 Android 구동 기기, 다양한 주변기기 연결 가능: 로봇 컨트롤러부터 악기, 운동용 자전거, 기타 등등

두 유형(USB 장치 및 USB 액세서리)의 경우 모두 플랫폼의 USB API는 연결되었을 때 인텐트 브로드캐스트를 통한 검색을 지원하거나 분리된 인터페이스, 표준 인터페이스, 엔드포인트 및 전송 모드 (제어, 대량, 방해)

USB API는 android.hardware.usb 패키지에서 제공됩니다. 이 중앙 클래스는 UsbManager이며 식별 및 통신을 위한 도우미 메서드 USB 장치 및 USB 액세서리 모두 애플리케이션은 UsbManager를 선택한 다음 첨부된 그런 다음 이러한 기기 또는 액세서리와 통신하거나 관리할 수 있습니다. 또한 UsbManager는 시스템 브로드캐스트를 전송하여 USB 장치나 액세서리가 연결되거나 분리됩니다.

다른 클래스는 다음과 같습니다.

  • UsbDevice: 외부를 나타내는 클래스 USB 장치로 연결된 하드웨어 (Android 지원 장치가 있습니다.
  • UsbAccessory: 외부 하드웨어를 나타냅니다. USB 호스트로 연결 (USB 역할을 하는 Android 지원 기기와 함께) 기기).
  • UsbInterfaceUsbEndpoint: 표준 USB에 대한 액세스를 제공합니다. 엔드포인트와 인터페이스입니다
  • UsbDeviceConnectionUsbRequest: 데이터 주고받기 및 제어 동기 및 비동기식으로 데이터를 주고받을 수 있습니다.
  • UsbConstants: 엔드포인트 유형, 장치 클래스 등 선언이 포함됩니다.

USB 스택이 플랫폼에 내장되어 있지만 실제 지원은 특정 기기의 USB 호스트 및 개방형 액세서리 모드인지 여부는 다음에 의해 결정됩니다. 있습니다. 특히 호스트 모드는 컨트롤러 하드웨어와 상호작용할 수 있습니다.

또한 개발자는 Google Play에서 필터링을 요청할 수 있습니다. 서비스를 제공하지 않는 기기의 사용자에게 USB 지원이 필요합니다. 필터링을 요청하려면 요소 중 하나 또는 둘 다를 추가하세요. 필요에 따라 애플리케이션 매니페스트에 추가합니다.

  • 애플리케이션을 USB를 지원하는 기기에만 표시해야 하는지 여부 호스트 모드 (USB 기기 연결)에서 다음 요소를 선언합니다.

    <uses-feature android:name="android.hardware.usb.host" android:required="true">

  • 애플리케이션을 USB를 지원하는 기기에만 표시해야 하는지 여부 액세서리 (USB 호스트 연결)의 경우 다음 요소를 선언합니다.

    <uses-feature android:name="android.hardware.usb.accessory" android:required="true">

상호 작용하는 애플리케이션을 개발하는 방법에 대한 자세한 내용은 자세한 내용은 개발자 문서를 참조하세요.

USB 호스트 API를 사용하는 샘플 애플리케이션을 살펴보려면 ADB 테스트Missile을 참고하세요. 런처

MTP/PTP API

Android 3.1은 애플리케이션이 직접 상호 작용할 수 있는 새로운 MTP API를 노출합니다. 다른 PTP 기기와 통신할 수 있습니다 새로운 API를 사용하면 장치가 연결되고 제거될 때 알림을 받을 수 있도록 하고, 관리하며, 기기에 있는 파일과 메타데이터를 만들 수 있습니다. MTP API는 PTP (Picture Transfer Protocol) 하위 집합을 MTP (Media Transfer Protocol) 사양의 내용을 기반으로 합니다.

MTP API는 android.mtp 패키지에서 사용할 수 있으며 다음 클래스에 적용됩니다.

  • MtpDevice는 다음과 같은 MTP 기기를 캡슐화합니다. USB 호스트 버스를 통해 연결되어 있어야 합니다. 애플리케이션은 그런 다음 해당 메서드를 사용하여 장치 및 장치에 대한 정보를 얻습니다. 연결을 열고 데이터를 전송할 뿐 아니라 몇 가지 메서드는 다음과 같습니다. <ph type="x-smartling-placeholder">
      </ph>
    • getObjectHandles()는 다음과 같은 기기의 모든 객체에 관한 핸들 목록을 반환합니다. 지정된 형식 및 상위 요소와 일치해야 합니다. 객체에 대한 정보를 가져오려면 애플리케이션은 getObjectInfo()에 핸들을 전달할 수 있습니다.
    • importFile()는 애플리케이션이 객체의 데이터를 외부 파일에 복사할 수 있도록 합니다. 사용할 수 있습니다 이 호출은 데이터 크기와 장치의 속도에 영향을 주므로 스레드가 필요합니다.
    • open() 애플리케이션이 연결된 MTP/PTP 장치를 열 수 있도록 합니다.
    • 반품 가능, 수수료 getThumbnail() 바이트 배열로서 객체의 썸네일입니다.
  • MtpStorageInfo에는 저장용량에 관한 정보가 있습니다. ( 섹션 5.2.2에 나와 있습니다. 클래스의 메서드는 애플리케이션이 스토리지 단위의 설명 문자열, 여유 공간, 최대 저장 용량 스토리지 ID, 볼륨 식별자입니다
  • MtpDeviceInfo에는 MTP 기기에 대한 정보가 있습니다. MTP의 섹션 5.1.1에 설명된 DeviceInfo 데이터 세트에 해당하는 지정할 수도 있습니다 클래스의 메서드는 애플리케이션이 기기의 제조업체, 모델, 일련번호 및 버전을 확인할 수 있습니다.
  • MtpObjectInfo에는 저장된 객체에 대한 정보가 포함됩니다. (섹션에 설명된 ObjectInfo 데이터 세트에 해당하는 MTP 기기에서) MTP 사양의 5.3.1. 클래스의 메서드는 애플리케이션이 개체의 크기, 데이터 형식, 연결 유형, 생성일, 썸네일 이미지 확인할 수 있습니다
  • MtpConstants는 MTP 파일을 선언하는 상수를 제공합니다. 형식 코드, 연결 유형 및 보호 상태를 보여줍니다.

새 입력 장치 및 모션 이벤트 지원

Android 3.1은 입력 하위 시스템을 확장하여 새로운 입력 장치와 새로운 모든 뷰와 창에 걸친 모션 이벤트 유형입니다. 개발자는 사용자가 마우스, 키보드 및 모니터를 사용하여 응용 프로그램과 상호 작용할 수 있도록 트랙볼, 조이스틱, 게임패드 및 기타 장치뿐 아니라 터치 스크린입니다.

마우스, 스크롤휠, 트랙볼 입력을 처리하기 위해 플랫폼은 두 개의 새로운 모션 이벤트 작업:

  • ACTION_SCROLL: 포인터를 설명합니다. 마우스 스크롤 휠과 같은 터치 미지원 스크롤 모션, 일어난 일이었습니다 MotionEvent에서 AXIS_HSCROLLAXIS_VSCROLL 축의 값은 상대 스크롤을 지정합니다. 움직입니다.
  • ACTION_HOVER_MOVE: 현재 버튼을 누르지 않았을 때의 마우스 위치와 지난 HOVER_MOVE 이벤트 이후 포인트가 추가되었습니다. 마우스를 가져가 들어가고 나가기 알림은 아직 지원되지 않습니다.

조이스틱과 게임패드를 지원하기 위해 InputDevice 클래스 에는 다음과 같은 새로운 입력 장치 소스가 포함됩니다.

이러한 새로운 소스와 마우스의 움직임 이벤트를 설명하기 위해 및 트랙볼을 사용하는 경우 플랫폼에서는 이제 KeyEvent에서 키 코드를 정의하는 방법과 유사하게 MotionEvent에서 축 코드를 정의합니다. 조이스틱의 새로운 축 코드 게임 컨트롤러에는 AXIS_HAT_X, AXIS_HAT_Y, AXIS_RTRIGGER, AXIS_ORIENTATION, AXIS_THROTTLE 외 다수 기존 MotionEvent 축은 AXIS_X, AXIS_Y로 표시됩니다. AXIS_PRESSURE, AXIS_SIZE, AXIS_TOUCH_MAJOR, AXIS_TOUCH_MINOR, AXIS_TOOL_MAJOR, AXIS_TOOL_MINOR, AXIS_ORIENTATION.

또한 MotionEvent는 여러 일반 프레임워크가 특정 축입니다. 특정 장치는 일반 축 코드를 사용하여 맞춤형 애플리케이션에 전송합니다. 축의 전체 목록과 용도는 MotionEvent 클래스 문서를 참고하세요.

플랫폼은 모션 이벤트를 애플리케이션에 일괄적으로 제공하므로, 단일 이벤트는 현재 위치와 소위 말하는 여러 개의 과거 움직임을 포함할 수 있습니다. 애플리케이션은 getHistorySize()를 사용하여 이전 샘플의 개수를 지정한 다음 모든 과거 데이터 세트를 샘플을 getHistoricalAxisValue()를 사용하여 순서대로 정렬합니다. 그 이후에는 애플리케이션이 getAxisValue()를 사용하여 샘플을 완성할 수 있습니다.

일부 축은 특수 접근자 메서드를 사용하여 가져올 수 있습니다. 예를 들어 애플리케이션은 getAxisValue()를 호출하는 대신 getX()를 호출할 수 있습니다. 기본 접근자가 있는 축에는 AXIS_X, AXIS_Y, AXIS_PRESSURE, AXIS_SIZE, AXIS_TOUCH_MAJOR, AXIS_TOUCH_MINOR, AXIS_TOOL_MAJOR, AXIS_TOOL_MINOR, AXIS_ORIENTATION

각 입력 장치는 고유한 시스템 할당 ID를 가지며 여러 소스가 있습니다 기기에서 여러 소스를 제공하는 경우 둘 이상의 소스 동일한 축을 사용하여 축 데이터를 제공할 수 있습니다. 예를 들어 사용자가 화면 위치 데이터에 X축을 사용하는 반면, 조이스틱은 조이스틱 소스에서 오는 이벤트는 스틱 위치에 X축을 사용합니다. 하세요. 따라서 응용 프로그램에서 축을 해석하는 것이 중요합니다. 값이 발생한 소스에 따라 달라집니다. 움직임을 처리할 때 이벤트 발생 시 애플리케이션은 InputDevice에서 메서드를 사용해야 합니다. 클래스를 사용하여 기기 또는 소스에서 지원하는 축을 결정합니다. 구체적으로 설명하자면 다음과 같습니다. 애플리케이션은 getMotionRanges()를 사용하여 기기의 모든 축 또는 지정된 기기의 모든 축을 쿼리할 수 있습니다. 기기의 소스입니다. 두 경우 모두 축에 대한 범위 정보는 InputDevice.MotionRange 객체는 지정할 수 있습니다.

마지막으로, 조이스틱, 게임패드, 마우스 및 키보드의 모션 이벤트가 트랙볼은 터치 이벤트가 아니므로 플랫폼에서 View에 'generic'으로 전달 사용합니다. 특히 터치 미지원 모션 이벤트를 보고하여 onTouchEvent()가 아닌 onGenericMotionEvent() 호출을 통해 View를 실행합니다.

플랫폼은 이벤트 소스 클래스입니다. 이벤트 SOURCE_CLASS_POINTER개 포인터 아래의 View로 이동합니다(터치하는 방법과 비슷합니다). 있습니다. 나머지는 모두 현재 포커스가 설정된 View로 이동합니다. 예를 들어, 이는 View가 조이스틱 이벤트를 수신합니다. 필요한 경우 애플리케이션은 대신 onGenericMotionEvent()를 구현하여 '활동 또는 대화' 수준을 조정할 수 있습니다.

조이스틱 모션을 사용하는 샘플 애플리케이션 살펴보기 GameControllerInput 참고 및 GameView를 참조하세요.

RTP API

Android 3.1은 API를 내장 RTP (실시간 전송 프로토콜)에 노출합니다. 애플리케이션에서 주문형 또는 대화형 데이터를 관리하는 데 사용할 수 있는 있습니다. 특히 VOIP, 눌러서 말하기, 회의, 오디오 스트리밍은 API를 사용하여 세션을 시작하고 데이터 스트림과 데이터 전송을 할 수 있습니다.

RTP API는 android.net.rtp 패키지에서 사용할 수 있습니다. 클래스 포함:

  • RtpStream는 스트리밍의 기본 클래스입니다. RTP를 통해 미디어 페이로드와 함께 네트워크 패킷을 수신합니다.
  • AudioStream: RTP를 통해 오디오 페이로드를 전달하는 RtpStream의 서브클래스입니다.
  • AudioGroup은(는) Google Cloud에서 제공하는 기기 스피커, 마이크, AudioStream을(를) 믹싱하세요.
  • AudioCodec: AudioStream에 대해 정의합니다.

오디오 회의 및 유사한 용도를 지원하기 위해 애플리케이션은 스트림의 엔드포인트로 사용할 두 개의 클래스.

  • AudioStream는 원격 엔드포인트를 지정하며 네트워크 매핑 및 구성된 AudioCodec의 인스턴스입니다.
  • AudioGroup는 1개의 로컬 엔드포인트를 나타냅니다. AudioStream 이상 AudioGroup의 믹스 모든 AudioStream가 포함되며 선택적으로 기기와 상호작용합니다. 마이크를 동시에 엽니다.

가장 간단한 용도는 단일 원격 엔드포인트와 로컬 엔드포인트입니다. 더 복잡한 사용법은 AudioGroup

RTP API를 사용하려면 애플리케이션은 <uses-permission android:name="android.permission.INTERNET"> 선언 중 매니페스트 파일에 포함됩니다 기기 마이크를 획득하려면 <uses-permission android:name="android.permission.RECORD_AUDIO"> 권한도 필요합니다.

크기 조정 가능한 앱 위젯

Android 3.1부터 개발자는 홈 화면 위젯을 만들 수 있습니다. 가로, 세로 또는 양쪽 축에서 모두 크기 조절 가능 사용자가 버튼을 길게 터치합니다. 위젯을 만들어 크기 조절 핸들을 표시한 다음 가로 또는 세로 아이콘을 드래그합니다. 핸들을 사용하여 레이아웃 그리드의 크기를 변경할 수 있습니다.

개발자는 resizeMode 속성에 AppWidgetProviderInfo 속성을 포함합니다. 이 resizeMode 속성에 'horizontal', 'vertical', 'none'이 포함되어 있습니다. 위젯의 크기를 가로 및 세로로 조절할 수 있다고 선언하려면 값을 제공합니다. 'horizontal|vertical'

예를 들면 다음과 같습니다.

<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
    android:minWidth="294dp"
    android:minHeight="72dp"
    android:updatePeriodMillis="86400000"
    android:previewImage="@drawable/preview"
    android:initialLayout="@layout/example_appwidget"
    android:configure="com.example.android.ExampleAppWidgetConfigure"
    android:resizeMode="horizontal|vertical" >
</appwidget-provider>

홈 화면 위젯에 관한 자세한 내용은 앱 위젯을 참고하세요. 문서를 참조하세요.

애니메이션 프레임워크

  • 새로운 ViewPropertyAnimator 클래스 <ph type="x-smartling-placeholder">
      </ph>
    • ViewPropertyAnimator 클래스는 편리한 개발자가 View 객체의 일부 속성에 애니메이션을 적용할 수 있습니다. 클래스 속성의 애니메이션을 자동화하고 최적화하여 View 객체에서 동시 애니메이션 여러 개를 관리합니다.

      ViewPropertyAnimator 사용은 간단합니다. 다음 레이어의 속성에 애니메이션을 적용하려면 View인 경우 animate()를 호출하여 해당 ViewViewPropertyAnimator 객체를 구성합니다. 사용 ViewPropertyAnimator에서 메서드를 사용하여 어떤 속성을 방법을 설명합니다. 예를 들어 View를 투명으로 페이드 아웃하려면 다음과 같이 합니다. alpha(0);를 호출합니다. ViewPropertyAnimator 객체 기본 Animator 클래스를 구성하고 시작하는 세부정보를 처리한 후 애니메이션을 적용할 수 있습니다.

  • 애니메이션 배경 색상 <ph type="x-smartling-placeholder">
      </ph>
    • 새로운 getBackgroundColor()setBackgroundColor(int) 메서드를 사용하면 창 애니메이션의 경우 애니메이션 뒤의 배경 색상을 가져오거나 설정합니다. 전용입니다. 현재 배경은 원하는 알파 수준과 함께 검은색이어야 합니다.
  • ViewAnimator에서 애니메이션 분수를 가져오는 중 <ph type="x-smartling-placeholder">
      </ph>
    • 새로운 getAnimatedFraction() 결제 수단 현재 애니메이션 비율, 즉 경과된/보간된 값을 ValueAnimator에서 가장 최근 프레임 업데이트에 사용된 비율.

UI 프레임워크

  • 레이어 강제 렌더링 <ph type="x-smartling-placeholder">
      </ph>
    • buildLayer() 메서드를 사용하면 애플리케이션이 뷰의 레이어를 생성하고 뷰가 즉시 이 레이어로 렌더링되도록 합니다. 예를 들어, 애플리케이션은 이 메서드를 사용하여 뷰를 기본 뷰로 렌더링할 수 있습니다. 레이어를 추가해야 합니다. 뷰가 복잡하면 레이어를 건너뛰지 않게 됩니다.
  • 카메라 거리 <ph type="x-smartling-placeholder">
      </ph>
    • 애플리케이션은 새 메서드를 사용할 수 있음 setCameraDistance(float): 카메라 할 수 있습니다. 이를 통해 애플리케이션에서는 이미지의 3D 변환에 대해 뷰(예: 회전)
  • DatePicker에서 캘린더 뷰 가져오기 <ph type="x-smartling-placeholder">
  • 뷰가 분리될 때 콜백 수신 <ph type="x-smartling-placeholder">
  • 프래그먼트 탐색경로 리스너, 새로운 onInflate() 서명 <ph type="x-smartling-placeholder">
  • 새 탭에 검색 결과 표시 <ph type="x-smartling-placeholder">
  • 드로어블 텍스트 커서 <ph type="x-smartling-placeholder">
  • 원격 뷰에 표시되는 하위 요소 설정 <ph type="x-smartling-placeholder">
  • 게임패드 및 기타 입력 장치용 일반 키 <ph type="x-smartling-placeholder">
      </ph>
    • KeyEvent는 일반적인 키 코드의 범위를 게임패드 버튼을 표시할 수 없습니다. 또한 클래스는 isGamepadButton(int)님 외 여러 명 도우미 메서드를 제공합니다.

그래픽

  • 비트맵 관리를 위한 도우미 <ph type="x-smartling-placeholder">
      </ph>
    • setHasAlpha(boolean)는 앱이 다음을 표시할 수 있도록 합니다. 비트맵의 모든 픽셀은 불투명 (false)이거나 픽셀에는 불투명하지 않은 알파 값 (true)이 포함될 수 있습니다. 일부 구성 (예: 픽셀당 알파를 지원하지 않으므로 이 호출은 무시됩니다. 값으로 사용됩니다. 이는 드로잉 힌트를 의미할 수 있으며, 어떤 경우에는 불투명한 케이스는 불투명한 불투명 케이스보다 더 빠른 그리기 케이스를 사용할 수 있습니다. 픽셀당 알파 값입니다.
    • getByteCount()는 비트맵의 크기를 가져옵니다. 바이트.
    • getGenerationId()를 사용하면 애플리케이션에서 캐싱 등의 목적으로 비트맵이 수정되었는지 여부를 알 수 있습니다.
    • sameAs(android.graphics.Bitmap)에서 지정된 비트맵이 현재 비트맵과 다른지 여부, 크기, 픽셀 데이터 등이 있습니다.
  • 카메라 위치 및 회전 설정 <ph type="x-smartling-placeholder">
      </ph>
    • Camera는 다음의 두 가지 새로운 메서드 rotate()setLocation()를 추가합니다. 완전히 새로운 카메라 위치.

네트워크

  • 고성능 Wi-Fi 잠금 <ph type="x-smartling-placeholder">
      </ph>
    • 새로운 고성능 Wi-Fi 잠금을 통해 애플리케이션은 고성능 Wi-Fi 연결을 계속 사용할 수 있습니다. 음악, 동영상, 음성을 장시간 스트리밍하는 애플리케이션은 고성능 Wi-Fi 잠금을 통해 화면이 켜진 상태에서도 스트리밍 성능이 보장됩니다. 사용 중지되어 있습니다. 더 많은 전력을 사용하기 때문에 응용 프로그램은 필요한 경우 고성능 Wi-Fi를 사용할 수 있습니다. 연결

      고성능 잠금을 만들려면 WIFI_MODE_FULL_HIGH_PERFcreateWifiLock() 호출

  • 교통정보 더보기 <ph type="x-smartling-placeholder">
      </ph>
    • 이제 애플리케이션에서 더 많은 네트워크 사용 유형의 통계에 액세스할 수 있습니다. TrafficStats의 새 메서드 사용 애플리케이션은 UDP 통계, 패킷 카운트, TCP 송수신 페이로드 바이트 및 세그먼트를 정의하는 데 사용됩니다.
  • SIP 인증 사용자 이름 <ph type="x-smartling-placeholder">
      </ph>
    • 이제 애플리케이션에서 프로필의 SIP 인증 사용자 이름을 가져오고 설정할 수 있습니다. 사용 새 메서드 getAuthUserName()setAuthUserName()입니다.

다운로드 관리자

  • 완료된 다운로드 처리 <ph type="x-smartling-placeholder">
  • 크기별로 정렬된 다운로드 항목 표시 <ph type="x-smartling-placeholder">
      </ph>
    • 애플리케이션은 다음과 같은 방법으로 다운로드 애플리케이션을 크기별 정렬 모드로 시작할 수 있습니다. ACTION_VIEW_DOWNLOADS 인텐트에 새로운 추가 INTENT_EXTRAS_SORT_BY_SIZE를 추가합니다.

IME 프레임워크

  • 입력 방법의 추가 값 키 가져오기 <ph type="x-smartling-placeholder">

미디어

  • 새로운 스트리밍 오디오 형식 <ph type="x-smartling-placeholder">
      </ph>
    • 미디어 프레임워크는 원시 ADTS AAC 콘텐츠에 대한 기본 지원을 추가합니다. 스트리밍 오디오가 향상되고 FLAC 오디오도 지원됩니다. 무손실 압축 오디오 콘텐츠를 말합니다. 지원되는 미디어 형식을 참고하세요. 문서를 참조하세요.

실행 컨트롤 중지됨 응용 프로그램

Android 3.1부터 시스템의 패키지 관리자는 애플리케이션을 제어할 수 있는 수단을 제공하는 백그라운드 프로세스 및 다른 애플리케이션에서 실행되는 것을 볼 수 있습니다

애플리케이션의 중지된 상태는 액티비티의 중지된 상태와 같지 않습니다. 있습니다. 시스템은 이 두 가지 중지된 상태를 별도로 관리합니다.

플랫폼은 발신자가 지정할 수 있는 두 가지 새로운 인텐트 플래그를 정의합니다. 중지 상태의 구성요소를 활성화할 수 있도록 인텐트가 허용되어야 하는지 여부 애플리케이션입니다.

인텐트에 이러한 플래그 중 어느 것도 정의되어 있지 않거나 둘 다 정의되지 않은 경우 기본값은 중지된 애플리케이션의 필터를 파악할 수 있습니다.

시스템은 모든 브로드캐스트에 FLAG_EXCLUDE_STOPPED_PACKAGES 를 추가합니다. 인텐트를 참조하세요. 백그라운드 서비스의 브로드캐스트를 실수로 또는 불필요하게 중단된 애플리케이션의 구성 요소를 실행하는 경우. 백그라운드 서비스나 애플리케이션은 브로드캐스트할 FLAG_INCLUDE_STOPPED_PACKAGES 플래그 인텐트를 지정할 수 있습니다.

애플리케이션은 처음 설치될 때 중지된 상태에 있지만 사용자가 수동으로 중지한 시점 (관리 애플리케이션).

애플리케이션 최초 실행 및 업그레이드 알림

플랫폼에서는 애플리케이션 최초 실행에 대한 개선된 알림을 추가하고 다음과 같은 두 가지 새로운 인텐트 작업을 통해 업그레이드됩니다.

  • ACTION_PACKAGE_FIRST_LAUNCH — 받는 사람 애플리케이션이 처음 실행될 때 애플리케이션의 설치 프로그램 패키지 (처음으로 중지된 상태를 벗어날 때)에 대한 응답입니다. 데이터 에는 패키지의 이름이 포함됩니다.
  • ACTION_MY_PACKAGE_REPLACED — 알림 최신 버전이 설치된 애플리케이션을 새 버전을 업로드할 수 있습니다 교체된 애플리케이션으로만 전송됩니다. 그것은 추가 데이터가 포함되지 않습니다. 이를 수신하려면 인텐트 필터를 선언하세요. 확인할 수 있습니다. 인텐트를 사용하여 애플리케이션을 올바른 실행 상태로 되돌립니다.

    이 인텐트는 애플리케이션이 중지된 상태가 아닌 시작 상태일 때 업그레이드되었습니다.

핵심 유틸리티

  • LRU 캐시 <ph type="x-smartling-placeholder">
      </ph>
    • 새로운 LruCache 클래스를 사용하면 애플리케이션의 이점을 누릴 수 있습니다. 효율적으로 캐시할 수 있습니다. 애플리케이션은 클래스를 사용하여 합리적인 데이터를 유지하면서도 네트워크에서 데이터를 캐시된 데이터의 메모리 사용량. LruCache는 캐시입니다. 는 제한된 수의 값에 대한 강력한 참조를 보유합니다. 값이 큐의 헤드로 이동합니다 전체 해당 큐의 끝에 있는 값이 제거되어 가비지 컬렉션입니다.
  • 파일 설명자: int <ph type="x-smartling-placeholder">

WebKit

  • 파일 스키마 쿠키 <ph type="x-smartling-placeholder">
      </ph>
    • 이제 CookieManagerfile: URI 스킴 setAcceptFileSchemeCookies()를 사용하여 다음 작업을 할 수 있습니다. 인스턴스를 생성하기 전에 파일 스키마 쿠키 지원 사용/사용 중지 (WebView 또는 CookieManager) CookieManager 인스턴스에서 파일 스킴 쿠키가 있는지 확인할 수 있습니다. allowFileSchemeCookies()를 호출하여 사용 설정됩니다.
  • 로그인 요청 알림 <ph type="x-smartling-placeholder">
      </ph>
    • Android 3.0에 도입된 브라우저 자동 로그인 기능을 지원하기 위해 새 상품 메서드 onReceivedLoginRequest() 호스트는 사용자의 자동 로그인 요청이 처리된 애플리케이션입니다.
  • 삭제된 클래스 및 인터페이스 <ph type="x-smartling-placeholder">
      </ph>
    • 공개 API에서 여러 클래스와 인터페이스가 항상 사용 설정되어 있어야 합니다 API 참조 차이점 보고서를 참조하세요.

브라우저

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

  • HTML5에 삽입된 동영상의 인라인 재생 지원 <video> 태그 가능한 경우 재생은 하드웨어 가속화됩니다.
  • 모든 사이트 (모바일 및 합니다.

새로운 기능 상수

플랫폼에 개발자가 선언할 수 있는 새로운 하드웨어 기능 상수가 추가됨 Google과 같은 외부 주체에 정보를 제공하기 위해 지원되는 새로운 하드웨어 기능에 대한 애플리케이션 요구사항 설명 사용할 수 있습니다. 개발자는 이러한 기능 및 기타 기능을 선언 <uses-feature> 매니페스트 요소에 상수를 포함해야 합니다.

  • android.hardware.usb.accessory — 애플리케이션이 USB API를 사용하여 USB 및 USB를 통해 연결된 외부 하드웨어 기기와 호스트 역할을 합니다
  • android.hardware.usb.host - 애플리케이션이 USB API를 사용합니다. USB를 통해 연결된 외부 하드웨어 장치와 통신하고 기기에서 사용할 수 있습니다.

Google Play는 <uses-feature> 매니페스트 요소에 선언된 기능을 기반으로 애플리케이션을 필터링합니다. 자세한 내용은 애플리케이션 매니페스트에서 기능을 선언하는 방법은 Google Play 필터.

API 차이점 보고서

Android 3.1 (API)의 모든 API 변경사항을 자세히 살펴보려면 수준 API 참조 차이점 보고서를 참조하세요.

API 수준

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

Android 3.1에 도입된 API를 애플리케이션에서 사용하려면 Android 라이브러리에 대해 애플리케이션을 컴파일하고 지원합니다. 필요에 따라 예상 android:minSdkVersion="12"도 추가해야 합니다. 속성을 <uses-sdk> 요소에 추가합니다. 합니다.

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