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 テストによって検証済みです。