android 源代码获取
接触Android差不多一年多了,这是我的第一篇博文,从今天开始,我会坚持写文章,记录自己日常学习心得。好了,言归正传。
要想深入研究android,分析android源代码是必不可少的一步。网上有很多相关的教程,我自己亲自试了一下,在此做个总结。
Android 源代码是用GIT分布式版本控制工具管理的,要想获取源码,我们无法用普通方式下载,只能通过GIT获取。
一、windows 平台下获取源码
1、先下载Git For Windows ,安装。打开Git Bash,执行
cd D:git clone https://android.googlesource.com/platform/manifest.git
输入命令,切换到 manifest 目录下,使用 git tag 列出 android 各个分支版本
下载android-2.2源码,输入下面命令,如果要下载其他版本源码,checkout git tag列出的版本号即可
git checkout android-2.2_r1
checkout之后,manifest/default.xml文件中记录的就是android2.2系统各个模块的路径
我们来分析一下default.xml文件,
以bionic为例,path属性表示bionic源码的相对路径,假设android源码在d:/android-source,下载bionic之后,应该存放在d:/android-source/bionic目录
name属性是bionic源代码在库上的路径,完整的路径就是:http://android.googlesource.com/platform/bionic.git,有了源码下载路径,执行git clone就可以将bionic源码下载到本地
<project path="bionic" name="platform/bionic" />
Android源码中project很多,一个一个下载比较麻烦,本人写了一个python脚本,双击download-src.py执行此脚本,就可以将android完整源码下载到本地。
PS:执行此脚本的前提是已经执行了git checkout,选择好了要下载的Android源码版本,如果你的manifest文件不是D:/manifest/default.xml,请自行修改脚本。
download-src.py源码:
import xml.dom.minidomimport osfrom subprocess import call#downloaded source pathrootdir = "D:/android-source"#git program pathgit = "D:/Program Files/Git/bin/git.exe"dom = xml.dom.minidom.parse("D:/manifest/default.xml")root = dom.documentElementprefix = git + " clone https://android.googlesource.com/"suffix = ".git"if not os.path.exists(rootdir): os.mkdir(rootdir)for node in root.getElementsByTagName("project"): os.chdir(rootdir) d = node.getAttribute("path") last = d.rfind("/") if last != -1: d = rootdir + "/" + d[:last] if not os.path.exists(d): os.makedirs(d) os.chdir(d) cmd = prefix + node.getAttribute("name") + suffix call(cmd)
这是网上转载的,转载地址:http://blog.csdn.net/hlf48641715/article/details/7188450
我就是使用的这种方式获取的源码。
2、其实还有别的方式
使用 Cygwin + curl + repo (利用 curl 获取) + git
二、linux 平台下获取源码
linux 平台下获取也一般是采用 curl + repo (利用 curl 获取) + git 方式。网上有很多相关教程,在这里我就不写了,大家有需要的自己百度啦!
需要注意的是:android 版本源代码以前是放在 http://android.git.kernel.org 目录下,现在这个目录已经被重定向到 https://android.googlesource.com/大家把相应的访问地址使用这个目录。如果还有碰到一些链接无法访问的情况,试试修改hosts文件,网上教程很多的,大家自己GOOGLE吧。
更多相关文章
- Pycharm安装PyQt5的详细教程
- 【阿里云镜像】切换阿里巴巴开源镜像站镜像——Debian镜像
- Android屏幕分辨率正确获取及PX,DPI,DP,SP等的对应关系
- 2014.01.21 ——— android 关联android-support源码
- android 获取唯一标识
- android拍照与读取相册
- 细数Android(安卓)Studio中使用junit4测试框架中的坑
- Android(安卓)热点开关状态的判断和获取热点ssid
- Android软键盘适配问题