金沙国际app-金沙国际手机app下载

金沙国际app包括教育和科研机构建设、学科共建等,欢迎来到金沙国际手机app下载这里有多种线上娱乐游戏,金沙国际app获颁“创意中国榜”中国文化创意产业领军企业,是一家专业从事网络休闲平台游戏开发、运营的服务性企业。

当前位置:金沙国际app > 网络世界 > Android源码下载方法详解

Android源码下载方法详解

文章作者:网络世界 上传时间:2019-10-20

注:本文的环境基于前一文《基于Ubuntu12.04的Android源码下载介绍》(见 http://www.linuxidc.com/Linux/2012-07/64160.htm ),读者应先准备好环境。

转自:http://www.cnblogs.com/anakin/archive/2011/12/20/2295276.html

1、准备Android内核源码存放目录

Android源码下载方法详解

在存放Android源码的根目录下,新建“kernel”目录,并且将当前目录,切换到“kernel”

相信很多下载过内核的人都对这个很熟悉
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
可以在该页面的最后发现内核的下载方法。

2、选择你想要下载内核源码版本

下面我们介绍一下Android源码下载的步骤。

笔者在下载源码时都是借鉴网上的例子,网上很多都是直接贴指令,很少详细讲解了指令的具体含义,为什么要这么做。所以导致自己走了一些弯路,现在详细给大家分享下经验。

工作环境:

首先要知道Android的所有源代码都已经将域名改为:https://android.googlesource.com ,所以网上那些写有从android.git.kernel.org获取源码的老文章的指令都不好用了。

操作系统:Ubuntu 10.04 或 Ubuntu10.10

读者要知道自己需要那个版本的内核源码,可以访问:https://android.googlesource.com ,打开网址后,你会看到网页很长,如果是新手的话,可以不用都看,使用快捷键 Ctrl + F 搜索“kernel”,可以看到一段 kernel/xxxx 的目录,如下图:

git程序 :1.7.0.4 或 1.7.1

3、开始下载指定版本的内核源码

转载请注明出处:http://blog.csdn.net/pku_android

如果要下载模拟的源码则选择kernel/goldfish,别的版本的定义都在右侧有注释。读者可以自行选择。例如:笔者现在要下载模拟器用内核所有版本源码,则在终端中输入:

方法一:
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
如果已经安装了,就不许要这步了

git clone https://android.googlesource.com/kernel/goldfish.git

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. Cloning into 'goldfish'...  
  2. remote: Counting objects: 162982, done  
  3. remote: Counting objects: 2442007, done  
  4. git clone https://android.googlesource.com/kernel/goldfish.gitReceiving金沙国际app, objects:  15% (366302/2442007), 119.28 MiB | 1.25 MiReceiving objects: 100% (2442007/2442007), 499.15 MiB | 1.25 MiB/s, done.  
  5. remote: Total 2442007 (delta 2047652), reused 2442007 (delta 2047652)  
  6. Resolving deltas: 100% (2048534/2048534), done.  

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).

显示100%之后则表示同步完成。此时goldfish下的所有内核版本的源码都已同步完成。

转载请注明出处:http://blog.csdn.net/pku_android

4、设定默认使用版本

方法二
2.1 参考1.1和1.2

本文由金沙国际app发布于网络世界,转载请注明出处:Android源码下载方法详解

关键词: