ANDROID源码编译3 - 编译和运行

来源:互联网 发布:淘宝天猫超市优惠券 编辑:程序博客网 时间:2024/06/06 19:28

编译Android系统的基本顺序如下,

 

初始化

 

使用envsetup.sh脚本来初始化环境。

[plain] view plain copy print?
  1. $ source build/envsetup.sh  


或者

[plain] view plain copy print?
  1. $ . build/envsetup.sh  


选择编译目标

 

使用lunch命令来选择编译目标。确切的配置可以作为参数传进去,如:

[plain] view plain copy print?
  1. $ lunch full-eng  


上面的例子是一个针对emulator的完整的编译,包括所有的调试信息都是使能的。

如果不带参数运行lunch,将会提示选择编译目标。

所有的编译目标使用BUILD-BUILDTYPE的格式来指定,其中BUILD指向一个特定的功能组合,如下所示:

Build Name

Device

Notes

generic

emulator

一般普通的配置

full

emulator

完整配置,包括所有的语言、应用和输入法

full_crespo

crespo

完整配置,运行在Nexus S("Crespo")

 

BUILDTYPE是下列之一:

BuildtypeUseuser有限制的访问,适合于产品userdebug和user相似,但是有root访问和调试能力,适合于调试eng开发配置,包含额外的调试工具

 

关于更多为在实际设备上运行编译的信息,请参考http://source.android.com/source/building-devices.html

 

编译代码

 

使用make来编译代码。GNU make能够使用-jN参数来指定并发任务数,通常来说N的取值是计算机上准备用来进行编译的硬件核心的1到2倍。例如,在双E5520的机器上(2个CPU,每个CPU有4个core,每个core有2个thread),最快速的编译可以指定为make -j16或者make -j32。

 

[plain] view plain copy print?
  1. $ make -j4  


(snowolf_538:我在四核的机器上面指定make -j8,确实很快,4个核心都跑到100%)

 

运行

 

你可以在emulator上运行或者把它烧进实际的设备中运行。请注意你已经通过lunch选择了编译的目标,最好不要在一个不同的平台上运行。

 

烧进设备

我们使用fastboot来烧进设备。首先把设备置于fastboot模式,这可以通过按住特定的按键组合来实现,也可以通过以下shell命令。

[plain] view plain copy print?
  1. $ adb reboot bootloader  

 

一旦设备处于fastboot模式,运行

[plain] view plain copy print?
  1. $ fastboot flashall -w  


-w选项将擦除设备上的/data分区,这在第一次烧进设备的时候有用,但以后就不需要了。

关于更多为在实际设备上运行编译的信息,请参考http://source.android.com/source/building-devices.html

 

模拟ANDROID设备

 

emulator将会在编译过程中自动添加到你的PATH路径里,运行

[plain] view plain copy print?
  1. $ emulator  

来源:http://blog.csdn.net/snowolf_538/article/details/6698359




0 0