m, mm以及mmm编译命令以及make snod的使用

1)编译指定Package

Android源码目录下的build/envsetup.sh文件,描述编译的命令

croot   

切到Android源码树的根目录(当你深入Android源码树的子目录,想回到根目录的时候此命令就非常实用了)

m

相当于在源码树的根目录执行make,并且该命令不一定要在根目录下执行

mm

编译当前目录路径下的所有模块(包括include进来的,但是不包括存在依赖关系模块)

mma

编译当前目录路径下的所有模块(包括include进来的,且包括存在依赖关系模块)

编译frameworks/base需要使用该命令,否则编译失败。

mmm[module_path]

编译指定目录路径下的所有模块(包括include进来的,但是不包括存在存在依赖关系模块)

mmma[module_path]

编译指定目录路径下的所有模块(包括include进来的,包括存在存在依赖关系模块)

cgrep

对C/C++文件执行grep(即grep的时候只搜寻C/C++文件类型,注意这里也包括.h文件类型)

jgrep

对Java文件执行grep(即grep的时候只搜寻Java文件类型)

resgrep

在所有res/.xml文件上执行 grep即grep的时候只搜寻res/.xml文件类型)

printconfig

显示当前Android编译的相关配置信息

add_lunch_combo

在lunch命令的的菜单中添加一个条目
 

这里我们对上述表格中的不包括存在依赖关系模块::
1.依赖关系模块这个要怎么说呢,这里我们举个栗子!譬如模块A的编译需要依赖模块B,此时的B是一个so库。
2.假如我们通过mm或者mmm编译模块A的时候,此时B模块还没有编译那么此时就会报错
3.假如我们使用的是mma或者mmma编译模块A,假如依赖的模块B还没有编译,那么会先将模块B编译OK,然后编译模块A(当然这里只是举栗子,可能A还依赖C,D同理也会先编译)
 

要想使用这些命令,首先需要在android源码根目录执行. build/envsetup.sh 脚本设置环境

下面举个例子说明,假设我要编译android下的packages/apps/Settings模块,当前目录为源码根目录,方法如下:

usera@usera-desktop:~/workspace$ source build/envsetup.sh

usera@usera-desktop:~/workspace$ mmm packages/apps/Settings/

...

Processing target/product/generic/obj/APPS/SettingsTests_intermediates/package.apk

Done!

Install: out/target/product/generic/data/app/SettingsTests.odex

Install: out/target/product/generic/data/app/SettingsTests.apk

make:离开目录“/home/usera/workspace”

或者

usera@usera-desktop:~/workspace$ source build/envsetup.sh

usera@usera-desktop:~/workspace$ cd packages/apps/Settings/

usera@usera-desktop:~/workspace/packages/apps/Settings$ mm

2)重新生成sysem.img

使用make snod,重新生成system.img

usera@usera-desktop:~/workspace$ make snod

make snod: ignoring dependencies

Target system fs image: out/target/product/generic/system.img

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值