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_servicesExtensionPackageframeworks/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/extservicesframeworks/base project のサブディレクトリ)と packages/modules/ExtServices から移動しています。

packages/modules/ExtServices の新しいプロジェクトの構造は次のとおりです。

  • apex/frameworks/base/apex/extservices のファイル)
  • java/packages/modules/ExtServices/respackages/modules/ExtServices/srcpackages/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 テストの全一覧は次のとおりです。