ExtServices 模組會更新核心 OS 功能的架構元件,例如通知排名、自動填入文字比對策略、儲存空間快取、套件監控程式,以及其他持續執行的服務。本單元 可更新,意味著可接收非正常功能的更新 Android 發布週期。
服務元件
ExtServices 模組包含下列服務。
DisplayHashingService
自 Android 12 起從 Android 11 開始的
TextClassifierService
InlineSuggestionsRenderService
自 Android 11 起AutofillFieldClassificationService
後開始 Android 10NotificationAssistantService
(Android 10 以上版本)ResolverRankerService
(Android 10 以上版本)CacheQuotaService
從 Android 10 開始
DisplayHashingService
在 Android 12 中,DisplayHashingService
會用於為指定緩衝區產生 DisplayHash
例項。這項參數也用於驗證系統是否產生特定顯示雜湊。產生顯示雜湊時,呼叫端可以指定要使用的支援雜湊演算法。
TextClassifierService
TextClassifierService
服務元件可支援 TextClassifier
API 和 Android 功能,例如通知中的智慧文字選取和智慧建議。ExtServices 模組包含預設的文字分類器
經 CTS 測試驗證
TextClassifierPolicyTest.java
。
如有需要,您可以設定自訂文字分類器服務,方法是指定
config_defaultTextClassifierPackage
英吋
config.xml
。
自訂文字分類器可以使用以下呼叫,依賴預設的文字分類器:
TextClassifierService.getDefaultTextClassifierImplementation(Context)
就能取得該執行個體的執行個體
InlineSuggestionRenderService
InlineSuggestionRenderService
服務元件可讓內嵌建議顯示在鍵盤建議列中。系統會呼叫這項服務,以顯示新的內嵌自動填入流程內嵌建議的 View
物件。這個轉譯器服務的預設實作會呼叫 androidx.autofill.inline.Renderer
,以顯示建議內容。此行為是由以下項目的 CTS 測試驗證:
/autofillservice/cts/inline/
。
套件名稱
搭載 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 Compatibility Test Suite (CTS) 可驗證 ExtServices 模組 針對每個模組執行完整的 CTS 測試 版本。此外,Mainline Test Suite (MTS) 也包含多種 ExtServices 測試。ExtServices 測試的完整清單如下:
設定變更。經 CTS 測試
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
驗證。TextClassifier
設定。經 CTS 測試驗證cts/TextClassifierPolicyTest.java
。自動填入內文建議。經 CTS 測試驗證:
cts/inline/
。