Android源代码下载方法具体解释
作者:张星
相信非常多下载过内核的人都对这个非常熟悉
git clone git://android.git.kernel.org/kernel/common.git kernel
可是这是在曾经,如今假设这么运行的话,会显演示样例如以下内容
Initialized empty Git repository in /home/star/working/kernel/.git/
android.git.kernel.org[0: 149.20.4.77]: errno=Connection refused
fatal: unable to connect a socket (Connection refused)
通过浏览器输入http://android.git.kernel.org/,发现该站点已经被重定向为http://source.android.com/source/downloading.html
能够在该页面的最后发现内核的下载方法。
以下我们介绍一下Android源代码下载的步骤。
工作环境:
操作系统:Ubuntu 10.04 或 Ubuntu10.10
git程序 :1.7.0.4 或 1.7.1
转载请注明出处:http://blog.csdn.net/pku_android
方法一:
1.1 初始化安装环境
參考网页http://source.android.com/source/initializing.html
主要要做的就是安装jdk和安装一些软件包
$ 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
假设已经安装了,就不许要这步了
1.2 不管下载内核和源代码,都须要进行例如以下操作
參考网页http://source.android.com/source/downloading.html
$ mkdir ~/bin
$ PATH=~/bin:$PATH
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
建立一个目录,以便下载的内容保存当中
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY
1.3 内核下载
$ git clone https://android.googlesource.com/kernel/common.git kernel
命令行最后面的kernel的意思是保存在这个目录下,所以能够是不论什么名字,该目录不须要自己去创建,最后的这个不写也没问题
假设想下载其它版本号的内核
$ git clone https://android.googlesource.com/kernel/goldfish.git
$ git clone https://android.googlesource.com/kernel/msm.git
$ git clone https://android.googlesource.com/kernel/omap.git
$ git clone https://android.googlesource.com/kernel/samsung.git
$ git clone https://android.googlesource.com/kernel/tegra.git
下载过程中,会有例如以下信息,速度快慢取决于网速了。
Initialized empty Git repository in /home/star/kernel/kernel/.git/
remote: Counting objects: 40, done
remote: Counting objects: 2073952, done
remote: Finding sources: 100% (208/208)
remote: Getting sizes: 100% (88/88)
remote: Compressing objects: 100% (2/2)
remote: Total 2073863 (delta 1735363), reused 2073862 (delta 1735363)
Receiving objects: 100% (2073863/2073863), 427.93 MiB | 318 KiB/s, done.
Resolving deltas: 100% (1735382/1735382), done.
在我下载的过程中,出现了例如以下问题
error: RPC failed; result=56, HTTP code = 2002 MiB | 23 KiB/s
到如今我也不清楚是因为什么原因导致的,推測
1.1中所说的事情,都做了吗?我发现有一些安装包尚未安装,安装之。
或者,可能是网络问题,反复运行一下,会发现并非在同一个地方出现这个问题的,说不定哪次就成功了
或者,用别人的电脑下载一下(尽管方法是我发现的,但是并非我第一个下载成功的,我遇到了RPC failed,后来让同学尝试,成功,之后我也尝试了,在把所须要的安装包都安装后,也成功)
1.4 更换内核版本号
因为在1.3中我写的是kernel,这是能够看到当前文件夹下出现了一个kernel文件夹
$ cd kernel/
$ ls
发现没有不论什么内容
查看当前内核版本号,master,不知道是什么意思
$ git branch
* master
查看全部可用内核版本号
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/android-2.6.39
remotes/origin/android-3.0
remotes/origin/master
能够看到眼下仅仅提供了少数的版本号,仅仅有2.6.39和3.0,比方我要下载2.6.39
$ git checkout -b android-2.6.39 origin/android-2.6.39
Switched to a new branch 'android-2.6.39'
该命令的android-2.6.39指的是分支的名字,事实上是能够随便取的,关键是origin/android-2.6.39,要相应git branch -a命令显示的remotes后面的内容
完毕后,查询当前分支
$ git branch
* android-2.6.39
master
$ ls
arch Documentation init lib README sound
block drivers ipc MAINTAINERS REPORTING-BUGS tools
COPYING firmware Kbuild Makefile samples usr
CREDITS fs Kconfig mm scripts virt
crypto include kernel net security
会看到突然出现非常多目录,这就是内核了
因为误操作
比方$ git checkout -b android-2.6.39 origin/android-2.6.39,仅仅是输入$ git checkout -b android-2.6.39,这时,会得到一个空的分支
$ git branch -a
* android-2.6.39
master
remotes/origin/HEAD -> origin/master
remotes/origin/android-2.6.39
remotes/origin/android-3.0
remotes/origin/master
假设再次运行
$ git checkout -b android-2.6.39 origin/android-2.6.39
fatal: git checkout: branch android-2.6.39 already exists
一种方法,就是给把-b后面的android-2.6.39改为其它名字,可是这个有问题的分支android-2.6.39还是会存在的
查看$ git branch --help,找到分支删除的命令
$ git branch -D android-2.6.39
error: Cannot delete the branch 'android-2.6.39' which you are currently on.
须要切换分支,如果也存在android-3.0,当然也能够切换为master或者其它存在的分支,$ git branch -a查看分支
$ git checkout android-3.0
Checking out files: 100% (37131/37131), done.
Switched to branch 'android-3.0'
$ git branch -D android-2.6.39
Deleted branch android-2.6.39 (was fe8bf45).
转载请注明出处:http://blog.csdn.net/pku_android
方法二
2.1 參考1.1和1.2
2.2 类似于下载Android源代码的过程,先运行例如以下命令
$ repo init -u https://android.googlesource.com/platform/manifest
在这一步还须要用到gmail的邮箱
在下载Android源代码的过程中,并不会下载kernel,那如何才干既下载源代码,又下载kernel呢
參考网页http://elinux.org/Android_Kernel_Download
a kernel git tree并没有被默认的Android manifest file引用
既然没有引用,那就加上它
改动.repo/manifest.xml(眼下的文件夹为1.2中已经建立的WORKING_DIRECTORY)
$ vim .repo/manifest.xml
加上这条语句
<project path="kernel/common" name="kernel/common" revision="android-2.6.39"/>
位置我认为和其他的project选项并列就可以。
版本參考1.4,可能仅仅能下载2.6.39和3.0
2.3 下载源代码和内核
$ repo sync
漫长的等待
假设我仅仅想下载内核呢
非常easy,改动2.2提到的文件.repo/manifest.xml,把全部project标签都删除,再加入�
<project path="kernel/common" name="kernel/common" revision="android-2.6.39"/>
转载请注明出处:http://blog.csdn.net/pku_android
Android源代码下载方法具体解释的更多相关文章
- 1、android源代码下载及目录分析,和eclipser的跟踪
1.在eclipse中跟踪源代码:假如对mainactivity.java里面的activity按Ctrl+鼠标左键(前提已经导入android源代码:方法1:在项目点击右键,然后找到properti ...
- Mac OS X于Android Kernel下载方法
于上一篇日志中,我总结了大家提供的下载Android源代码的方法.这里再简单总结一下内核的下载方法. 參考这里的介绍:http://source.android.com/source/building ...
- Android源代码下载之《Android新闻client源代码》
介绍 Android新闻client源代码,功能上分为:新闻.关注.读报.微博.里面比較有特色的就是读报功能.真正安装报纸的排版进行读报.给人得感觉就像是在读真实的报纸.事实上即使首页的动态云标签很有 ...
- Ubuntu环境中的Android源代码下载
跟随“老罗的Android之旅”学习Android系统,首先得学会创建能用于编译Android源代码的环境. 文章参考:http://0xcc0xcd.com/p/books/978-7-121-18 ...
- android源代码下载备注
android源代码下载的參考网上比較多,就不贴上来了,主要是备注下下载源代码过程中须要注意的地方. 1. google官方下载步骤地址: http://source.android.com/sour ...
- Android源代码下载过程中无法下载repo的解决方法【转】
本文转载自:http://blog.csdn.net/shangyuan21/article/details/17618575 我们都知道下载Android源代码需要使用repo进行辅助下载,但是最进 ...
- 1、android源代码下载与跟踪
学习Android源代码的目的 理解Android API查找API(Activity.Content Provider等) 高级应用开发(ROM定制) 在不同平台下载Android源代码 W ...
- Android源代码下载 “Gerrit下载源代码”
repo init -u ssh://jenkins@gerrit.y:29419/manifest -m k86A.xml 使用-m参数指定具体使用的是k86A.mxl文件 步骤1. curl ht ...
- Android源代码下载以及异常查找网站推荐
源代码下载:https://github.com/ 异常查找:http://stackoverflow.com/
随机推荐
- Redis,Memcache,mongoDB的区别
从以下几个维度,对redis.memcache.mongoDB 做了对比,欢迎拍砖 1.性能 都比较高,性能对我们来说应该都不是瓶颈 总体来讲,TPS方面redis和memcache差不多,要大于mo ...
- E asy Boo t 6.51 启动易 制作启动光盘的软件(附注册码)
内建ISO文件生成器,可直接生成可启动ISO文件,并支持N合1优化. -------中文版注册码------- 用户名:中华人民共和国 注册码:2898-5448-5603-BB2D -------英 ...
- html 5 canvas 绘制太极demo
一个练习canvas的小案例.其中若有小问题,欢迎大神拍砖……^_* 代码效果预览地址:http://code.w3ctech.com/detail/2500. <div class=" ...
- C++容器学习
以前自学C++的时候就没怎么看容器,一直以来也没怎么编过C++程序,现在想用C++写点东西,突感容器类型有些生疏,故做此笔记.(参考<C++ primer> 容器:容纳特定类型对象的集合. ...
- 坚持自学的第二天,bootstrap初入门
前言 昨天,初步学完了jekyll目录结构与Liquid语法的应用与认识. 日志 今天刚入门,做了一个bootstrap导航栏,但是选中状态不行,找了JS中写好的API,写法与视频中讲的有点不一样,但 ...
- leetcode—Swap Nodes in Pairs
1.题目描述 Given a linked list, swap every two adjacent nodes and return its head. For example, Given ...
- java集合框架1
1.综述 所有集合类都位于java.util包下.集合中只能保存对象(保存对象的引用变量).(数组既可以保存基本类型的数据也可以保存对象). 当我们把一个对象放入集合中后,系统会把所有集合元素都当成O ...
- 卸载 Cloudera Manager 5.1.x.和 相关软件【官网翻译】
问题导读: 1.不同的安装方式,卸载方法存在什么区别?2.不同的操作系统,卸载 Cloudera Manager Server and 数据库有什么区别? 重新安装不完整如果你来到这里,因为你的安装没 ...
- Codevs No.1287 矩阵乘法
2016-06-01 16:53:23 题目链接: 矩阵乘法 (Codevs No.1287) 题目大意: 给你两个可乘矩阵a,b,求a*b 解法: 定义....... //矩阵乘法 (Codevs ...
- post和put的区别
post : 标识的是处理请求中资源表述的资源 put : 标识的是请求的资源表述 post : 支持多种类型的资源 put : 支持单一的资源