文章目录Android 快速搜索栏Quick Search Bar与 -1 屏幕—— 面向 OEM 合作伙伴的 Android 16 集成指南简介Introduction[1] 底部 QSB 放置Bottom QSB Placement[2] 显示或隐藏 QSBShow or Hide the QSB[3] 微件配置活动Widget configuration activity[4] -1 屏幕-1 Screen集成流程Integration procedure(1) 合并 Launcher3 QSB 代码变更Merge a Launcher3 QSB code change(2) 更新 GMS 包以合并 SearchLauncher 代码补丁Update the GMS bundle to merge a SearchLauncher code patch(3) 为底部 QSB 放置添加功能标志Add a feature flag for the bottom QSB placement(4) 构建与测试Building and testing支持选择屏幕Choice Screen功能(1) AGSA QSB(2) 当第三方 DSE 应用被删除时自动隐藏 QSBAuto-hiding QSB when the 3P DSE app is deletedAndroid 快速搜索栏Quick Search Bar与 -1 屏幕—— 面向 OEM 合作伙伴的 Android 16 集成指南简介IntroductionAOSP Launcher3 应用实现了 Android 快速搜索栏Quick Search BarQSB功能。该功能可以容纳来自某个在线搜索引擎Online Search EngineOSE应用例如 Google 应用或 Microsoft Bing 搜索应用的搜索微件widget并将其放置在主屏幕上使用户能够快速访问该 OSE 应用的搜索功能。本文档提供了详细的技术指南说明如何使用 GMS 包中包含的示例启动器实现——SearchLauncherQuickStep应用Android Go 设备上为SearchLauncherQuickStepGo。该实现将 AOSP Launcher3 应用与 Google 应用AGSA或 Google Go 应用集成在一起。它支持以下主要功能[1] 底部 QSB 放置Bottom QSB Placement将 QSB 放置在主屏幕底部的热座hotseat中。请注意开箱即用地将搜索微件放置在启动器工作区workspace区域中即浮动搜索微件实现也是可行的但本文档不涵盖该内容。图浮动搜索微件Floating search widget、启动器工作区Launcher workspace、应用 Dock 或热座Application Dock or Hotseat、位于热座中的 QSBQSB in the hotseat[2] 显示或隐藏 QSBShow or Hide the QSB如果用户长按 QSB会弹出一个包含隐藏搜索框Hide search box按钮的弹出菜单。点按此按钮会将 QSB 从热座中移除。当 QSB 被隐藏后用户可以长按工作区中的任意空白区域调出启动器设置菜单其中包含显示搜索框Show search box按钮。点按该按钮即可将 QSB 恢复到热座中。请注意在 QSB 被隐藏期间底层的搜索微件实际上会被删除。[3] 微件配置活动Widget configuration activity如果 QSB 中托管的搜索微件支持配置活动configuration activity用户可以通过长按 QSB 来访问它。请注意Google 搜索微件的配置活动并非在所有 OEM 设备上默认启用。如果您想在自己的设备上启用它请联系您的 Google 对接人。左图长按 QSB 会弹出包含配置活动入口的弹出菜单。右图Google 搜索微件的配置活动。[4] -1 屏幕-1 ScreenGoogle Discover功能默认集成在 -1 屏幕中。启动器设置页面中包含一个开关用于显示或隐藏 -1 屏幕。此功能同样由面向 Android Go 设备的 SearchLauncherQuickStepGo 应用支持。左图Google Discover 页面已集成在 -1 屏幕中。右图启动器设置菜单中提供了开启或关闭 -1 屏幕的开关。集成流程Integration procedure(1) 合并 Launcher3 QSB 代码变更Merge a Launcher3 QSB code changeAndroid 16 中原生vanilla的 AOSP Launcher3 默认将 QSB 放置在默认主屏幕Default Home ScreenDHS的顶部。您需要使用Android16-Launcher3-Bottom-QSB.patch补丁文件将其从 DHS 顶部移除并将一个 QSB 放置在热座中应用图标行的下方。请注意此补丁是基于AOSP Launcher3 的 Android 16 初始版本创建的。因此如果您使用的是不同版本的 AOSP Launcher3或您自己的定制启动器实现则应将所提供补丁中的所有更改移植到您的代码库中。假设补丁文件已下载到~/Downloads文件夹请使用以下命令应用已下载的补丁文件$cdpackages/apps/Launcher3# 为 QSB 创建一个本地分支$ repo start qsb.# 应用已下载的补丁$ patch-p1--no-backup-if-mismatch~/Downloads/Android16-Launcher3-Bottom-QSB.patch patchingfilequickstep/src/com/android/launcher3/taskbar/TaskbarView.java patchingfileres/drawable/ic_chevron_end.xml patchingfileres/drawable/ic_chevron_start.xml patchingfileres/layout/search_container_hotseat.xml patchingfileres/layout/search_container_taskbar.xml patchingfileres/layout/search_container_workspace.xml patchingfileres/values/dimens.xml patchingfileres/values/strings.xml patchingfilesrc/com/android/launcher3/DeviceProfile.java patchingfilesrc/com/android/launcher3/Hotseat.java patchingfilesrc/com/android/launcher3/InvariantDeviceProfile.java patchingfilesrc/com/android/launcher3/LauncherPrefs.kt patchingfilesrc/com/android/launcher3/qsb/QsbContainerView.java patchingfilesrc/com/android/launcher3/qsb/QsbWidgetHostView.java patchingfilesrc/com/android/launcher3/views/OptionsPopupView.java此补丁中的底部 QSB 实现符合所有适用的 QSB GMS 要求QSB GMS Requirements包括以下各项[GMSX-6.5-001.002]QSB 中的AppWidgetHost须将OPTION_APPWIDGET_HOST_CATEGORY设置为WIDGET_CATEGORY_SEARCHBOX。[GMSX-6.5-002.001]和[GMSX-6.5-002.002]热座行为Hotseat behavior。[GMSX-6.5-003.001]~[GMSX-6.5-003.005]请注意[GMSX-6.5-003.006]仅对 Android 17 设备有要求。[GMSX-6.5-004.002]此补丁支持 AGSA QSB 实现。[GMSX-6.5-004.003]当用户选择的第三方3PDSE 应用被删除时QSB 的回退fallback行为。(2) 更新 GMS 包以合并 SearchLauncher 代码补丁Update the GMS bundle to merge a SearchLauncher code patchSearchLauncher 是一段示例源代码包含在 GMS 包中用于演示如何将 AGSA 与您的启动器应用集成。我们对 GMS 包中的 SearchLauncher 代码及其他模块做了以下更改。这些更改将包含在未来的 GMS 包版本中新增了一个面向 Android Go 设备的构建目标SearchLauncherQuickStepGo。更新了 LauncherClient 库二进制文件以支持 Android Go 设备的 -1 屏幕功能。移除了 SearchLauncher 中过时的代码。新增了 4x6 工作区网格格式的示例主屏幕布局。更新了 GmsSampleIntegration overlay 模块以使用 4x6 网格。请下载gms-oem-B-16-202605-with-QSB-patch.zip文件该文件将 SearchLauncher 代码补丁添加到2026 年 5 月的 GMS 包版本中。在构建您的系统镜像时请使用下载的 GMS 包。(3) 为底部 QSB 放置添加功能标志Add a feature flag for the bottom QSB placementQSB GMS 要求[GMSX-6.5-001.001]规定如果您的构建支持底部 QSB 放置则必须声明一个 PackageManager 功能标志com.google.android.feature.qsb_at_bottom。只需向构建的系统镜像中添加一个如下所示的 sysconfig xml 文件即可轻松完成。GMS 包在partner_gms/etc/sysconfig/gms_express.xml文件中提供了类似标志的良好示例。?xml version1.0 encodingutf-8?configfeaturenamecom.google.android.feature.qsb_at_bottom//config(4) 构建与测试Building and testing完成 (1) 和 (2) 之后如果您的设备是直接以包含 SearchLauncherQuickStep 或 SearchLauncherQuickStepGo 目标构建的则只需重新构建系统镜像即可。否则您可能需要手动修改构建脚本将当前的启动器应用目标替换为 SearchLauncherQuickStep 或 SearchLauncherQuickStepGo。支持选择屏幕Choice Screen功能(1) AGSA QSB如果您的设备面向某个选择屏幕Choice Screen地区例如欧洲经济区 EEA 或日本则 QSB 中的搜索微件必须更换为在选择屏幕中被选定的默认搜索引擎Default Search EngineDSE应用的微件。在 Android 16 设备上此行为由 Google 应用AGSA中一个特定的微件提供程序widget provider组件支持。因此根据 GMS 要求[GMSX-6.5-003.002]必须使用以下微件提供程序组件非 Go 设备Google 应用中的com.google.android.googlequicksearchbox.SearchWidgetProvider。Go 设备Google Go 应用中的com.google.android.apps.searchlite.widget.SearchLiteWidgetProvider。以下截图展示了 DSE 选择屏幕功能如何与底部 QSB 实现协同工作图注从左至右在开机向导SUW的选择屏幕中选择默认 OSE 应用在所选 OSE 应用下载期间Google 搜索微件会发生变化在所选 OSE 应用安装完成后QSB 中的搜索微件开始支持已安装的 OSE 应用当用户点按 QSB 时会启动该 OSE 应用。(2) 当第三方 DSE 应用被删除时自动隐藏 QSBAuto-hiding QSB when the 3P DSE app is deleted如果用户选择的第三方3PDSE 应用被删除QSB 中的搜索微件将无法再支持该 DSE 应用。当发生这种情况时QSB GMS 要求[GMSX-6.5-004.003]规定为了获得最佳用户体验必须自动隐藏 QSB。本文档中的 Android 16 AOSP Launcher3 补丁按如下方式支持此要求当用户选择的第三方 DSE 应用被删除时AGSA 会从 Play 商店应用接收此事件。随后AGSA 会禁用其微件提供程序组件。QsbContainerView.java文件中的QsbWidgetHost类通过onAppWidgetRemoved()回调方法接收此事件。最后在移除与该微件关联的所有视图后QSB 会变为禁用状态。如果用户在此状态下重新启用 QSB则 QSB 实现必须在WIDGET_CATEGORY_SEARCHBOX类别中选择任何可用的搜索微件提供程序而无需询问用户。如果对你有帮助就一键三连呗关注点赞收藏我会持续更新更多干货~~