【Android源码 栏目提醒】:本文主要为网学会员提供“【长青说安卓】系列专题(二):开源工程的魅力——Android源码的获取和编译 - 培训资料”,希望对需要【长青说安卓】系列专题(二):开源工程的魅力——Android源码的获取和编译 - 培训资料网友有所帮助,学习一下!
第一研究所张长青2011-05-30前言本文以Ubuntu操作系统环境下为例介绍了下载和编译AndroidOpenSource工程的方法。
虽然Google的网站上有完整的介绍但还是太专业了本文档会抽丝剥茧以更简单、更直观的方式介绍给大家让每个人都能自己成功下载和编译工程。
目录??一、工具软件介绍??二、下载过程简述??三、编译工程??四、编译SDK??五、编译Linux内核镜像一、工具软件介绍先简单介绍一下下载工程需要的三个工具软件??CURL??GIT??PythonCURLcurl是一个利用URL语法在命令行方式下工作的文件传输工具。
它支持很多协议FTPFTPSHTTPHTTPSGOPHERTELNETDICTFILE以及LDAP。
curl同样支持HTTPS认证HTTPPOST方法HTTPPUT方法FTP上传kerberos认证HTTP上传代理服务器cookies用户名/密码认证下载文件断点续传上载文件断点续传http代理服务器管道proxytunneling甚至它还支持IPv6socks5代理服务器通过http代理服务器上传文件到FTP服务器等等功能十分强大。
Windows操作系统下的网络蚂蚁网际快车FlashGet的功能它都可以做到。
准确的说curl支持文件的上传和下载所以是一个综合传输工具但是按照传统用户习惯称curl为下载工具。
GitGit---Thestupidcontenttracker傻瓜内容跟踪器。
Linux是这样给我们介绍Git的。
Git是用于Linux内核开发的版本控制工具。
与常用的版本控制工具CVSSubversion等不同它采用了分布式版本库的方式不必服务器端软件支持使源代码的发布和交流极其方便。
Git的速度很快这对于诸如Linuxkernel这样的大项目来说自然很重要。
Git最为出色的是它的合并跟踪mergetracing能力。
实际上内核开发团队决定开始开发和使用Git来作为内核开发的版本控制系统的时候世界开源社群的反对声音不少最大的理由是Git太艰涩难懂从Git的内部工作机制来说的确是这样。
但是随着开发的深入Git的正常使用都由一些友好的脚本命令来执行使Git变得非常好用即使是用来管理我们自己的开发项目Git都是一个友好有力的工具。
现在越来越多的著名项目采用Git来管理项目开发.作为开源自由原教旨主义项目Git没有对版本库的浏览和修改做任何的权限限制。
PythonPythonKK英语发音/paθɑn/DJ英语发音/paiθn/是一种面向对象、直译式计算机程序设计语言也是一种功能强大而完善的通用型语言已经具有十多年的发展历史成熟且稳定。
这种语言具有非常简捷而清晰的语法特点适合完成各种高层任务几乎可以在所有的操作系统中运行。
目前基于这种语言的相关技术正在飞速的发展用户数量急剧扩大相关的资源非常多。
工具的安装在Ubuntu系统下可以通过APT工具方便地安装这些软件。
APTtheAdvancedPackagingTool是Ubuntu软件包管理系统的高级界面是操作系统的一部分由几个名字以“apt-”打头的程序组成。
apt-get、apt-cache和apt-cdrom是处理软件包的命令行工具。
常用的命令有sudoapt-getinstall——package安装包sudoapt-getinstall—–package--reinstall重新安装包sudoapt-get-finstall—–强制安装sudoapt-getremove—–package删除包sudoapt-getupdate——更新源 sudoapt-getupgrade——更新已安装的包sudoapt-getdist-upgrade———升级系统工具的安装要安装这三个软件联网情况下在命令行终端输入以下命令按提示操作即可完成安装。
??CURLsudoapt-getinstallcurl??GITsudoapt-getinstallgit??Pythonsudoapt-getinstallpython二、下载过程简述1、建立工程目录2、下载repo工具Repo命令行工具使用Python脚本编写对Git部分命令封装将百多个Git库有效的进行组织。
3、初始化版本库4、更新版本1建立工程目录1、登陆Ubuntu后打开命令行终端2、默认进入该账户的主文件夹3、建立一个二进制存储目录bin并且加到环境变量中命令如下mkdir/binPATH/bin:PATH备注命令行终端的打开方法在系统面板上【应用程序】【附件】【终端】或【Applications】【Accessories】【Terminal】菜单中。
2下载repo工具使用curl工具从网络上下载repo工具并且将文件属性更改为可执行。
在命令行终端下输入curlhttp://android.git.kernel.org/repo/bin/repochmodax/bin/repo3初始化版本库建立工作目录并进入mkdirmy_android_srccdmy_android_src初始化版本库repoinit-ugit://android.git.kernel.org/platform/manifest.git4获取版本执行以下命令开始获取版本Gingerbread。
repoinit-ugit://android.git.kernel.org/platform/manifest.git-bGingerbreadreposync一个版本得好几个G如果运气好的话你可以在接下来的几个小时内下完。
否则就请尽情地等待吧。
5其他方式HTTP方式下载如果Git的端口9418给封了可以通过http方式下载解决方法如下1.将命令行中的git://android.git.kernel.org换成http://android.git.kernel.org2.修改文件repo将里面的REPO_URLgit://android.git.kernel.org/tools/repo.git改成REPO_URLhttp://android.git.kernel.org/tools/repo.git??3.修改文件.repo/manifests/default.xml将其中的fetch“git://android.git.kernel.org/”改成fetchhttp://android.git.kernel.org/这样就可以下载同步Android的源代码了。
三、编译工程1、官方文档说需要安装以下开发工具32bit有些可能系统自带??sudoapt-getinstallmakegccglibc6-devpatchtexinfovalgrindpython2.5flexbisongperflibsdl-devlibesd0-devlibncurses5-devlibx11-devzlib1g-dev三、编译工程64-bit系统官方推荐以下编译环境:sudoapt-getinstallgit-coregnupgflexbisongperfbuild-essentialzipcurlzlib1g-devlibc6-devlib32ncurses5-devia32-libsx11proto-core-devlibx11-devlib32readline5-devlib32z-devlibgl1-mesa-devg-multilibia32-libs如果在64-bit系统上要编译2.3之前版本需要同时建立一个32-bit的编译环境sudoapt-getinstallgcc-multilibg-multiliblibc6-i386libc6-dev-i386三、编译工程注意如果编译Android2.3之前的版本官方文档说如果用sun-java6-jdk可出问题得要用sun-java5-jdk。
经测试发现如果仅仅makemake不包括makesdk用sun-java6-jdk是没有问题的。
而makesdk就会有问题严格来说是在makedoc出问题它需要的javadoc版本为1.5。
因此我们安装完sun-java6-jdk后最好再安装sun-java5-jdk或者只安装sun-java5-jdk。
这里sun-java6-jdk和sun-java5-jdk都安装并只修改javadoc.1.gz和javadoc。
因为只有这两个是makesdk用到的。
这样的话除了javadoc工具是用1.5版本其它均用1.6版本sudoapt-getinstallsun-java5-jdk如果无法安装就单独下载java5的安装包修改javadoc的linkcd/etc/alternativessudormjavadoc.1.gzsudoln-s/usr/lib/jvm/jdk1.5.0_22/man/man1/javadoc.1.gzjavadoc.1.gzsudormjavadocsudoln-s/usr/lib/jvm/jdk1.5.0_22/bin/javadocjavadoc三、编译工程2、编译整个工程打开命令行终端进入工程根目录下执行make命令。
make友情提示如果编译Android2.3之前的版本请使用JDK1.5否则编译会出问题。
如果编译Android2.3必须使用JDK1.6。
其实就是使用JAVADoc的版本不同可以通过一些方法修改一下网上有相关的介绍三
上一篇:
[SampleSyncAdapter工程][android源码][syncadapter
下一篇:
系统中主要发电机的电力系统稳定器