AOSP Framework开发的一些超方便的快捷命令

在系统源码中发现的一些命令和快捷方式。我们在编译源码之前执行的source build/envsetup.sh,通过cat build/envsetup.sh发现如下命令

- lunch:      lunch <product_name>-<build_variant>Selects <product_name> as the product to build, and <build_variant> as the variant tobuild, and stores those selections in the environment to be read by subsequentinvocations of 'm' etc.
- tapas:      tapas [<App1> <App2> ...] [arm|x86|arm64|x86_64] [eng|userdebug|user]Sets up the build environment for building unbundled apps (APKs).
- banchan:    banchan <module1> [<module2> ...] [arm|x86|arm64|x86_64] [eng|userdebug|user]Sets up the build environment for building unbundled modules (APEXes).
- croot:      Changes directory to the top of the tree, or a subdirectory thereof.
- m:          Makes from the top of the tree.
- mm:         Builds and installs all of the modules in the current directory, and theirdependencies.
- mmm:        Builds and installs all of the modules in the supplied directories, and theirdependencies.To limit the modules being built use the syntax: mmm dir/:target1,target2.
- mma:        Same as 'mm'
- mmma:       Same as 'mmm'
- provision:  Flash device with all required partitions. Options will be passed on to fastboot.
- cgrep:      Greps on all local C/C++ files.
- ggrep:      Greps on all local Gradle files.
- gogrep:     Greps on all local Go files.
- jgrep:      Greps on all local Java files.
- ktgrep:     Greps on all local Kotlin files.
- resgrep:    Greps on all local res/*.xml files.
- mangrep:    Greps on all local AndroidManifest.xml files.
- mgrep:      Greps on all local Makefiles and *.bp files.
- owngrep:    Greps on all local OWNERS files.
- rsgrep:     Greps on all local Rust files.
- sepgrep:    Greps on all local sepolicy files.
- sgrep:      Greps on all local source files.
- godir:      Go to the directory containing a file.
- allmod:     List all modules.
- gomod:      Go to the directory containing a module.
- pathmod:    Get the directory containing a module.
- outmod:     Gets the location of a module's installed outputs with a certain extension.
- dirmods:    Gets the modules defined in a given directory.
- installmod: Adb installs a module's built APK.
- refreshmod: Refresh list of modules for allmod/gomod/pathmod/outmod/installmod.
- syswrite:   Remount partitions (e.g. system.img) as writable, rebooting if necessary.

1. lunch

lunch <product_name>-<build_variant>
​​功能​​:选择要构建的产品和构建变体
​​参数​​:
<product_name>:产品名称(如 aosp_arm、sdk_phone_x86)
<build_variant>:构建类型(eng、userdebug、user)
​​作用​​:设置环境变量,配置后续构建命令

2. tapas

tapas [ …] [arm|x86|arm64|x86_64] [eng|userdebug|user]
​​功能​​:设置构建独立应用(APK)的环境
​​典型用例​​:开发特定应用而不构建整个系统
​​示例​​:tapas Settings arm64 eng仅构建 Settings 应用

3. banchan

banchan [ …] [arm|x86|arm64|x86_64] [eng|userdebug|user]
​​功能​​:设置构建独立模块(APEX)的环境
​​新增功能​​:用于模块化开发(Android 10+)
​​示例​​:banchan com.android.apex.test arm64 eng

4. croot

​​功能​​:快速回到源码树根目录
​​使用场景​​:在深层目录中快速返回顶层
​​等效命令​​:cd $ANDROID_BUILD_TOP

构建命令

5. m

​​功能​​:从源码树根目录开始完整构建
​​等效命令​​:make -j$(nproc)
​​优化​​:自动检测 CPU 核心数并行构建

6. mm

​​功能​​:构建当前目录下的模块及其依赖
​​特点​​:不构建整个系统,只构建相关模块
​​使用场景​​:快速迭代开发单个模块

7. mmm

mmm <目录1> [<目录2> …]
​​功能​​:构建指定目录下的模块
​​高级用法​​:mmm dir/:target1,target2指定构建目标
​​示例​​:mmm packages/apps/Settings

8. mma

​​功能​​:与 mm相同,构建当前目录模块

9. mmma

​​功能​​:与 mmm相同,构建指定目录模块

10. provision

provision [fastboot选项]
​​功能​​:刷写设备所有必需分区
​​特点​​:封装了 fastboot 命令,简化刷机流程
​​示例​​:provision -w擦除用户数据
代码搜索工具

11. cgrep

​​搜索范围​​:所有 C/C++ 文件(*.c, *.cpp, *.h)
​​示例​​:cgrep "main"查找所有 main 函数

12. ggrep

​​搜索范围​​:所有 Gradle 文件(*.gradle)
​​用途​​:查找构建配置相关代码

13. gogrep

​​搜索范围​​:所有 Go 文件(*.go)
​​新增功能​​:支持 Go 语言开发(如 Fuchsia 相关)

14. jgrep

​​搜索范围​​:所有 Java 文件(*.java)
​​最常用​​:Java 代码搜索

15. ktgrep

​​搜索范围​​:所有 Kotlin 文件(*.kt)
​​新增功能​​:支持 Kotlin 代码搜索

16. resgrep

​​搜索范围​​:所有资源 XML 文件(res/*.xml)
​​用途​​:查找资源定义

17. mangrep

​​搜索范围​​:所有 AndroidManifest.xml 文件
​​用途​​:查找应用配置信息

18. mgrep

​​搜索范围​​:所有 Makefile 和 *.bp 文件
​​用途​​:查找构建系统配置

19. owngrep

​​搜索范围​​:所有 OWNERS 文件
​​用途​​:查找代码所有者信息

20. rsgrep

​​搜索范围​​:所有 Rust 文件(*.rs)
​​新增功能​​:支持 Rust 代码搜索

21. sepgrep

​​搜索范围​​:所有 sepolicy 文件
​​用途​​:查找安全策略配置

22. sgrep

​​搜索范围​​:所有源文件
​​通用搜索​​:全代码库搜索

导航与模块管理

23. godir

godir <文件名>
​​功能​​:跳转到包含指定文件的目录
​​智能匹配​​:支持部分文件名匹配
​​示例​​:godir AndroidManifest.xml

24. allmod

​​功能​​:列出所有可用模块
​​输出​​:模块名和路径的列表

25. gomod

gomod <模块名>
​​功能​​:跳转到指定模块的目录
​​示例​​:gomod Settings

26. pathmod

pathmod <模块名>
​​功能​​:获取模块所在目录路径
​​用途​​:在脚本中使用模块路径

27. outmod

outmod <模块名> [扩展名]
​​功能​​:获取模块输出文件路径
​​示例​​:outmod Settings .apk获取 Settings APK 路径

28. dirmods

dirmods <目录>
​​功能​​:列出指定目录定义的所有模块
​​用途​​:查看目录中的可构建目标

29. installmod

installmod <模块名>
​​功能​​:通过 adb 安装模块构建的 APK
​​自动化​​:构建 + 安装一步完成
​​示例​​:installmod Settings

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/98320.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/98320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Protues仿真】基于AT89C52单片机的数码管驱动事例

目录 0案例视频效果展示 1 AT89C52单片机驱动单个数码管 1.1 数码管基础知识 1.1.1外观与引脚 1.1.2 共阴(CC) vs 共阳(CA) 1.1.3段码表(以数字1为例) 1.1.4驱动方式A. 直连IO(最简单,占用IO多)一个段一根线,共阴或共阳公共端固定接GND/VCC。适合单个数码管、…

01-Redis 发展简史与核心定位解析:从诞生到三大产品矩阵

目录引言一、Redis 的起源与发展&#xff1a;从定制工具到开源生态二、Redis 的核心定位&#xff1a;不止是缓存的多面手三、Redis 三大产品矩阵&#xff1a;按需选择的完整解决方案3.1 Redis Open Source&#xff08;社区版&#xff09;&#xff1a;入门与轻量场景首选3.2 Red…

记录jilu~

centos1、安装最小版Linux 安装必要工具yum -install -y epel-releaseyum -install -y net-toolsyum -install -y vim2、修改hostname hostnamectl net-hostname newhostname3、网络配置文件&#xff0c;网关 &#xff0c; 使用ip &#xff0c;dns。。/etc/sysconfig/network-s…

【Linux基础】fdisk命令详解:从入门到精通的磁盘分区管理完全指南

目录 前言 1 fdisk命令概述 1.1 什么是fdisk 1.2 fdisk的应用场景 1.3 fdisk与其他分区工具的比较 2 fdisk命令的安装与基本语法 2.1 在不同Linux发行版中安装fdisk 2.2 fdisk的基本语法 3 fdisk命令参数详解 3.1 主要参数说明 3.2 交互式命令 4 fdisk操作流程详解…

Flowable 工作流引擎

1、核心类 Flowable 引擎通过 ProcessEngine 作为总入口点&#xff0c;提供了多个核心服务接口&#xff0c;每个服务都负责特定的功能领域&#xff1a;服务名称 (Service Name)主要功能 (Main Functionality)关键操作 (Key Operations)RepositoryService管理流程定义和部署&…

(RDFS)随机深度特征选择方法解释:简而言之,RDFS主要针对的是恶意的服务器,它建立在客户端是诚实的前提下。

1. 随机深度特征选择是怎么实现的&#xff1f;随机深度特征选择 是一种在分布式机器学习&#xff08;特别是联邦学习&#xff09;中用于保护客户端数据隐私的技术。它的核心思想是&#xff1a;在每一轮训练中&#xff0c;每个客户端随机选择模型的一个子集&#xff08;即“深度…

C++20格式化字符串:std::format的使用与实践

在C编程中&#xff0c;字符串格式化是一项常见的任务。在C20引入std::format之前&#xff0c;开发者通常依赖于一些传统的解决方案&#xff0c;如printf系列函数、sstream&#xff0c;或者第三方库如boost.format。然而&#xff0c;这些方法在代码可读性、类型安全性和灵活性方…

【漏洞复现】CVE-2025-8088|WinRAR 路径穿越漏洞:从原理到蓝屏攻击全流程

【漏洞复现】CVE-2025-8088&#xff5c;WinRAR 路径穿越漏洞&#xff1a;从原理到蓝屏攻击全流程 前言 WinRAR 作为 Windows 平台最常用的压缩管理工具之一&#xff0c;几乎是每台电脑的 “标配软件”。但在 2025 年 8 月&#xff0c;一款影响范围覆盖 WinRAR 0 至 7.12 全版本…

uniapp中使用echarts并且支持pc端的拖动、拖拽和其他交互事件

npm install echarts -D ​ // "echarts": "^5.3.2", [推荐版本] // "zrender": "^5.3.2" [如果报错的话就安装这个]<template><view class"container"><view id"myChart" class"chart"…

Qt中QProxyStyledrawControl函数4个参数的意义

Qt中QProxyStyle::drawControl函数4个参数的意义 我们来详细解释一下 Qt 中 QProxyStyle::drawControl 函数的四个参数。 这个函数是 Qt 样式系统中的一个核心方法&#xff0c;用于绘制标准 UI 元素&#xff08;如按钮、复选框、菜单栏等&#xff09;。当你继承 QProxyStyle 并…

idf-esp32 PWM呼吸灯(LEDC头文件)

相关宏和变量#define LED_PIN GPIO_NUM_3 #define LEDC_CHANNEL LEDC_CHANNEL_0 #define LEDC_TIMER LEDC_TIMER_0 #define LEDC_MODE LEDC_LOW_SPEED_MODE #define LEDC_DUTY_RES LEDC_TIMER_13_BIT // 2^13 8192级亮度 #define LEDC_FREQUENCY 50…

PLC_博图系列☞基本指令”S_ODTS:分配保持型接通延时定时器参数并启动“

PLC_博图系列☞基本指令”S_ODTS&#xff1a;分配保持型接通延时定时器参数并启动“ 文章目录PLC_博图系列☞基本指令”S_ODTS&#xff1a;分配保持型接通延时定时器参数并启动“背景介绍S_ODTS&#xff1a; 分配保持型接通延时定时器参数并启动说明参数脉冲时序图示例关键字&a…

OneCode 可视化揭秘系列(三):AI MCP驱动的智能工作流逻辑编排

OneCode 可视化揭秘系列&#xff08;三&#xff09;&#xff1a;AI MCP驱动的智能工作流逻辑编排 引言 在前两篇系列博文中&#xff0c;我们详细探讨了OneCode可视化动作的基础配置与界面设计&#xff0c;以及组件交互与数据流管理。在本篇文章中&#xff0c;我们将深入剖析逻辑…

TypeORM、Sequelize、Hibernate 的优缺点对比:新手常见 SQL 与 ORM 踩坑总结

1. ORM 与关系型数据库&#xff08;MySQL、PostgreSQL&#xff09; 的使用 SQL 语句编写&#xff08;JOIN、GROUP BY、索引使用、事务控制&#xff09;与 ORM 映射&#xff08;如 Sequelize、TypeORM、Hibernate&#xff09;之间的差异会让新手非常纠结&#xff1b;尤其是理解…

JavaScript 创建型设计模式详解

1. 单例模式1.1. 使用场景在前端开发中&#xff0c;全局状态管理、配置信息、数据库连接等往往需要在应用中只存在一个实例&#xff0c;避免多次实例化带来的数据不一致性。例如&#xff0c;在一个前端应用中&#xff0c;全局的 loading 状态通常需要一个单例模式来确保其唯一性…

k8s除了主server服务器可正常使用kubectl命令,其他节点不能使用原因,以及如何在其他k8s节点正常使用kubectl命令??

kubectl 并不是“只能”在主节点&#xff08;Control Plane Node&#xff09;使用&#xff0c;而是因为它需要访问 Kubernetes 的 kube-apiserver&#xff0c;而 kube-apiserver 通常只在主节点上运行并监听内部网络。简单来说kubectl 需要连接 kube-apiserver&#xff01;&…

Custom SRP - Complex Maps

https://catlikecoding.com/unity/tutorials/custom-srp/complex-maps/1 创建材质球我们的材质已经支持光照,并且支持 Albedo 和 Emission 贴图.创建材质球,并应用下面的电路板的图分别作为 albedo emission设置材质球的金属度为 1 , 光滑度为 0.952 Mask Map在 albedo 图上的不…

repo 学习教程

你现在会用 git 了&#xff0c;接下来学 repo&#xff08;Google 推出来的多仓库管理工具&#xff09;&#xff0c;其实就是在 Git 的基础上做了一层封装&#xff0c;方便同时管理很多 Git 仓库。像 Android 源码、Rockchip 全套 SDK 都是靠 repo 来拉取和管理的。 我给你分几个…

[SWERC 2020] Safe Distance题解

[SWERC 2020] Safe Distance 题意 给定 NNN 个点与一个坐标 (X,Y)(X,Y)(X,Y)&#xff0c;求从点 (0,0)(0,0)(0,0) 到点 (X,Y)(X,Y)(X,Y) 规划一条路线&#xff0c;不能走出 (0,0)(0,0)(0,0) 与 (X,Y)(X,Y)(X,Y) 间形成的矩形&#xff0c;使得通过这条路线时距离最近的点的距离…

Rewind-你人生的搜索引擎

本文转载自&#xff1a;Rewind-你人生的搜索引擎 - Hello123工具导航 ** 一、&#x1f50d; Rewind 是什么&#xff1f;你的数字记忆增强神器 Rewind 是一款人工智能驱动的个人记忆助手&#xff0c;就像为你配备了一个「数字第二大脑」。它能自动记录、保存并索引你在电脑和手…