之前写过ubuntu11.04下android源码的获取,编译后发现一些问题,所以又发了一篇补充文章。
下载后,在ubuntu11.10下完成源码部分编译。 源码编译的过程整理好后,Wayne会写下来分享给大家。 本文在记录了源码编译过程中出现的问题及解决方案后,为以后分析android源码做一些提醒和经验建议。
在我之前源码获取文章的基础上,有以下建议进行调整:
1、避免选择wubi安装ubuntu系统(不稳定,可能会导致编译失败)。
2、在安装开发过程中需要的一些开发包时编译上传源码吗,为了防止编译过程中出现一些莫名其妙的问题,在前面说过的基础上编译上传源码吗,建议安装以下包:
$ sudo apt-getinstall lib64z1-devlibc6-dev-amd64g++-multiliblib64stdc++6
3、安装java环境时,选择在线安装方式会更方便。 由于它会安装sun-java6-bin和sun-java6-jre,所以手动配置编译环境。
以下是更改后流程的完整摘要:
注意:本文的环境是在ubuntu11.04+下获取并编译android2.3.3_r1的源码,记录一下过程,方便自行备份,也希望对后来者有所帮助。
官网所需信息为:
一般来说,您将需要:
1.下载前做好工作计划
注意:下载的源代码大小约为 6GB。 您将需要 25GB 的可用空间来完成缓动构建,并需要高达 80GB(或更多)的空间来完成全套构建。
1、首先在C盘规划好所需空间后,安装一些开发过程中需要的开发包,在终端中执行以下命令:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown libxml2-utils lib64z1-dev libc6-dev-amd64 g++-multilib lib64stdc++6
复制代码
2.安装java环境
安装Java6,因为当前ubuntu系统包库中不再包含JDK,所以我们需要自动添加库,执行以下命令:
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
复制代码
之前安装jdk的时候,官网给出了两句添加库,第二句
$ sudo add-apt-repository "deb-src http://archive.canonical.com/ubuntu lucid partner"
会提示错误
Error: 'deb-src http://archive.canonical.com/ lucid partner' invalid
明天看官网,已经更新了,除了这篇文章,很强大,还有吗~
2.开始下载源码(这部分与ubuntu11.04下android源码的获取相同)
现在我们已经准备好了android源码开发所需的环境(没有错误)。 下载源码的过程是因为Android的源码非常复杂,需要分两部分获取:Android源码和内核。 我暂时不需要内核部分的源码,所以这里只下载源码。
1.首先新建一个文件夹来存放Android目录,并初始化repo:
wayne@ubuntu:~$ mkdir Android
wayne@ubuntu:~$ cd Android
wayne@ubuntu:~/Android$ mkdir bin
wayne@ubuntu:~/Android$ cd bin
wayne@ubuntu:~/Android/bin$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo >repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 19731 100 19731 0 0 14034 0 0:00:01 0:00:01 --:--:-- 17157
复制代码
几个月前,这里还很难进入。 如果很多同学使用这个源码下载站,会出现以下情况:
wayne@ubuntu:~/Android/bin$ curl http://android.git.kernel.org/repo >repo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 244 100 244 0 0 75 0 0:00:03 0:00:03 --:--:-- 976
复制代码
之后在以后初始化代码的时候会出现如下错误:
./bin/repo: 行 1: 未预期的符号 `newline' 附近有语法错误
./bin/repo: 行 1: `'
复制代码
2. 现在继续。 构建并存放源码目录source,初始化需要的android源码版本,在终端执行以下命令:
wayne@ubuntu:~/Android/bin$ sudo chmod a+x repo
wayne@ubuntu:~/Android/bin$ cd
wayne@ubuntu:~$ cd Android/source/
wayne@ubuntu:~/Android/source$ ../bin/repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.3_r1
gpg: 钥匙环‘/home/wayne/.repoconfig/gnupg/secring.gpg’已建立
gpg: 钥匙环‘/home/wayne/.repoconfig/gnupg/pubring.gpg’已建立
gpg: /home/wayne/.repoconfig/gnupg/trustdb.gpg:建立了信任度数据库
gpg: 密钥 920F5C65:公钥“Repo Maintainer ”已导入
gpg: 合计被处理的数量:1
gpg: 已导入:1
Get https://android.googlesource.com/tools/repo
remote: Counting objects: 1414, done
remote: Finding sources: 100% (78/78)
remote: Total 1414 (delta 917), reused 1414 (delta 917)
Receiving objects: 100% (1414/1414), 429.88 KiB | 169 KiB/s, done.
Resolving deltas: 100% (917/917), done.
From https://android.googlesource.com/tools/repo
* [new branch] maint -> origin/maint
* [new branch] master -> origin/master
* [new branch] stable -> origin/stable
...
复制代码
这样出来后,会要求你输入你的用户名和邮箱地址,你想写什么就写什么就可以了。
初始化后会出现:
repo initialized in /home/wayne/Android/source
初始化完成后就可以下载了。 在终端执行以下命令开始下载:
wayne@ubuntu:~/Android/source$ ../bin/repo sync
下载所有源代码需要很长时间,现在我正在经历漫长的等待......
过程中经常看,好像会出现一个错误,中断:
error: Exited sync due to fetch errors
遇到这种问题,再执行../bin/reposync就可以了。
Fetching projects: 100% (165/165), done.
Checking out files: 100% (3573/3573), done.ut files: 30% (1078/3573)
Checking out files: 100% (4679/4679), done.out files: 33% (1580/4679)
Checking out files: 100% (10008/10008), done.t files: 23% (2370/10008)
Checking out files: 100% (11980/11980), done.t files: 0% (64/11980)
Checking out files: 100% (9601/9601), done. out files: 0% (67/9601)
Syncing work tree: 100% (165/165), done.
复制代码
下载完成。 下一步就是编译源码了,敬请期待。
还是一样,欢迎交流,见谅!