首页 > 代码库 > Android源码编译过程
Android源码编译过程
http://my.oschina.net/zhoulc/blog/170698
http://jingyan.baidu.com/article/c85b7a641200e0003bac95a3.html
注意:
1,不要使用64位ubuntu
2,务必分配4g或者以上的swap空间
系统定制基本流程:获取源码 --> 修改源码(包括修改和裁剪)--> 编译修改后的源码 --> 得到目标系统文件 --> 移植系统 --> 测试成功 --> 完成
一,源码下载
谷歌搜索download android source code,第一个结果就是官方文档(http://source.android.com/source/downloading.html)教你怎么下载源码,大概步骤如下:
1,在当前用户的home目录下创建一个文件夹来保存一写可执行文件,并把该文件夹加到环境变量中;
mkdir ~/bin
PATH=~/bin:$PATH
2,安装curl,安装git,下载Repo;
sudo apt-get install curl
sudo apt-get install git
如果要使用代理:
curl -x 127.0.0.1:8087 http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
不使用代理:
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
当然还要让repo具有可执行权限:
chmod a+x ~/bin/repo
3,创建一个文件夹来存储Android源码
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
4,初始化仓库信息,并设置要下载的版本
repo init -u https://android.googlesource.com/platform/manifest
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
PS:repo设置代理的方式:
export HTTP_PROXY=127.0.0.1:8087
export HTTPS_PROXY=127.0.0.1:8087
5,同步Android源码
repo sync
PS:同步过程中如果中断不用担心,使用repo sync可以继续同步,同步过程中同步内容是隐藏的,到源码同步目录按Ctrl+h可以查看隐藏内容;我下载的是android-4.0.1_r1大概有11g多,用了差不多十个小时;电信20M+代理大概3个小时下载完成
二,编译环境的配置
编译过程值得注意的就是使用32位系统以及保证充足的内存空间!!!
Android编译需要非常多的依赖,这里列出我编译时用到的依赖以及一些问题
1,安装基本依赖支持
sudo apt-get install build-essential make libc6-dev
sudo apt-get install bison patch texinfo libncurses-dev
sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip
sudo apt-get install gnupg ncurses-dev zlib1g-dev valgrind
2,jdk的安装
由于甲骨文收购了sun公司,然后把google告了所以Android的jdk平台最多只能达到1.6也就是jdk6,所以用jdk7是不行的,如果android版本比较低可能还需要使用jdk5,这里简绍使用jdk6;
(1),谷歌搜索jdk-6u45-linux-i586.bin下载jdk6安装包(甲骨文官方没有找到)
(2),把安装包拷贝到~/bin目录下
(3),赋予安装包执行权限
chmod a+x ~/bin/jdk-6u45-linux-i586.bin
(4),执行安装包
~/bin/jdk-6u45-linux-i586.bin
(5),执行完成后会在bin目录下生成jdk-1.60_45这个目录把这个目录下的bin目录配置到环境变量中
PATH=~/bin/jdk-1.60_45/bin:$PATH
执行java命令检查是否安装成功
3,gcc和g++的安装
由于ubuntu自带的g++和gcc版本过高,所以无法正常的编译源码,这里需要安装4.4.6版本
(1),移除自带的gcc和g++
sudo apt-get remove gcc
sudo apt-get remove g++
(2),安装4.4版本的gcc和g++
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
(3),为4.4版本的gcc和g++建立连接
cd /usr/bin
sudo rm gcc
sudo rm g++
sudo rm cc
sudo ln gcc-4.4 gcc
sudo ln gcc-4.4 cc
sudo ln g++-4.4 g++
三,源码编译
cd ~/bin/WORKING_DIRECTORY
(-j4是指定线程数量,如果电脑性能好可以写成-j8什么的)
make -j4
Android源码编译过程