Android 10 根文件系统和编译系统(三):Android 常见编译命令

配套系列教学视频链接:

Android 10.0 AOSP源码编译:https://edu.csdn.net/course/detail/35479

Android 10.0 根文件系统和编译系统:https://edu.csdn.net/course/detail/35480 


说明

系统:AOSP Android10.0

设备:Android模拟器

前言

本章节重点介绍Android源码中进行编译时,所需要用到各种编译命令。


一, 代码编译

编译指令

解释

hmm

帮助命令

m

在源码树的根目录执行编译

mm

编译当前路径下所有模块,但不包含依赖

mmm  [module_path]

编译指定路径下所有模块,但不包含依赖

mma

编译当前路径下所有模块,且包含依赖

mmma [module_path]

编译指定路径下所有模块,且包含依赖

make  [module_name]

无参数,则表示编译整个Android代码,否则就是编译特定模块

建议:首次编译时采用make/mma/mmma编译;当依赖模块已经编译过的情况,则使用mmm/mm编译

二, 模块的编译指令

模块

make 命令

mmm命令

init

make init

mmm system/core/init

zygtoe

make app_process

mmm frameworks/base/cmds/app_process

system_server

make services

mmm frameworks/base/services

Java framework

make framework

mmm frameworks/base

framework资源

make framework-res

mmm frameworks/base/core/res

jni framework

make libandroid_runtime

mmm frameworks/base/core/jni

Binder

make libbinder

mmm frameworks/native/libs/binder

Settings

make  Settings

mmm packages/apps/Settings

三,清除命令

编译指令

解释

make installclean

删除out/target/product/产品/中的所有img文件, system,vendor,data,相关文件, 保留中间文件

如:out/target/product/产品/obj/等

make clean

彻底删除,相当于rm –rf out/,  make clobber有一样的效果

make clean-模块

清楚单个特定模块, 时间比较慢,最好多线程编译,  也可以直接用 rm删除

如删除某个内置apk:

rm  -rf out/target/product/产品/obj/APPS/app的名字

rm –rf out/target/product/产品/system/app/app 名字

四,搜索命令

搜索命令

解释

cgrep  [keyword]

所有C/C++文件执行搜索操作

jgrep [keyword]

所有Java文件执行搜索操作

ggrep [keyword]

所有Gradle文件执行搜索操作

mgrep [keyword]

所有Android.mk文件执行搜索操作

sepgrep [keyword]

所有sepolicy文件执行搜索操作

resgrep [keyword]

所有本地res/*.xml文件执行搜索操作

五, 编译配置命令

搜索命令

解释

check_product [product]

检查产品是否有效

get_abs_build_var  [build_var]

获取系统中的编译变量的值

printconfig

打印当前选择的产品配置

add_lunch_combo [product]

将某个产品加入到用户选项中

六,镜像的编译指令

模块

make 命令

boot.img

make bootimage

system.img

make systemimage 

或者make snod(更快的直接生成system.img, 不管out/target/product/xx/system是否有变化)

ramdisk.img

make ramdisk

userdata.img

make userdataimage 

super.img

make superimage 

或者make supernod(更快的直接生成super.img, 不管文件是否有变化)

总结

Android命令比较多,基本都是通过build/envsetup.sh这个脚本中产生, 感兴趣的朋友,可以直接去读取脚本内容。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旗浩QH

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值