当前位置:首页 > 开发教程 > 手机开发 >

Android 4.4 全套源码及子模块源码的下载方法

时间:2014-04-30 09:01 来源: 作者: 收藏

本文介绍了在ubuntu下获取目前最新的Android 4.4 全套源码以及单个自模块源码的下载方法,可根据本文方法下载全套或者只下载子模块Android源码进行源码分析和编译。下载过错中遇到很多问题,这些问题的解决对大家获取源密码很有借鉴意义。
博文《Android源码下载——用git clone实现单个目录下载》介绍了采用git clone方法下载Android单个目录源码的方法,这篇文章已经有四年的历史,这期间Google对源代码的管理网站已经进行了更改,直接采用原来的方法下载源代码已经失效。本文介绍了在ubuntu下获取目前最新的Android 4.4 全套源码以及单个自模块源码的下载方法,可根据本文方法下载全套或者只下载子模块Android源码进行源码分析和编译。下载过错中遇到很多问题,这些问题的解决对大家获取源密码很有借鉴意义。
Google源码的官方帮助页面http://source.android.com/source/initializing.html,下载源码按照此页面介绍的步骤操作即可。
下面简要介绍下下载的步骤和遇到问题的解决办法。
1、安装 Repo
a) 建立Repo的安装目录、配置环境变量

$ mkdir ~/bin

$ PATH=~/bin:$PATH

 b) 获取Repo工具

$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo

  问题:上面是Google制定的repo获取地址,但获取可能失败。
  解决办法:网上有网友给出了替代的获取地址,如遇报错可用下面的地址替代:
  curl "http://php.webtutor.pl/en/wp-content/uploads/2011/09/repo" > ~/bin/repo

2、建立并进入源码下载目录
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

3、初始化源码Repo下载地址
如是下载当前最新的代码,则:
  repo init -u https://android.googlesource.com/platform/manifest
  如是下载特定Android成熟版本分支的代码,则加上-b 参数,如当前最新发布的android 4.4分支代码:
  repo init -u https://android.googlesource.com/platform/manifest -b android-4.4.1_r1
  命令如顺利执行,期间将要求输入unsername和email,直接输入自己的自定义的用户名和email即可。

  问题:在init过错中,可能会出现如下的443连接失败错误:
  error: Failed connect to android.googlesource.com:443
  解决办法:找到/etc/hosts文件,增加如下地址(如无法保存需要用root权限修改hosts文件的访问权限):
   74.125.128.82    android.googlesource.com
   74.125.31.82    www.googlesource.com
   203.208.46.172    cache.pack.google.com
   173.194.74.82   gerrit.googlesource.com
  上面的地址可能会发生变化,保存前在终端用ping命令逐个ping各个域名的当前IP地址替换: 
  e.g.: ping android.googlesource.com

 4、同步全套源代码 
 $ repo sync
  问题:命令执行过程中可能会报错: 
 fatal: '../platform/abi/cpp.git' does not appear to be a git repository
 fatal: The remote end hung up unexpectedly
 error: Cannot fetch platform/abi/cpp 
解决办法
在init成功后下载的.repo目录下的manifest.xml里,找到fetch属性,并修改为:
fetch= "git://Android.git.linaro.org/"

repo sync命令在执行过程中一般不会一次性成功,中途可能超时或存在其他失败,此时只需再次执行repo sync即可,以前的记录会被缓存的。

 5、同步子模块代码
 repo syn命令是同步所制定分支的全套代码,但全套代码的执行过程很长,有时候也并不需要全套代码而只需要特定子模块的代码。
 获取子模块的方法是在repo sync 命令后加上子模块的git节点目录名即可,例如想要获取Launcher3模块的源代码:
 repo sync packages/apps/Launcher3
 各个子模块的节点目录查找方法: 
 在init成功后下载的.repo目录下的manifest.xml里,找到子模块的project 属性即可:
 e.g. Launcher 3 的git目录:
  ...
  <project path="packages/apps/Launcher2" name="platform/packages/apps/Launcher2" />
  <project path="packages/apps/Launcher3" name="platform/packages/apps/Launcher3" />
  <project path="packages/apps/LegacyCamera" name="platform/packages/apps/LegacyCamera" />
 ...

*****************************************************************************************************************************************/

本文为原创文章,转载请务必注明出处:http://blog.csdn.net/droidpioneer/article/details/24738353

我的手机专卖小店,安卓开发用机友情链接http://vpclub.octech.com.cn/ztewd/9495.html

 /***********************************************************************************************************************

更多

安卓开发复习笔记——Fragment+FragmentTab

2014年最新720多套Android源码2.0GB免费一

开源直播系统源码功能一览表(含ios+androi

直播系统开发中低延迟优化方面的部分技巧

Android Hook 机制之简单实战

直播平台开发中美颜、滤镜的技术要求

直播源码的崛起的巅峰:布谷一对一视频直播

直播系统开发中视频采集的技术分析

手机直播系统开发的实时网络通信技术的要求

短视频平台开发中视频编码如何解决延迟优化

值得安卓开发者收藏的Android 开源项目分类

怎样保证直播平台开发完成后程序的稳定性?

手机开发阅读排行

最新文章