ExtServices 模組更新核心作業系統功能的框架元件,例如通知排名、自動填充文字匹配策略、儲存快取、包看門狗和其他持續運行的服務。該模組是可更新的,這意味著它可以在正常的 Android 發布週期之外接收功能更新。
服務組件
ExtServices 模組包含以下服務。
從 Android 12 開始的
DisplayHashingService
從 Android 11 開始的
TextClassifierService
從 Android 11 開始
InlineSuggestionsRenderService
從 Android 10 開始的
AutofillFieldClassificationService
從 Android 10 開始,
NotificationAssistantService
從 Android 10 開始,
ResolverRankerService
從 Android 10 開始的
CacheQuotaService
顯示哈希服務
在 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/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 模組的功能。此外,主線測試套件 (MTS) 還包含多個 ExtServices 測試。 ExtServices 測試的完整清單如下:
配置更改。透過 CTS 測試
cts/tests/tests/os/src/android/os/cts/RequiredComponentsTest.java
進行驗證。TextClassifier
配置。透過 CTS 測試cts/TextClassifierPolicyTest.java
驗證。自動填充內聯建議。透過
cts/inline/
中的 CTS 測試進行驗證。