生也有涯,知也无涯。这篇文章主要讲述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源码
运行make命令。
。。。但这远远不够。会遇到各种问题和报错。。此时借助度娘就可以。
笔者将一些常见的错误截图和解决方式罗列例如以下。希望能够对大家有一些帮助
1.
文章图片
解决的方法:sudo apt-get install libc6-dev-i386
文章图片
【Android源码和内核源码的下载,编译和执行】2.
文章图片
文章图片
文章图片
文章图片
文章图片
5.
文章图片
文章图片
文章图片
7.
文章图片
文章图片
文章图片
文章图片
9.编译成功后。得到一下结果:
文章图片
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内核源码的下载
1.新建kernel目录,并进入
mkdir kernel
cd kernel
2.手动运行git命令下载:git clone http://android.googlesource.com/kernel/goldfish.git
但会出现故障。提示:remote error: SSL is required。例如以下图所看到的:
文章图片
解决方式:将“http”改动为“https”,例如以下图所看到的就可以:
文章图片
3.git checkout remotes/origin/android-goldfish-2.6.29
六.编译android内核源码
这里依照书上的步骤。应该不会有什么问题。此处略去
推荐阅读
- Android FoldingLayout 折叠布局 原理及实现
- Android攻城狮认识ContextMenu
- Android BaseAdapter和ViewHolder 优化 解决ListView的item抢焦点问题和item错乱问题
- Android下的数据存储与訪问 --- 以文件的形式
- Android攻城狮使用SubMenu创建子菜单
- Android 四大组件学习之ContentProvider四
- APP反编译第一课《如何找到核心代码》
- Android攻城狮OptionsMenu
- android 两次调用DatePickerDialog.onDateSet()