Android源码下载和编译

来源:互联网 发布:腾讯2016微信数据报告 编辑:程序博客网 时间:2024/04/30 11:49

下载和编译环境

编译环境必须是64位的Linux
荐使用Ubuntu
Ubuntu系统版本不同,下载源代码和编译的配置也不相同
 
ubuntu12.04及以上版本
$ sudo apt-get installgitgnupg flex bisongperfbuild-essential \
  zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
  libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
  libgl1-mesa-dev g++-
multilib mingw32tofrodos \
  python-markdown libxml2-utils
xsltproc zlib1g-dev:i386
$
sudoln-s /usr/lib/i386-linux-gnu/mesa/libGL.so.1/usr/lib/i386-linux-gnu/libGL.so

 

ubuntu10.04-11.10

$ sudo apt-get installgit-core gnupg flex bison gperfbuild-essential \
  zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \
  x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev \
  libgl1-mesa-dev g++-
multilib mingw32tofrodos python-markdown \
  libxml2-utils
xsltproc
 

Ubuntu10.10

sudo ln -s /usr/lib32/mesa/libGL.so.1/usr/lib32/mesa/libGL.so

 
Ubuntu11.10
sudo apt-get install libx11-dev:i386
 
 
JDK的安装
 
不使用Ubuntu默认的JDK
使Google推荐的JDK 6JDK5
 
Java6: for Gingerbread and newer
$ sudoadd-apt-repository "deb http://archive.canonical.com/ lucidpartner"
$
sudoapt-get update
$
sudoapt-get installsun-java6-jdk
 
Java5: for Froyoand older
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy mainmultiverse"
$
sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy-updatesmain multiverse"
$
sudo apt-get update
$
sudo apt-get install sun-java5-jdk
 
note:Java6手动安装和配置
目前ubuntu不在支持通过apt-getinstall命令安装java6SDK
Oracle官网下载jdk-6u45-linux-x64.bin
安装完后修改环境变
 
源码下载
 
硬件推荐
由于android源码比较大,编译也需要占用大量的硬盘空间,推荐硬盘80G
2G以上
 
安装Repo
home目录下新建bin目录,并加入到系统的PATH环境变量中

$mkdir~/bin
$ PATH=~/bin:$PATH

下载Repo工具,添加可执行权限

$curl http://commondatastorage.googleapis.com/git-repo-downloads/repo >~/bin/repo
$
chmoda+x~/bin/repo

 

初始化repo客户端

创建工作目录,即源代码下载目录

$ mkdir WORKING_DIRECTORY
$ cd
WORKING_DIRECTORY

进入工作目录,运行repo init命令来初始化下载Android源代码的最新的主分支代码还是其他版本的分支代码

$ repo init -uhttps://android.googlesource.com/platform/manifest

Check out 最新的主分支代码

$ repo init -uhttps://android.googlesource.com/platform/manifest-bandroid-4.0.1_r1

通过-b 选项Check out 你需要的版本

后输入用户名和邮箱验证即可

 

下载代码

下载代码的命令很简单就一句

$repo sync

 

下载源代码可能会提示的错error: Exited sync due to fetch errors...

决方法:

1repo下载代码,支持断点续传,所有只需要重复执行repo sync命令即可

或者在源码目录下写一个重复执行repo sync令的脚本

2google官方做法,为了防止连接数过多,每个IP需要认证

第一步:从这里the password generator获取用户名和密码,前提是你在之前填写了你的真实姓名和邮箱

第二步:将上面的页面上以machine开头的两行复制到~/.netrc文件中

第三步:repo init -uhttps://android.googlesource.com/a/platform/manifest 多了个“/a”

然后就可以repo sync

特别注意.netrc文件是在用户的根目录下,root用户就是/目录

 

编译源代码

使用源码中的build/envsetup.sh配置编译所需环境

$source build/envsetup.sh

着执行lunch full-eng以明确我们待会儿编译的目标为emulator上的android系统。如果想编译能刷上真机的android系统,请参考http://source.android.com/source/building-devices.html
 
使用make开始编译。一般直接输入make开始编译就好.(官网上有说明,如果使用make -jn(n为某个自然数)可以多线程编译,但我使用make -j4有时会产生意想不到的错误.固我一般只用make直接开始编译)
 
make后会在源代码根目录下产生out文件夹,内有targethost两个子文件夹。target文件夹一般存放的是与手机端有关的make结果,host文件夹存放的是和pc端有关的内容。
 
 
运行模拟器
 
模拟器运行编译出来的系统

$emulator

 

参考

Android源码下载和编译官方文档

 

 

 

 

 

 
 
 

 

0 0
原创粉丝点击