The ExtServices module updates framework components for core OS functionality such as notification ranking, autofill text-matching strategies, storage cache, package watchdog, and other services that run continually. This module is updatable, meaning it can receive updates to functionality outside of the normal Android release cycle.
Service components
In Android 10, the ExtServices module contains the following services.
In Android 11, the ExtServices module introduces two
service components: TextClassifierService
and
InlineSuggestionsRenderService
.
TextClassifierService
The
TextClassifierService
service component backs TextClassifier
APIs
and Android features such as smart text selection and smart suggestions in
notifications. The ExtServices module contains the default text classifier,
which is verified by the CTS test
TextClassifierPolicyTest.java
.
If needed, you can configure a custom text classifier service by specifying
config_defaultTextClassifierPackage
in
config.xml
.
Custom text classifiers can depend on the default text classifier by calling
TextClassifierService.getDefaultTextClassifierImplementation(Context)
to get an instance of it.
InlineSuggestionRenderService
The InlineSuggestionRenderService
service component enables Inline Suggestions
to be shown in the keyboard suggestion strip. This service is called to render a
View
object holding the Inline Suggestion for the new Inline Autofill flow.
The default implementation for this renderer service calls into
androidx.autofill.inline.Renderer
to render the suggestion. This behavior is verified by CTS tests in
/autofillservice/cts/inline/
.
Package name
Devices running Android 11 must set
config_servicesExtensionPackage
(in
frameworks/base/core/res/res/values/config.xml
) to the ExtServices package
name (com.android.ext.services
). This configuration change is verified by the
CTS test
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.
Module boundary
The ExtServices module boundary is in packages/modules/ExtServices
. Android
11 also moves several TextClassifier
implementation
classes out of frameworks/base/core/
.
Module format
In Android 11, the ExtServices module
(com.android.ext.services
) is in APEX
format. In Android 10, this module is in APK format.
Customizing
In Android 11, you can configure a custom text classifier service that calls the default Text Classifier (however, this isn't recommended). In Android 10, the ExtServices module doesn't provide customization options.
Testing
The Android Compatibility Test Suite (CTS) verifies ExtServices module functionality by running a comprehensive set of CTS tests on every module release. In addition, the Mainline Test Suite (MTS) also contains several ExtServices tests. The full list of ExtServices tests is as follows:
General ExtServices behavior. Verified by MTS test
mts-extservices.xml
.Config changes. Verified by the CTS test
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
.TextClassifier
config. Verified by CTS testcts/TextClassifierPolicyTest.java
.Autofill inline suggestion. Verified by CTS tests in
cts/inline/
.