Android 4.4 全套源代码及子模块源代码的下载方法
本文介绍了在ubuntu下(在Windows下安装Cygwin,通过Cygwin也可在Windows里通过本文的下载步骤下载Android源代码)获取眼下最新的Android
4.4 全套源代码以及单个自模块源代码的下载方法。可依据本文方法下载全套或者仅仅下载子模块Android源代码进行源代码分析和编译。下载过错中遇到非常多问题,这些问题的解决对大家获取源password非常有借鉴意义。
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/repo2、建立并进入源代码下载文件夹
$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY3、初始化源代码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。直接输入自己的自己定义的username和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.com4、同步全套源码
$ 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://vpclub.octech.com.cn/ztewd/9495.html
Android 4.4 全套源代码及子模块源代码的下载方法的更多相关文章
- Android源代码下载方法具体解释
作者:张星 相信非常多下载过内核的人都对这个非常熟悉 git clone git://android.git.kernel.org/kernel/common.git kernel 可是这是在曾经,如 ...
- Android从入门到精通pdf+书源代码
不须要积分,免费放送 Android从入门到精通的pdf,入门的好书籍,因为csdn文件大小的限制所以分成了两部分. part1地址:http://download.csdn.net/detail/a ...
- Android应用程序进程启动过程的源代码分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址: http://blog.csdn.net/luoshengyang/article/details/6747696 Android 应用程序框架层创 ...
- Android View体系(八)从源代码解析View的layout和draw流程
相关文章 Android View体系(一)视图坐标系 Android View体系(二)实现View滑动的六种方法 Android View体系(三)属性动画 Android View体系(四)从源 ...
- Memcached源代码分析 - Memcached源代码分析之消息回应(3)
文章列表: <Memcached源代码分析 - Memcached源代码分析之基于Libevent的网络模型(1)> <Memcached源代码分析 - Memcached源代码分析 ...
- Mac OS X于Android Kernel下载方法
于上一篇日志中,我总结了大家提供的下载Android源代码的方法.这里再简单总结一下内核的下载方法. 參考这里的介绍:http://source.android.com/source/building ...
- Android源码50例汇总,欢迎各位下载(转载)
下载中心好资料很多,藏在各个角落,小弟在此帮大家做了一个整理,做了一个下载目录,方便大家选择性下载. 源码实例如下: <Android应用开发揭秘>源代码推荐 http://down.51 ...
- 【Android】Eclipse自动编译NDK/JNI的三种方法
[Android]Eclipse自动编译NDK/JNI的三种方法 SkySeraph Sep. 18th 2014 Email:skyseraph00@163.com 更多精彩请直接访问SkySer ...
- Android斗地主棋牌游戏牌桌实现源码下载
本次给大家分享下Android斗地主棋牌游戏牌桌实现源码下载如下: 为了节约内存资源,每张扑克牌都是剪切形成的,当然这也是当前编程的主流方法. 1.主Activity package com.biso ...
随机推荐
- Android中的MVC,MVP和MVVM
韩梦飞沙 韩亚飞 313134555@qq.com yue31313 han_meng_fei_sha MVC,MVP,MVVM的区别 #MVC 软件可以分为三部分 视图(View):用户界面 ...
- 【数形结合】Gym - 100923I - Por Costel and the Pairs
perechi3.in / perechi3.out We don't know how Por Costel the pig arrived at FMI's dance party. All we ...
- cocos2d-x 扩展 修改 备注
1.引擎源码相关扩展 说明:class/cellsExt 下的全部文件为扩展文件,有auto字样的文件为生成文件,*.pkg文件为自动生成文件的接口配置档,参考tolua++,源文件中代在[s ...
- Java小问题的解决方法系列
1)IDEA中文乱码,解决方法:http://blog.csdn.net/zht666/article/details/8953516 2)卸载OpenJdk,http://my.oschina.ne ...
- iOS开发 Swift开发数独游戏(五)显示游戏答案
要点是设置好Tag就好,通过代码找到并初始化即可. 1: // 2: // ShowAnswerController.swift 3: // sudoku-v02 4: // 5: // ...
- glib wpa_supplicant Unix上库编译错误解决与总结
编译Linux下的库是一件痛苦的事情,这里主要阐述glib和wpa_supplicant库的编译,因各自的依赖关系,另外一些库要事先编译.glib依赖libffi和zlib,而wpa_supplica ...
- linux/mac系统的软链接文件与硬链接文件
1.硬连接只能使用在文件上,不可以使用在文件夹上.至于文件前面的硬链接数字的含义如下: 如图标注区,为硬连接的数量,文件前的数字1表示没有硬链接.文件夹前面的数字至少是2,含义是这个文件夹是空文件夹, ...
- angular get/post 下载 excel
阅读目录 get请求 post请求 最近做项目,就碰到一个导出excel表格的功能.原本是想利用web前台导出excel的,但是最后因为两点放弃了,第一点,因为中文乱码,第二点,有分页(在前台导出ex ...
- spring+mybatis项目启动报错Initializing Spring root WebApplicationContext
这个问题很怪异,各种各样的情况都会导致这个问题的出现,主要是由于sping加载读取配置文件的时候出了问题.我在处理mybatis的时候出现了这个问题,后来排查发现,在mybatis的配置文件中如果有大 ...
- Python中调用其他程序的方式
前言 在Python中,可以方便地使用os模块来运行其他脚本或者程序,这样就可以在脚本中直接使用其他脚本或程序提供的功能,而不必再次编写实现该功能的代码.为了更好地控制运行的进程, 可以使用win32 ...