ExtServices モジュールにより、通知のランキング、自動入力のためのテキスト マッチング戦略、ストレージ キャッシュ、パッケージ ウォッチドッグ、継続的に実行されるその他のサービスなど、コア OS 機能に関するフレームワーク コンポーネントが更新されます。このモジュールは更新可能です。つまり、通常の Android リリース サイクル外で機能のアップデートを受信できます。
サービス コンポーネント
ExtServices モジュールには次のサービスが含まれています。
DisplayHashingService
(Android 12 以降)TextClassifierService
(Android 11 以降)InlineSuggestionsRenderService
(Android 11 以降)AutofillFieldClassificationService
(Android 10 以降)NotificationAssistantService
(Android 10 以降)ResolverRankerService
(Android 10 以降)CacheQuotaService
(Android 10 以降)
DisplayHashingService
Android 12 では、DisplayHashingService
を使用して、指定バッファに対する DisplayHash
のインスタンスを生成します。また、このコードを使用して、特定のディスプレイ ハッシュがシステムで生成されたことも確認します。ディスプレイ ハッシュを生成する際、呼び出し元は、サポートされているハッシュ アルゴリズムのうち、どれを使用するかを指定できます。
TextClassifierService
TextClassifierService
サービス コンポーネントは、TextClassifier
API とスマート テキスト選択や通知に関するスマート候補などの Android の機能をサポートします。ExtServices モジュールには、CTS テスト TextClassifierPolicyTest.java
で検証されるデフォルトのテキスト分類が含まれています。
必要に応じて、config.xml
で config_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 テストの全一覧は次のとおりです。
構成の変更CTS テスト
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
によって検証済みです。TextClassifier
の構成。CTS テストcts/TextClassifierPolicyTest.java
によって検証済みです。インライン候補を自動入力します。
cts/inline/
の CTS テストによって検証済みです。