ExtServices 모듈은 알림 순위 지정, 텍스트 일치 자동 완성 전략, 저장소 캐시, 패키지 워치독, 지속적으로 실행되는 기타 서비스 등 핵심 OS 기능의 프레임워크 구성요소를 업데이트합니다. 이 모듈은 업데이트할 수 있습니다. 즉, 일반적인 Android 출시 주기 외에도 기능 업데이트를 받을 수 있습니다.
Android 12에서는 DisplayHashingService를 사용하여 지정된 버퍼의 DisplayHash 인스턴스를 생성합니다. 이 서비스는 시스템에서 특정 디스플레이 해시를 생성했는지 확인하는 데도 사용됩니다. 호출자는 디스플레이 해시를 생성할 때 지원되는 해시 알고리즘 중 사용할 알고리즘을 지정할 수 있습니다.
InlineSuggestionRenderService 서비스 구성요소를 사용하면 인라인 추천을 키보드 추천란에 표시할 수 있습니다. 이 서비스가 호출되면 새로운 인라인 자동 완성 흐름에 인라인 추천을 보유하는 View 객체가 렌더링됩니다.
이 렌더기 서비스의 기본 구현은 androidx.autofill.inline.Renderer을 호출하여 추천을 렌더링합니다. 이 동작은 /autofillservice/cts/inline/에서 CTS 테스트를 통해 확인됩니다.
Android 11에서는 기본 텍스트 분류 기준을 호출하는 맞춤 텍스트 분류 기준 서비스를 구성할 수 있습니다(권장하지는 않음). Android 10에서 ExtServices 모듈은 맞춤설정 옵션을 제공하지 않습니다.
테스트
Android 호환성 테스트 모음(CTS)은 모든 모듈 버전에서 일련의 포괄적인 CTS 테스트를 실행하여 ExtServices 모듈 기능을 확인합니다. 또한 Mainline Test Suite(MTS)에 여러 ExtServices 테스트도 포함되어 있습니다. ExtServices 테스트의 전체 목록은 다음과 같습니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# ExtServices\n\nThe ExtServices module updates framework components for core OS functionality,\nsuch as notification ranking, autofill text-matching strategies, storage cache,\npackage watchdog, and other services that run continually. This module is\nupdatable, meaning it can receive updates to functionality outside of the normal\nAndroid release cycle.\n\nService components\n------------------\n\nThe ExtServices module contains the following services.\n\n- [`DisplayHashingService`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/java/android/service/displayhash/DisplayHashingService.java) starting in Android 12\n\n- [`TextClassifierService`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/java/android/service/textclassifier/TextClassifierService.java) starting in Android 11\n\n- `InlineSuggestionsRenderService` starting in\n Android 11\n\n- [`AutofillFieldClassificationService`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/java/android/service/autofill/AutofillFieldClassificationService.java) starting in\n Android 10\n\n- [`NotificationAssistantService`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/java/android/service/notification/NotificationAssistantService.java) starting in\n Android 10\n\n- [`ResolverRankerService`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/java/android/service/resolver/ResolverRankerService.java) starting in\n Android 10\n\n- [`CacheQuotaService`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/java/android/app/usage/CacheQuotaService.java)\n starting in Android 10\n\n### DisplayHashingService\n\nIn Android 12, `DisplayHashingService` is used to\ngenerate an instance of `DisplayHash` for the specified buffer. It's also used\nto verify that a specific display hash was generated by the system. When\ngenerating a display hash, the caller can specify which of the supported\nhashing algorithms it wishes to use.\n\n### TextClassifierService\n\nThe\n[`TextClassifierService`](/docs/core/display/textclassifier)\nservice component backs [`TextClassifier`\nAPIs](https://developer.android.com/reference/android/view/textclassifier/package-summary)\nand Android features such as smart text selection and smart suggestions in\nnotifications. The ExtServices module contains the default text classifier,\nwhich is verified by the CTS test\n[`TextClassifierPolicyTest.java`](https://android.googlesource.com/platform/cts/).\n\nIf needed, you can configure a custom text classifier service by specifying\n`config_defaultTextClassifierPackage` in\n[`config.xml`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/res/res/values/config.xml).\nCustom text classifiers can depend on the default text classifier by calling\n[`TextClassifierService.getDefaultTextClassifierImplementation(Context)`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/core/java/android/service/textclassifier/TextClassifierService.java)\nto get an instance of it.\n| **Note:** We recommend that devices use the default text classifier and don't specify `config_defaultTextClassifierPackage`.\n\n### InlineSuggestionRenderService\n\nThe `InlineSuggestionRenderService` service component enables Inline Suggestions\nto be shown in the keyboard suggestion strip. This service is called to render a\n`View` object holding the Inline Suggestion for the new Inline Autofill flow.\nThe default implementation for this renderer service calls into\n[`androidx.autofill.inline.Renderer`](https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-master-dev/autofill/autofill/src/main/java/androidx/autofill/inline/Renderer.java)\nto render the suggestion. This behavior is verified by CTS tests in\n[`/autofillservice/cts/inline/`](https://android.googlesource.com/platform/cts/+/refs/tags/android-r-preview-3/tests/autofillservice/).\n\nPackage name\n------------\n\nDevices running Android 11 must set\n`config_servicesExtensionPackage` (in\n`frameworks/base/core/res/res/values/config.xml`) to the ExtServices package\nname (`com.android.ext.services`). This configuration change is verified by the\nCTS test\n[`cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java`](https://android.googlesource.com/platform/cts/).\n| **Note:** The Android 11 version of the ExtServices module already contains this configuration change.\n\nModule boundary\n---------------\n\nIn Android 12, the ExtServices\nmodule code is moved from `frameworks/base/apex/extservices`\n(this is a subdirectory of the `frameworks/base project`)\nand\n`packages/modules/ExtServices`.\n\nThe new project structure for `packages/modules/ExtServices` is as follows:\n\n- `apex/` (files from `frameworks/base/apex/extservices`)\n- `java/` (files from `packages/modules/ExtServices/res`, `packages/modules/ExtServices/src`, `packages/modules/ExtServices/tests`, and files for new feature)\n- `jni/` (files for new feature)\n- `native/` (files for new feature)\n\nThe ExtServices module boundary is in `packages/modules/ExtServices`. Android\n11 also moves several `TextClassifier` implementation\nclasses out of `frameworks/base/core/`.\n\nModule format\n-------------\n\nIn Android 11, the ExtServices module\n(`com.android.ext.services`) is in [APEX](/docs/core/ota/apex)\nformat. In Android 10, this module is in APK format.\n\nCustomization\n-------------\n\nIn Android 11, you can configure a custom text\nclassifier service that calls the [default text\nclassifier](#textclassifierservice) (however, this isn't recommended). In\nAndroid 10, the ExtServices module doesn't provide\ncustomization options.\n\nTesting\n-------\n\nThe Android Compatibility Test Suite (CTS) verifies ExtServices module\nfunctionality by running a comprehensive set of CTS tests on every module\nrelease. In addition, the Mainline Test Suite (MTS) also contains several\nExtServices tests. The full list of ExtServices tests is as follows:\n\n- Config changes. Verified by the CTS test\n [`cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java`](https://android.googlesource.com/platform/cts/).\n\n- `TextClassifier` config. Verified by CTS test\n [`cts/TextClassifierPolicyTest.java`](https://android.googlesource.com/platform/cts/).\n\n- Autofill inline suggestion. Verified by CTS tests in\n [`cts/inline/`](https://android.googlesource.com/platform/cts/+/refs/tags/android-r-preview-3/tests/autofillservice/)."]]