外部服務

ExtServices 模組更新核心作業系統功能的框架元件,例如通知排名、自動填充文字匹配策略、儲存快取、包看門狗和其他持續運行的服務。該模組是可更新的,這意味著它可以在正常的 Android 發布週期之外接收功能更新。

服務組件

ExtServices 模組包含以下服務。

顯示哈希服務

在 Android 12 中, DisplayHashingService用於為指定緩衝區產生DisplayHash實例。它也用於驗證系統是否產生了特定的顯示雜湊。產生顯示雜湊時,呼叫者可以指定它希望使用哪種受支援的雜湊演算法。

文字分類器服務

TextClassifierService服務元件支援TextClassifier API和 Android 功能,例如智慧文字選擇和通知中的智慧建議。 ExtServices 模組包含預設的文字分類器,該分類器由 CTS 測試TextClassifierPolicyTest.java進行驗證。

如果需要,您可以透過在config.xml中指定config_defaultTextClassifierPackage來設定自訂文字分類器服務。自訂文字分類器可以透過呼叫TextClassifierService.getDefaultTextClassifierImplementation(Context)來取得預設文字分類器的實例,從而依賴預設文字分類器。

內嵌建議渲染服務

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/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 模組的功能。此外,主線測試套件 (MTS) 還包含多個 ExtServices 測試。 ExtServices 測試的完整清單如下: