Android源码和内核源码的下载,编译和执行

生也有涯,知也无涯。这篇文章主要讲述Android源码和内核源码的下载,编译和执行相关的知识,希望能为你提供帮助。
笔者依据罗升阳老师的《android 系统源码情景分析》一书,尝试下载,编译和执行Android源码和内核源码。但可能是软件源“被墙”或版本号更新的原因。期间遇到诸多问题。笔者求助于强大的度娘和谷歌。最终编译成功,现将改动的步骤记录例如以下:
一.下载相关的工具包和依赖包
1.git工具的下载。不多说
2.java SDK的下载(參考网址:http://blog.csdn.net/zjclugger/article/details/11762085)
此处建议下载jdk1.6.0_41
3.其它依赖包的下载
其它依赖包中,libwxgtk2.6-dev的安装会出现故障,将该工具包版本号改为libwxgtk2.8-dev就可以
注意:有一些工具包的下载会出现找不到包的问题,此时能够改变软件源。我是使用的华中科技大学的软件源http://mirrors.hust.edu.cn/ubuntu。亲測可用。



二.下载Android源码
结合书中内容和博客http://www.cnblogs.com/bluestorm/p/4419135.html可以成功下载
1.下载repo
1)创建repo文件夹
mkdir ~/bin 
PATH=~/bin:$PATH2)下载repo(官方的repo下载不了。其它的repo大多比較旧。这个时比較新的)
git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/
或者git  clone  git://git.omapzoom.org/git-repo.git


3)克隆下来后将git-repo中的repo文件复制到bin文件夹
cp git-repo/repo ~/bin/
4)改动repo文件,设置REPO_URL例如以下:
REPO_URL = \'git://aosp.tuna.tsinghua.edu.cn/android/git-repo\'
2.初始化 repo
1)创建Android文件夹,并进入
mkdir Android
cd Android
2)初始化repo
repo init -u git://aosp.tuna.tsinghua.edu.cn/android/platform/manifest -b android-2.3.1_r1


ps:在初始化时,若提示须要email验证,使用例如以下命令后。再又一次上面命令:
git config --global user.email "you@example.com"


git config --global user.name "Your Name"
3)同步repo

repo sync

等待一段时间后(时间较长),Android源码便下载成功了。
此时Android文件夹中文件列表例如以下:

Android源码和内核源码的下载,编译和执行

文章图片




三,编译Android源码

运行make命令。
。。。但这远远不够。会遇到各种问题和报错。。此时借助度娘就可以。


笔者将一些常见的错误截图和解决方式罗列例如以下。希望能够对大家有一些帮助

1.

Android源码和内核源码的下载,编译和执行

文章图片


解决的方法:sudo apt-get install libc6-dev-i386
Android源码和内核源码的下载,编译和执行

文章图片


【Android源码和内核源码的下载,编译和执行】2.

Android源码和内核源码的下载,编译和执行

文章图片

Android源码和内核源码的下载,编译和执行

文章图片


Android源码和内核源码的下载,编译和执行

文章图片

Android源码和内核源码的下载,编译和执行

文章图片


Android源码和内核源码的下载,编译和执行

文章图片


5.
Android源码和内核源码的下载,编译和执行

文章图片

Android源码和内核源码的下载,编译和执行

文章图片


Android源码和内核源码的下载,编译和执行

文章图片

7.
Android源码和内核源码的下载,编译和执行

文章图片

Android源码和内核源码的下载,编译和执行

文章图片

Android源码和内核源码的下载,编译和执行

文章图片


Android源码和内核源码的下载,编译和执行

文章图片


9.编译成功后。得到一下结果:
Android源码和内核源码的下载,编译和执行

文章图片


10.编译sdk make sdk。这一步也没有什么问题

四.执行Android模拟器
1.配置环境变量
export PATH=$PATH:~/Android/out/host/linux-x86/bin
export ANDROID_PRODUCT_OUT=~/Android/out/target/product/generic 2.执行模拟器
emulator命令(也能够指定kernel, system, data和ramdisk。如笔者所看到的。若不指定,则使用默认的)。。但往往会遇到例如以下问题:
Android源码和内核源码的下载,编译和执行

文章图片

Android源码和内核源码的下载,编译和执行

文章图片


五.android内核源码的下载
1.新建kernel目录,并进入
mkdir kernel
cd kernel
2.手动运行git命令下载:git clone  http://android.googlesource.com/kernel/goldfish.git
但会出现故障。提示:remote error: SSL is required。例如以下图所看到的:
Android源码和内核源码的下载,编译和执行

文章图片

解决方式:将“http”改动为“https”,例如以下图所看到的就可以:
Android源码和内核源码的下载,编译和执行

文章图片

3.git checkout remotes/origin/android-goldfish-2.6.29

六.编译android内核源码
这里依照书上的步骤。应该不会有什么问题。此处略去

    推荐阅读