基于ubuntu12.04-32bit的android Froyo源码编译
2013-06-09 16:49
441 查看
看了许多,试验了许多,发现自己动手的时候和看到的差距太大,真正的完成之后,做一下笔记,同时能提供给后人少走弯路的一些经验。
声明一下,这个帖子只能算是一个实践过程的总结,不可完全作为指南使用,否则可能你会很苦恼,真正的指南在这里,英文还过得去的同学最好直接看这个:http://source.android.com/source/building.html
准备好了,走着。
系统环境准备阶段:
第一步,系统环境准备,不用说了ubuntu12.04,32位系统(桌面版),虚拟机,实体机通用,关于具体真么装系统,可以google,百度一下;
第二步,网络环境,你的ubuntu必须是能上网的,因为你要下代码(已经下好代码的,不用说了,直接可以编译了)
软件软件环境准备:
1,python 2.6-2.7
2,gnu make3.81-3.82
3,jdk5
4,git 1.7
以上是安卓官方网站指出的,在此,我的观点是:ubuntu12.04的环境完全符合上面的前1,和2,关于3,因为ubuntu默认的是openjdk,所以需要重新装一下sun的,关于怎么装,如下:
jdk5:
注意:(下面我要说的可能是你不会碰到的,但是如果碰到了可能会有帮助)
我在安装了sun的jdk5之后,编译的时候还是用的原来的jdk6,我的解决方法,就是在.bashrc文件中直接export $PATH,将jdk5的路径加入。
需要提前安装的模块,编译的时候用得到,原封不动的执行就是:
到这里基本上,准备工作就做好了,官方网站还有一些设置cache的地方,我没设置,后来也没有出啥问题。
接下来,开始下载代码:
第一步,安装repo(不知道什么玩意,可以理解为上面提到的git的封装,git是什么?问linux的创始人吧),如下:
$chmod a+x ~/bin/repo
[/code]
第二步,搞一个空间足够大的磁盘空间:
第三步,初始化repo
2.2 大名Froyo,是吧,我这边选的是android-2.2.2_r1,如果想搞其他的,可以参考官方提供的号:http://source.android.com/source/build-numbers.html
(多说两句,这个-b选项就是为了制定版本号,如果不指定,下载的是最新的主干代码,那前面准备的环境是无法编译的)
第四步,执行下载
到了这步,就等吧,具体的时间事个人的网速决定。
(repo,有没有断点续传的功能我没探索,反正我在下载的时候有几次断掉了,而且还出现了一次错误【具体啥错误,忘了截图了】,我的解决方法就是啥也不管,断了就repo sync,下载完成,这么看可能repo是有断点续传的功能)
到了编译阶段了:
第一步,如下:
或
第二步,如下:
make -j2
(看你的cpu的核数,2核 j2,4核 j4,看懂了吧)
好了,等着编译错误的出现吧,我的原则是发现一个解决一个,解决方法,如果能看明白错误的话就直接改,如果看不懂就google或百度了,我遇到的错误都是这么解决的,感谢无私奉献的网络大侠们。
所有的问题都解决了,编译也就成功了。
然后:cd out/target/product/generic/; emulator,模拟器启动了-》系统启动了,就成功了。
关于基于源码的开发工作,参考其他的文档吧。
后记:当时安装ubuntu的时候选在的是32位的,所以编译源码的时候选择了2.2的版本。官方说法,如果要编译2.3及以上系统源码,需要64位系统,且jdk1.6,有爱好者可以自己试验一把,步骤和上面应该一样。
声明一下,这个帖子只能算是一个实践过程的总结,不可完全作为指南使用,否则可能你会很苦恼,真正的指南在这里,英文还过得去的同学最好直接看这个:http://source.android.com/source/building.html
准备好了,走着。
系统环境准备阶段:
第一步,系统环境准备,不用说了ubuntu12.04,32位系统(桌面版),虚拟机,实体机通用,关于具体真么装系统,可以google,百度一下;
第二步,网络环境,你的ubuntu必须是能上网的,因为你要下代码(已经下好代码的,不用说了,直接可以编译了)
软件软件环境准备:
1,python 2.6-2.7
2,gnu make3.81-3.82
3,jdk5
4,git 1.7
以上是安卓官方网站指出的,在此,我的观点是:ubuntu12.04的环境完全符合上面的前1,和2,关于3,因为ubuntu默认的是openjdk,所以需要重新装一下sun的,关于怎么装,如下:
jdk5:
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse" $ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse" $ sudo apt-get update $ sudo apt-get install sun-java5-jdk
注意:(下面我要说的可能是你不会碰到的,但是如果碰到了可能会有帮助)
我在安装了sun的jdk5之后,编译的时候还是用的原来的jdk6,我的解决方法,就是在.bashrc文件中直接export $PATH,将jdk5的路径加入。
需要提前安装的模块,编译的时候用得到,原封不动的执行就是:
$ sudo apt-get install git gnupg flex bison gperf build-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 mingw32 tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
到这里基本上,准备工作就做好了,官方网站还有一些设置cache的地方,我没设置,后来也没有出啥问题。
接下来,开始下载代码:
第一步,安装repo(不知道什么玩意,可以理解为上面提到的git的封装,git是什么?问linux的创始人吧),如下:
$mkdir ~/bin $export PATH=~/bin:$PATH$curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$chmod a+x ~/bin/repo
[/code]
第二步,搞一个空间足够大的磁盘空间:
$ mkdir WORKING_DIRECTORY $ cd WORKING_DIRECTORY
第三步,初始化repo
$ repo init -u https://android.googlesource.com/platform/manifest -b android-2.2.2_r1
2.2 大名Froyo,是吧,我这边选的是android-2.2.2_r1,如果想搞其他的,可以参考官方提供的号:http://source.android.com/source/build-numbers.html
(多说两句,这个-b选项就是为了制定版本号,如果不指定,下载的是最新的主干代码,那前面准备的环境是无法编译的)
第四步,执行下载
$ repo sync
到了这步,就等吧,具体的时间事个人的网速决定。
(repo,有没有断点续传的功能我没探索,反正我在下载的时候有几次断掉了,而且还出现了一次错误【具体啥错误,忘了截图了】,我的解决方法就是啥也不管,断了就repo sync,下载完成,这么看可能repo是有断点续传的功能)
到了编译阶段了:
第一步,如下:
$ source build/envsetup.sh
或
$ . build/envsetup.sh
第二步,如下:
make -j2
(看你的cpu的核数,2核 j2,4核 j4,看懂了吧)
好了,等着编译错误的出现吧,我的原则是发现一个解决一个,解决方法,如果能看明白错误的话就直接改,如果看不懂就google或百度了,我遇到的错误都是这么解决的,感谢无私奉献的网络大侠们。
所有的问题都解决了,编译也就成功了。
然后:cd out/target/product/generic/; emulator,模拟器启动了-》系统启动了,就成功了。
关于基于源码的开发工作,参考其他的文档吧。
后记:当时安装ubuntu的时候选在的是32位的,所以编译源码的时候选择了2.2的版本。官方说法,如果要编译2.3及以上系统源码,需要64位系统,且jdk1.6,有爱好者可以自己试验一把,步骤和上面应该一样。
相关文章推荐
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- 基于ubuntu12.04 编译Android 7.0源码
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- Freescale I.mx 6 Android 4.2.2源码编译环境搭建(基于ubuntu12.04 LTS)
- Ubuntu12.04下Android4.0.4源码的下载及其编译过程
- [整]基于ubuntu 10.04(32位机)的Android2.2 源码编译
- Ubuntu12.04下编译android源码4.0.3
- 基于Ubuntu12.04的Android源码下载介绍
- Ubuntu12.04下搭建android源码编译环境全