Windows下下载全部Android源码

 

首先,到 http://code.google.com/p/msysgit/downloads/list 上下载Git-xxx.exe,安装。基本上是一路确定到底。

接下来,用cd命令进入到你要下载Android源代码的目录,或者直接在该目录上右键选择Git bash(安装的时候选择了加入右键菜单的话),再执行git clone  命令,就可以直接下载指定的package。

举例来说,要下载Calculator这个应用的源码,输入git clone git://android.git.kernel.org/platform/packages/apps/Calculator.git就可以了。

你可以在 http://git.source.android.com这个网站上看到所有模块的路径。

如果要下载全部源码,要费一些周折。

首先准备个4G左右的磁盘空间。

接下来进入上面那个网站,点击右下方那个TXT的图标,把所有的路径存到一个txt文件里,默认是android.git.kernel.org.txt。

然后就需要把这些路径转化为命令,让所有源代码按本来的目录存放。我用Java写了个简单的处理函数:import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class GenGitUpdateSh { public static void main(String[] args) { File srcFile = new File(args[0]); File destFile = new File(args[1]); String srcDir = args[2]; BufferedReader reader = null; BufferedWriter writer = null; try { reader = new BufferedReader(new FileReader(srcFile)); writer = new BufferedWriter(new FileWriter(destFile)); String oneLine = null; String path = null; String outputString = null; String split = new String(".git"); String gitGet = new String("git clone git://android.git.kernel.org/"); while ((oneLine = reader.readLine()) != null) { int pathEnd = oneLine.indexOf(split); if (pathEnd >= 0) { path = oneLine.substring(0, pathEnd); // like this: git clone git://android.git.kernel.org/platform/docs/source.android.com.git E:/android_src_2.3.3/platform/docs/source.android.com; outputString = gitGet + path + split + " " + srcDir + "/" + path + ";/n"; writer.write(outputString); } } reader.close(); writer.close(); } catch (IOException e) { e.printStackTrace(); } } } 

编译后,在命令行输入java GenGitUpdateSh android.git.kernel.org.txt updatesrc.sh E:/Android_Src,其中第一参数为从网站上得到的所有模块的路径文件,第二个参数是最终我们要使用的下载所有源代码的命令文件,第三个参数是存放源代码的根目录。

执行以后,输出文件里的每一行都是类似这样的:git clone git://android.git.kernel.org/platform/packages/apps/Calculator.git E:/android_src_2.3.3/platform/packages/apps/Calculator;

最后在Git bash的命令行输入updatesrc.sh,就开始一个模块一个模块地下载了。

 

你可能感兴趣的:(软件技术)