搭建Android SDK镜像服务器

前言

由于众所周知的原因,Google系列的产品在国内的网络环境下都不好使,Android SDK也不例外,不仅下载速度慢,大多数时候根本无法连接,对此,已经有一些国内搭建的镜像,如AndroidDevTools,但下载速率严重依赖于镜像服务器的带宽和你自己的带宽。所以在内网搭建一个Android SDK镜像服务器很有必要,一方面可以保证速度,另一方面也可以保证安全性。

方案

我这里选择的是苏州GDG的开源方案
android-repository

详细步骤

安装指引

参考作者的一个幻灯片文档即可
Make a LAN mirror of everything you need to develop Android apps
主要步骤如下:

1
2
3
4
5
6
7
8
9
cd /var/www/hu.dushu.studyjams
git clone https://github.com/renfeng/android-repository script
./script/download.sh
sudo aptitude install apache2
# apache httpd 2.4
<VirtualHost *:80>
DocumentRoot /var/www/hu.dushu.studyjams
</VirtualHost>

以下是我在Ubuntu 12.04.5 LTS系统上的操作步骤

克隆git仓库

1
2
3
4
5
6
7
8
9
huzhifeng@Ubuntu12045:~/temp$ mkdir -p diy-mirrors
huzhifeng@Ubuntu12045:~/temp$ cd diy-mirrors/
huzhifeng@Ubuntu12045:~/temp/diy-mirrors$ git clone https://github.com/renfeng/android-repository.git script
Cloning into 'script'...
remote: Counting objects: 373, done.
remote: Total 373 (delta 0), reused 0 (delta 0), pack-reused 373
Receiving objects: 100% (373/373), 614.85 KiB | 203 KiB/s, done.
Resolving deltas: 100% (188/188), done.
huzhifeng@Ubuntu12045:~/temp/diy-mirrors$

设置代理

因为下载SDK需要翻墙,脚本download.sh是通过wget命令下载,所以设置环境变量http_proxyhttps_proxy即可

1
2
huzhifeng@Ubuntu12045:~/temp/diy-mirrors$ export http_proxy=http://192.168.1.189:1080
huzhifeng@Ubuntu12045:~/temp/diy-mirrors$ export https_proxy=http://192.168.1.189:1080

下载SDK

现在可以开始执行./script/download.sh下载了,这是一个相当漫长的过程,因为总共要下载二十多GB的数据

1
2
3
4
huzhifeng@Ubuntu12045:~/temp/diy-mirrors$ ./script/download.sh
huzhifeng@Ubuntu12045:~/temp/diy-mirrors$ du -hs .
23G .
huzhifeng@Ubuntu12045:~/temp/diy-mirrors$

安装HTTP服务

其中开启Nginx的目录列表显示参考了官网
Module ngx_http_autoindex_module

1
2
3
4
5
6
7
8
9
10
11
12
13
14
huzhifeng@Ubuntu12045:~/temp/diy-mirrors$ sudo apt-get install -y nginx
huzhifeng@Ubuntu12045:~/temp/diy-mirrors$ cp /etc/nginx/sites-enabled/default ~/temp/default.bak
huzhifeng@Ubuntu12045:~/temp/diy-mirrors$ sudo vim /etc/nginx/sites-enabled/default
huzhifeng@Ubuntu12045:~/temp/diy-mirrors$ diff /etc/nginx/sites-enabled/default ~/temp/default.bak
24,25c24
< #root /usr/share/nginx/www;
< root /home/huzhifeng/temp/diy-mirrors;
---
> root /usr/share/nginx/www;
37d35
< autoindex on;
huzhifeng@Ubuntu12045:~/temp/diy-mirrors$
huzhifeng@Ubuntu12045:~/temp/diy-mirrors$ sudo service nginx status
huzhifeng@Ubuntu12045:~/temp/diy-mirrors$ sudo service nginx start

测试

截图如下

Android SDK在线更新镜像服务器

  1. 南阳理工学院镜像服务器地址:
    mirror.nyist.edu.cn 端口:80
  2. 中国科学院开源协会镜像站地址:
    IPV4/IPV6: mirrors.opencas.cn 端口:80
    IPV4/IPV6: mirrors.opencas.org 端口:80
    IPV4/IPV6: mirrors.opencas.ac.cn 端口:80
  3. 上海GDG镜像服务器地址:
    sdk.gdgshanghai.com 端口:8000
  4. 北京化工大学镜像服务器地址:
    IPv4: ubuntu.buct.edu.cn/ 端口:80
    IPv4: ubuntu.buct.cn/ 端口:80
    IPv6: ubuntu.buct6.edu.cn/ 端口:80
  5. 大连东软信息学院镜像服务器地址:
    mirrors.neusoft.edu.cn 端口:80
  6. 腾讯Bugly 镜像:
    android-mirror.bugly.qq.com 端口:8080
    腾讯镜像使用方法:http://android-mirror.bugly.qq.com:8080/include/usage.html

使用方法

  1. 启动 Android SDK Manager ,打开主界面,依次选择『Tools』、『Options…』,弹出『Android SDK Manager - Settings』窗口;
  2. 在『Android SDK Manager - Settings』窗口中,在『HTTP Proxy Server』和『HTTP Proxy Port』输入框内填入上面镜像服务器地址(不包含http://,如下图)和端口,并且选中『Force https://… sources to be fetched using http://...』复选框。设置完成后单击『Close』按钮关闭『Android SDK Manager - Settings』窗口返回到主界面;
  3. 依次选择『Packages』、『Reload』。

参考资料

Android SDK镜像服务器搭建
Android SDK镜像服务器搭建 | Jason’s Blog
Make a LAN mirror of everything you need to develop Android apps
Module ngx_http_autoindex_module

其它方案

中科院开源镜像小组
opencas/mirrors
中科院开源协会镜像站 Android SDK镜像测试发布
TODO

EOF