ExtServices 模塊更新核心操作系統功能的框架組件,例如通知排名、自動填充文本匹配策略、存儲緩存、包看門狗和其他持續運行的服務。此模塊是可更新的,這意味著它可以在正常的 Android 發布週期之外接收功能更新。
服務組件
ExtServices 模塊包含以下服務。
從 Android 12 開始的
DisplayHashingService
從 Android 11 開始的
TextClassifierService
從 Android 11 開始的
InlineSuggestionsRenderService
從 Android 10 開始的
AutofillFieldClassificationService
從 Android 10 開始的
NotificationAssistantService
從 Android 10 開始的
ResolverRankerService
CacheQuotaService
從 Android 10 開始
顯示哈希服務
在 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 測試驗證。