1.3.5 编译Android上层系统源码
一般来讲,源码下载后就可以直接学习Android源代码了。但这样无法调试源码,也无法得知源码编译后生成的文件是什么。所以这里继续讲解Android源代码的编译流程,步骤如下。
步骤1 导入预设脚本。在终端中执行以下命令:
allong@android:~/android/jellybean$.build/envsetup.sh
注意 .后面有空格,“.”在Shell中是指令,使用方式是".filename",作用是从filename中读取指令并执行。读者也可以用"source build/envsetup.sh"代替,作用是一样的。
步骤2 指定产品名和编译变量。在终端中执行以下命令:
allong@android:~/android/jellybean$lunch
You're building on Linux
Lunch menu……pick a combo:
1.full-eng
2.full_x86-eng
3.vbox_x86-eng
4.full_stingray-userdebug
……(省略部分内容)
Which would you like?[full-eng]1(输入1)
注意 lunch是envsetup.sh脚本中提供的函数,负责设置一些环境变量,比如TARGET_PRODUCT、TARGET_BUILD_VARIANT等。
full表示完全编译,eng表示工程版。full-eng对应模拟器设备。
步骤3 编译全部源码。在终端中执行以下命令:
allong@android:~/android/jellybean$make-j8(开启8线程开始编译)
编译全部源码十分耗时,但这也是必需的,只能等待。下一节将讲解如何编译指定模块。