ExtServices

ExtServices 모듈은 알림 순위 지정, 텍스트 일치 자동 완성 전략, 저장소 캐시, 패키지 워치독, 지속적으로 실행되는 기타 서비스 등 핵심 OS 기능의 프레임워크 구성요소를 업데이트합니다. 이 모듈은 업데이트할 수 있습니다. 즉, 일반적인 Android 출시 주기 외에도 기능 업데이트를 받을 수 있습니다.

서비스 구성요소

ExtServices 모듈에는 다음과 같은 서비스가 포함되어 있습니다.

DisplayHashingService

Android 12에서는 DisplayHashingService를 사용하여 지정된 버퍼의 DisplayHash 인스턴스를 생성합니다. 이 서비스는 시스템에서 특정 디스플레이 해시를 생성했는지 확인하는 데도 사용됩니다. 호출자는 디스플레이 해시를 생성할 때 지원되는 해시 알고리즘 중 사용할 알고리즘을 지정할 수 있습니다.

TextClassifierService

TextClassifierService 서비스 구성요소는 TextClassifier API 및 Android 기능(알림 내 스마트 텍스트 선택 및 스마트 추천)을 지원합니다. ExtServices 모듈에는 CTS 테스트 TextClassifierPolicyTest.java를 통해 확인되는 기본 텍스트 분류 기준이 포함되어 있습니다.

필요한 경우 config.xmlconfig_defaultTextClassifierPackage를 지정하여 맞춤 텍스트 분류 기준 서비스를 구성할 수 있습니다. 맞춤 텍스트 분류 기준은 TextClassifierService.getDefaultTextClassifierImplementation(Context)를 호출하여 기본 텍스트 분류 기준을 가져오는 방법으로 기본 텍스트 분류 기준에 종속될 수 있습니다.

InlineSuggestionRenderService

InlineSuggestionRenderService 서비스 구성요소를 사용하면 인라인 추천을 키보드 추천란에 표시할 수 있습니다. 이 서비스가 호출되면 새로운 인라인 자동 완성 흐름에 인라인 추천을 보유하는 View 객체가 렌더링됩니다. 이 렌더기 서비스의 기본 구현은 androidx.autofill.inline.Renderer을 호출하여 추천을 렌더링합니다. 이 동작은 /autofillservice/cts/inline/에서 CTS 테스트를 통해 확인됩니다.

패키지 이름

Android 11을 실행하는 기기는 config_servicesExtensionPackage(frameworks/base/core/res/res/values/config.xml에 있음)를 ExtServices 패키지 이름(com.android.ext.services)으로 설정해야 합니다. 이 구성 변경은 CTS 테스트 cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java를 통해 확인됩니다.

모듈 경계

Android 12의 ExtServices 모듈 코드가 frameworks/base/apex/extservices(frameworks/base project의 하위 디렉터리) 및 packages/modules/ExtServices에서 이동되었습니다.

packages/modules/ExtServices의 새 프로젝트 구조는 다음과 같습니다.

  • apex/(frameworks/base/apex/extservices의 파일)
  • java/(packages/modules/ExtServices/res, packages/modules/ExtServices/src, packages/modules/ExtServices/tests의 파일 및 새 기능을 위한 파일)
  • jni/(새 기능을 위한 파일)
  • native/(새 기능을 위한 파일)

ExtServices 모듈 경계는 packages/modules/ExtServices에 있습니다. Android 11에서는 또한 몇몇 TextClassifier 구현 클래스를 frameworks/base/core/ 밖으로 옮겼습니다.

모듈 형식

Android 11에서 ExtServices 모듈(com.android.ext.services)은 APEX 형식입니다. Android 10에서 이 모듈은 APK 형식입니다.

맞춤설정

Android 11에서는 기본 텍스트 분류 기준을 호출하는 맞춤 텍스트 분류 기준 서비스를 구성할 수 있습니다(권장하지는 않음). Android 10에서 ExtServices 모듈은 맞춤설정 옵션을 제공하지 않습니다.

테스트

Android 호환성 테스트 모음(CTS)은 모든 모듈 버전에서 일련의 포괄적인 CTS 테스트를 실행하여 ExtServices 모듈 기능을 확인합니다. 또한 Mainline Test Suite(MTS)에 여러 ExtServices 테스트도 포함되어 있습니다. ExtServices 테스트의 전체 목록은 다음과 같습니다.