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
來算繪建議。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) 會對每個模組版本執行全套 CTS 測試,驗證 ExtServices 模組功能。此外,主線測試套件 (MTS) 也包含多項 ExtServices 測試。ExtServices 測試的完整清單如下:
設定變更。通過 CTS 測試驗證
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
。TextClassifier
config。通過 CTS 測試驗證cts/TextClassifierPolicyTest.java
。自動填入內嵌建議。已通過 CTS 測試,詳情請參閱
cts/inline/
。