Android编译之lunch命令

google官方给的编译步骤

官方的详细编译步骤见
http://source.android.com/source/building.html

按照google给出的编译步骤如下:

  1. source build/envsetup.sh:加载命令;这个命令是用来将envsetup.sh里的所有用到的命令加载到环境变量里去。
  2. lunch:选择平台编译选项
  3. make:执行编译

envsetup的作用

  1. 加载了编译时使用到的函数命令,如:help,lunch等
  2. 添加了两个编译选项:generic-eng和simulator,这两个选项是系统默认选项
  3. 查找vendor/<-厂商目录>/和vendor/<厂商目录>/build/目录下的vendorsetup.sh,如果存在的话,加载执行它,添加厂商自己定义产品的编译选项
    其实,上述第3条是向编译系统添加了厂商自己定义产品的编译选项,里面的代码就是:add_lunch_combo xxx-xxx。

如果要想定义自己的产品编译项,vendor目录下创建自己公司名字,然后在公司目录下创建一个新的vendorsetup.sh,在里面添加上自己的产品编译项。

lunch 后的选择的项的含义

lunch命令是envsetup.sh里定义的一个命令,用来让用户选择编译项,来定义Product和编译过程中用到的全局变量。
user:权限受限;适用于生产环境
userdebug:与“user”类似,但具有root权限和可调试性;是进行调试时的首选编译类型
eng:具有额外调试工具的开发配置

在main.mk里有说明,在Android的源码里,每一个目标(也可以看成工程)目录都有一个Android.mk的makefile,每个目标的Android.mk中有一个类型声明:LOCAL_MODULE_TAGS,这个TAGS就是用来指定,当前的目标编译完了属于哪个分类里。

编译

make -jN 开始编译。N根据自己的CPU来填适当的值。

猜你喜欢

转载自blog.csdn.net/yikezhuixun/article/details/129097181