《AOSP上手》 2、Framework 开发小需求 “去掉原生 Launcher 中的 google 搜索栏”

AOSP 上手 day2:去掉原生 Launcher 中的 google 搜索栏

引言:

day1 运行完后,咱们的 Android 10 的 aosp 是这样的:

现在的需求是:去掉上面的这个 google 搜索框

很多产品,比如用于仓库,电商,物流的 pda 等,更多的是考虑功能性和稳定性,UI 的美观和易用性是其次的。这些产品一般是不会重新开发和定制 Launcher 的,但是会对 Launcher 做一些修改,比如一个常见的需求是: 去掉原生 Launcher 中的 google 搜索栏。

再加上 google 搜索栏在中国是没有办法使用的。在中国销售的产品,肯定是要把它去掉的。

修改方法:

第一步:注释掉布局内的文件

修改文件 packages/apps/Launcher3/res/layout/search_container_workspace.xml,将以下内容注释掉:

ini 复制代码
<!-- <fragment android:name="com.android.launcher3.qsb.QsbContainerView$QsbFragment"
android:layout_width="match_parent" 
android:tag="qsb_view"
android:layout_height="match_parent"/> -->

如下:

第二步:注释掉相关java代码中的文件

修改文件:packages/apps/Launcher3/src/com/android/launcher3/Workspace.java 将以下内容注释掉

ini 复制代码
// CellLayout.LayoutParams lp = new CellLayout.LayoutParams(0, 0, firstPage.getCountX(), 1);
// lp.canReorder = false; 
// if (!firstPage.addViewToCellLayout(qsb, 0, R.id.search_container_workspace, lp, true)) {
// Log.e(TAG, "Failed to add to item at (0, 0) to CellLayout"); 
// }

如下:

第三步:重新编译源码,启动模拟器

go 复制代码
make -j16 
emulator

可以看到 Google 搜索框没有了。

总结

为什么这么改就可以去掉这个Google 搜索栏了?

其实办法就一个------读源码。

Launcher 也是一个 Android 应用,和我们平时开发的 App 没有本质的区别。 就像我们接手别人开发的项目,去解决项目中的 bug,添加新的需求是一样的。

Android Framework 不同的是,代码量大,涉及知识广泛,App 开发同学如果没有人指导,阅读起来比较吃力。

后续内容我们一起由浅入深,步步分解,慢慢解开 Android Framework 的神秘面纱。

相关推荐
zhaoshuzhaoshu2 小时前
Android 系统启动与调试中的日志抓取方式全解析
android
雨声不在3 小时前
android 动画掉帧
android
在多学一点4 小时前
MYSQL第二次作业
android·数据库·mysql
骑着蜗牛撵大象3274 小时前
MySQL 8.0 迁移后 SQL 变慢:执行计划里 3 类被忽略的成本差异
android·数据库·sql·mysql·优化器·执行计划
我叫张土豆4 小时前
Android 14+ 模拟器抓包实录:把 Burp CA 装成系统 CA,让 targetSdk≥34 的 App 乖乖解密
android
booboosui8 小时前
Android 悬浮窗藏不住自己:一个标志位与 140 毫秒
android
传奇开心果8 小时前
【Flutter踩坑排雷】第5课:扩展方法冲突坑|同名扩展引发编译歧义,故障规避手段
android·flutter
.痞老板.11 小时前
mysql初阶--数据类型
android·数据库·mysql
StarsGreen11 小时前
Android 启动流程详解
android·linux·单片机·嵌入式硬件
booboosui1 天前
Android 上来电怎么判:7 个条件加 5 个中文词
android