现在的位置: 首页 > 综合 > 正文

构建和运行

2013年04月21日 ⁄ 综合 ⁄ 共 2268字 ⁄ 字号 评论关闭

构建系统

构建命令的基本序列如下:

初始化

初始化环境用 envsetup.sh 脚本。注意替换源用一个单一点节省了几个字符,和短的是更普遍的用在文档。

$ source build/envsetup.sh

$ . build/envsetup.sh

选择一个目标

选择哪个目标构建 lunch。确切的配置能作为一个参数被通过,例如,

$ lunch full-eng

上面的例子指一个完整的模拟器构建,和所有调试使能。

假如运行没有参数,lunch 将提示你选择一个目标从菜单。

所有构建目标采取 BUILD-BUILDTYPE, BUILD 是一个特定功能组合的代号:

构建名 设备 Notes
full 模拟器 全部配置所有语言,应用,输入法
full_maguro maguro 全构建运行在 Galaxy Nexus GSM/HSPA+ ("maguro")
full_panda panda 全构建运行在 PandaBoard ("panda")

构建类型 使用
user 有限访问;适合产品
userdebug 像 "user" 但是有 root 访问和调试行;调试首选
eng 开发配置用附加调试工具

更多信息关于构建为和运行在实际硬件,看构建设备
编译代码

构建一切红 make。GNU make 能处理并行任务用一个 -jN 参数,和他是常见用于一些任务, N 是 1 和 2 倍,被用来构建电脑硬件线程数。例如,在一个 E5520 机器(2 个 CPU,4核心每个 CPU,2 线程每个核心),最快的构建是使用命令在make -j16 和 make -j32 之间。
$ make -j4
运行它!

你可一运行你的构建在一个模拟器或烧写到一个设备。请注意你有已经选择你的构建目标用 lunch,它是不大不可能的编译运行在一个不同的目标。
烧写一个设备

烧写一个设备,你将需要用 fastboot,应该被包括在你的一个成功编译之后的路径。让设备在到 fastboot 模式,手动的按住恰当的键组合在开机时,或从 shell 用
$ adb reboot bootloader

一旦设备是在 fastboot 模式,运行
$ fastboot flashall -w

-w 选项擦除设备上的 /data 分区,你的第一次烧写一个特定的设备这是有用的,否则是不必要的。

更多信息关于构建为和运行在一个实际硬件,看为设备构建
模拟一个 Android设备

模拟器是自动的添加到你的路径在构建过程。运行模拟器,打字
$ emulator
用 ccache

ccache 十一个编译器缓存为 C 和 C++ ,能帮组 make 构建更快。在源码树的根,做如下:
$ export USE_CCACHE=1
$ export CCACHE_DIR=/<path_of_your_choice>/.ccache
$ prebuilt/linux-x86/ccache/ccache -M 20G

你能 watch ccache 被用来做下面的:
$ watch -n1 -d prebuilt/linux-x86/ccache/ccache -s

OSX 上,你应该替换 linux-x86 用 darwin-x86。
解决常见构建错误
Java版本错误

假如你正试图构建 froyo 或更早的用 Java 1.6,或 gingerbread 或后来的用 Java 1.5,make 将终止和一个消息像这样

************************************************************
You are attempting to build with the incorrect version
of java.

Your version is: WRONG_VERSION.
The correct version is: RIGHT_VERSION.

Please follow the machine setup instructions at

https://source.android.com/source/download.html

************************************************************

这可能造成这的原因

  • 初始化页安装指定更正 JDK 失败。构建 Android 需要 Sun JDK 5 或 6 取决于你正在构建的发布。

  • 你先前安装的另一个 JDK 在你的路径。你能移除冲突 JDK 从你的路径用:

    $ export PATH=${PATH/\/path\/to\/jdk\/dir:/}
    

Python 版本 3

Repo 是构建于特定功能从 Python 2.x 和不幸的是和 Python 3 不兼容,为了使用 repo,请安装 Python 2.x:

$ apt-get install python

不去分大小写文件系统

假如你正构建在一个 HFS 文件系统在 Mac OS X 上,你可能遭遇一个错误像这样

************************************************************
You are building on a case-insensitive filesystem.
Please move your source tree to a case-sensitive filesystem.
************************************************************

请跟着在初始化页的介绍创建一个区分大小写的磁盘镜像。

没有 USB权限

在大多数 Linux 系统,默认,未经授权的用户不能访问 USB 端口,假如你看到一个权限被拒绝错误,跟着在初始化页的介绍配置 USB 访问。

假如 adb 已经运行和获得规则设置后不能连接到设备,它能被杀死用 adb kill-server。这将导致 adb 重启用一个新配置。

抱歉!评论已关闭.