Android SDK 下载速度问题
在中国网内下载 Android SDK 的一个大问题是网速太慢。比如我今天周六下载,SDK installer 下载倒挺快,但是一旦安装好以后用它的 SDK and AVD Manager 下载 SDK、文档、工具、兼容性包、示例等东西的时候就速度慢了,只有 1KB/s。于是我开始寻找比较快速的方法。
在网上搜了一下,看到百度文库里有这么一篇文章,Android SDK 2.2 开发环境详解(http://wenku.baidu.com/view/9ba622225901020207409c60.html)。里面正巧提到了网速慢怎么办的问题。首先,下载 http://dl-ssl.google.com/android/repository/repository.xml 文件。这个文件正是 Android SDK Manager 自己会先下载的索引。里面有着可下载的包的链接。当然,首先最好在 SDK Manager 里面看过到底自己想要下载哪些包(Android 网站上有说明什么包有什么用途),然后再来根据文件名找要下载的包比较方便。
然后把 repository.xml 所在的目录名加到找到的文件名头上去,例如找到 android-2.2_r03-linux.zip,全路径就是:
http://dl-ssl.google.com/android/repository/android-2.2_r03-linux.zip
我这回(2011年10月)想要下载的包是:
android-2.2_r03-linux.zip
android-3.2_r01-linux.zip
samples-2.2_r01-linux.zip
samples-3.2_r01-linux.zip
platform-tools_r07-windows.zip
(tools_r13-windows.zip) -- 这个其实已经包括在 SDK Installer 里了,没必要再下了
docs-3.2_r01-linux.zip
compatibility_r03.zip
俺一直没有装快车、迅雷等下载工具,因此直接用 wget 下了,由于它只是单线程下载,我用多个批处理文件调用它,每个类似于:wget -c -T 90 http://...zip 2>&1 这样(2>&1 是把 stderr 重定向到 stdout),然后用我的 pararun 程序来并行调用它们。不过后来想想,其实还可以用一个 2000 年的老古董下载工具 Mass Downloader 来多线程下载。
文中提到一种方法,比较繁琐,如下,但有更简单方法,后文再说:在分析 repository.xml 的时候,最好要记住要下载的文件所对应的 SDK 版本,因为接下去就要用到它来确定下载下来的文件要复制到哪个目录。按照上述百度文库里文章的说法,是类似下面的对应关系:
android-2.2_r01-windows.zip => platforms\android-8 (因为 API 版本是 8)
google_apis-8_r01.zip => add-ons\addon_google_apis_google_inc_8
docs-2.2_r01-linux.zip => doc
samples-2.1_r01-linux.zip => samples\android-7
tools_r06-windows.zip => tools
另外,add-ons 包是从别的地方找到的:http://dl-ssl.google.com/android/repository/addons_list.xml 这里面有 add-on 包的 xml 文件的 URL 列表。从这些 URL 再分别得到 add-ons。
但是似乎有一种更简单的方法,直接放到 android-sdk-windows\temp 目录里即可。然后启动 SDK Manager,就可以装模作样地把这些其实早已下载好的包安装一下了。