当前位置: 首页 > article >正文

Android 10 Launcher3 删除谷歌搜索

命令行获取页面

手机处于launcher首页
adb shell dumpsys window | findstr mCurrentFocus
输出
mCurrentFocus=Window{9afb34d u0 com.android.launcher3/com.android.launcher3.Launcher}

找到源码路径

packages/apps/Launcher3/
Android10源码 搜索控件
grep -r -n AppsSearchContainerLayout
跳转:Ctrl+左键在这里插入图片描述

使用AS的Layout Inspector神器

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

查找手机中的路径

adb shell pm path com.android.launcher3

编译

mm -j8 WITH_DEXPREOPT=false

在这里插入图片描述
out/target/product/nanopc-t4/product/priv-app/Launcher3QuickStep/Launcher3QuickStep.apk

提取手机APK

adb pull /product/priv-app/Launcher3QuickStep/Launcher3QuickStep.apk

反编译验证

在这里插入图片描述

在这里插入图片描述

应用变体

在这里插入图片描述

推送

注意手机系统是推送这个,不是上面说的
out/target/product/nanopc-t4/product/priv-app/Launcher3QuickStep/Launcher3QuickStep.apk

而是Launcher3.apk
在这里插入图片描述

命令行打开源码位置

在这里插入图片描述

上传123

在这里插入图片描述

如果推送后无效果可以试着将如下文件夹删除后重启
在这里插入图片描述

效果如下

在这里插入图片描述

探究mm指令
#  
# Copyright (C) 2013 The Android Open Source Project  
#  
# Licensed under the Apache License, Version 2.0 (the "License");  
# you may not use this file except in compliance with the License.  
# You may obtain a copy of the License at  
#  
#      http://www.apache.org/licenses/LICENSE-2.0  
#  
# Unless required by applicable law or agreed to in writing, software  
# distributed under the License is distributed on an "AS IS" BASIS,  
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
# See the License for the specific language governing permissions and  
# limitations under the License.  
#  

# 设置当前目录路径  
LOCAL_PATH := $(call my-dir)  

#  
# 构建插件库的规则(需要编写插件)。  
#  
include $(CLEAR_VARS)  # 清除之前的变量设置  
LOCAL_USE_AAPT2 := true  # 使用 AAPT2 工具  
LOCAL_AAPT2_ONLY := true  # 仅使用 AAPT2  
LOCAL_MODULE_TAGS := optional  # 模块标记为可选  
LOCAL_STATIC_JAVA_LIBRARIES := PluginCoreLib  # 静态 Java 库依赖  

# 指定源文件,递归查找 src_plugins 目录下的所有 Java 文件  
LOCAL_SRC_FILES := \
    $(call all-java-files-under, src_plugins)  

LOCAL_SDK_VERSION := current  # 当前 SDK 版本  
LOCAL_MIN_SDK_VERSION := 28  # 最小 SDK 版本  
LOCAL_MODULE := LauncherPluginLib  # 模块名称  

include $(BUILD_STATIC_JAVA_LIBRARY)  # 构建静态 Java 库  

#  
# 构建 Launcher3 依赖库的规则。  
#  
include $(CLEAR_VARS)  # 清除之前的变量设置  
LOCAL_USE_AAPT2 := true  # 使用 AAPT2 工具  
LOCAL_AAPT2_ONLY := true  # 仅使用 AAPT2  
LOCAL_MODULE_TAGS := optional  # 模块标记为可选  

# 静态 Android 库依赖  
LOCAL_STATIC_ANDROID_LIBRARIES := \
    androidx.recyclerview_recyclerview \
    androidx.dynamicanimation_dynamicanimation \
    androidx.preference_preference \
    iconloader_base  

LOCAL_STATIC_JAVA_LIBRARIES := LauncherPluginLib  # 静态 Java 库依赖  

# 指定源文件,查找 protos 和 proto_overrides 目录下的所有 proto 文件  
# 以及 src_build_config 目录下的所有 Java 文件  
LOCAL_SRC_FILES := \
    $(call all-proto-files-under, protos) \
    $(call all-proto-files-under, proto_overrides) \
    $(call all-java-files-under, src_build_config)  

LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res  # 资源目录  

LOCAL_PROGUARD_ENABLED := disabled  # 禁用 Proguard  
LOCAL_PROTOC_OPTIMIZE_TYPE := nano  # Protobuf 优化类型  
LOCAL_PROTOC_FLAGS := --proto_path=$(LOCAL_PATH)/protos/ --proto_path=$(LOCAL_PATH)/proto_overrides/  # Protobuf 编译选项  
LOCAL_PROTO_JAVA_OUTPUT_PARAMS := enum_style=java  # Protobuf Java 输出参数  

LOCAL_SDK_VERSION := current  # 当前 SDK 版本  
LOCAL_MIN_SDK_VERSION := 21  # 最小 SDK 版本  
LOCAL_MODULE := Launcher3CommonDepsLib  # 模块名称  
LOCAL_PRIVILEGED_MODULE := true  # 特权模块  
LOCAL_MANIFEST_FILE := AndroidManifest-common.xml  # 清单文件  

include $(BUILD_STATIC_JAVA_LIBRARY)  # 构建静态 Java 库  

#  
# 构建 Launcher3 应用的规则。  
#  
include $(CLEAR_VARS)  # 清除之前的变量设置  
LOCAL_USE_AAPT2 := true  # 使用 AAPT2 工具  
LOCAL_MODULE_TAGS := optional  # 模块标记为可选  

# 静态 Android 库依赖  
LOCAL_STATIC_ANDROID_LIBRARIES := \
    Launcher3CommonDepsLib \
    SecondaryDisplayLauncherLib  

# 指定源文件,查找 src 目录下的所有 Java 文件  
# 以及 src_shortcuts_overrides 和 src_ui_overrides 目录下的所有 Java 文件  
LOCAL_SRC_FILES := \
    $(call all-java-files-under, src) \
    $(call all-java-files-under, src_shortcuts_overrides) \
    $(call all-java-files-under, src_ui_overrides) \
    $(call all-java-files-under, src_flags)  

LOCAL_PROGUARD_FLAG_FILES := proguard.flags  # Proguard 配置
最后

保持耐心,多次尝试,学习是一个渐进的过程,不要气馁,做好笔记

其他

https://juejin.cn/post/7107239279432040478#heading-14


http://www.kler.cn/a/446639.html

相关文章:

  • Android 搭建AIDL Client和Server端,双向通信
  • 投标心态:如何在“标海战术”中保持清醒的头脑?
  • 猫头虎分享:读孙凝晖院士《人工智能与智能计算的发展》有感
  • 阿里云百炼大模型生成贪吃蛇小游戏
  • 基于SpringBoot+Vue实现的个人备忘录系统
  • 【计算机网络】期末考试预习复习|中
  • c++中如何处理对象的创建与销毁的时机?
  • Python发送带key的kafka消息
  • TCP为什么需要三次握手和四次挥手?
  • 创新性融合丨卡尔曼滤波+目标检测 新突破!
  • C/C++语言基础--C++STL库之仿函数、函数对象、bind、function简介
  • 单元测试(C++)——gmock通用测试模版(个人总结)
  • Spring(三)-SpringWeb-概述、特点、搭建、运行流程、组件、接受请求、获取请求数据、特殊处理、拦截器
  • python实现word转html
  • AI大模型进一步推动了AI在处理图片、视频、音频、文本的等数据应用
  • 【新教程】非root用户给Ubuntu server设置开机自启服务-root用户给Ubuntu server设置开机自启服务
  • ArcGIS计算土地转移矩阵
  • 详细解释爬虫中的异常处理机制?
  • Rabbitmq实现延迟队列
  • Leetcode2545:根据第 K 场考试的分数排序
  • 26、基于SpringBoot的在线文档管理系统的设计与实现
  • R 基础运算
  • 基于卷积神经网络(CNN)和ResNet50的水果与蔬菜图像分类系统
  • 机器视觉检测相机基础知识 | 颜色 | 光源 | 镜头 | 分辨率 / 精度 / 公差
  • Leetcode 串联所有单词的子串
  • 【windows】sonarqube起不来的问题解决