<ignore_js_op> 
    同学遇到了更新Android SDK的问题,而且Goagent现在也无法用来更新。
就想到了用替代Host的方法,添加可用的谷歌地址来实现更新。
    更新Host文件之后的功能:访问谷歌,更新Android SDK

原理分析:

1. github上的一个hosts项目(https://github.com/racaljk/hosts),获取到最新的Host的文件

2. 获取hosts的文本网页(https://raw.githubusercontent.com/racaljk/hosts/master/hosts)

3. 把提取这个网页的内容,并且替换在C:\Windows\System32\drivers\etc\hosts的文件中

C#中得到网页内容的函数:

private string GetGeneralContent(string strUrl)
{
string strMsg = string.Empty;
try
{
WebRequest request = WebRequest.Create(strUrl);
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312")); strMsg = reader.ReadToEnd(); reader.Close();
reader.Dispose();
response.Close();
}
catch
{ }
return strMsg;
}

  按钮点击事件:

private void button1_Click(object sender, EventArgs e)
{
string add = GetGeneralContent("[url=https://raw.githubusercontent.com/racaljk/hosts/master/hosts"]https://raw.githubusercontent.com/racaljk/hosts/master/hosts"[/url]);
if (add != "")
{
//string str2 = File.ReadAllText(@"C:\Windows\System32\drivers\etc\hosts", Encoding.ASCII);
//str2 = str2 + '\n' + add;
string str2 = add;
File.WriteAllText(@"C:\Windows\System32\drivers\etc\hosts", str2, Encoding.ASCII);
MessageBox.Show( "修改成功" ,"xiaoz 提示:");
}
else {
MessageBox.Show("修改失败", "xiaoz 提示:");
}
}

  

软件运行图(需要管理员权限):

Android SDK更新图:

软件需要管理员权限

软件需要管理员权限

软件需要管理员权限

(.net framework 4.0 环境)

软件下载地址:http://pan.baidu.com/s/1i32KqJb 密码:szo9
源码下载地址:http://pan.baidu.com/s/1eQ2kw3g 密码:7er9

解决Android SDK Manager更新(一个更新Host的程序的原理实现和源码)的更多相关文章

  1. 解决Android SDK Manager更新、下载速度慢

    hosts文件里面原来的内容不做修改,只是添加内容 方法/步骤 先看看如何加快更新速度,再说如何更新. 首先更新host文件,如图,打开目录 C:\Windows\System32\drivers\e ...

  2. 解决Android SDK Manager 更新、下载慢以及待安装包列表不显示

    参考地址:http://www.cnblogs.com/tc310/archive/2012/12/21/2828450.html 问题描述: Android SDK Manager 无法下载更新,或 ...

  3. 完美解决Android SDK Manager无法更新

    由于国内的各种屏蔽现在Android SDK Manager出现无法更新或更新太慢,如下方法可完美解决此问题 1. 打开..\Android\sdk\SDK Manager.exe  2.

  4. 解决Android SDK Manager 更新下载慢以及待安装包列表不显示

    问题描述: Android SDK Manager 无法下载更新,或者更新速度超慢,或者待安装包列表不显示 解决方法: 第一步:修改hosts文件 修改后的hosts 文件内容为: 127.0.0.1 ...

  5. android SDK manager 无法获取更新版本的解决办法

    http://mirrors.neusoft.edu.cn/eclipse/releases/luna/打开这个网址就可以看到adt的详细信息:  http://developer.android.c ...

  6. (转)解决Android SDK Manager无法更新或下载太慢问题

    原帖地址:http://blog.csdn.net/exlsunshine/article/details/22208857 天朝的网络...哎~真是无语...还好最近装了谷歌的chrome浏览器+红 ...

  7. [转] Android SDK manager 无法获取更新版本列表

      打开这个网址(LINK)就可以看到adt的详细信息. 或者直接在你的eclipse的Help > Install New Software里面add,地址直接输入 https://dl-ss ...

  8. Android SDK Manager国内无法更新的解决方案

    万里长城永不倒,千里黄河水滔滔.算了跑题了. 但还是要吐槽这下这个万里长城,感谢 方滨兴 叫兽 给我们净化了互联网,靠!什么&!@#¥ 此处略去一万字. 现在由于GWF,google基本和咱们 ...

  9. (转)Android SDK Manager国内无法更新的解决方案

    转载地址:http://www.linuxidc.com/Linux/2015-01/111958.htm 现在由于GWF,google基本和咱们说咱见了,就给现在在做Android  或者想学习An ...

随机推荐

  1. 进程控制之更改用户ID和组ID

    在UNIX系统中,特权(例如能改变当前日期的表示法以及访问控制(例如,能否读.写一特定文件))是基于用户ID和组ID的.当程序需要增加特权,或需要访问当前并不允许访问的资源时,我们需要更换自己的用户I ...

  2. Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(四)

    这一章大象将详细分析web层代码,以及使用Spring MVC的注解及其用法和其它相关知识来实现控制器功能.     之前在使用Struts2实现MVC的注解时,是借助struts2-conventi ...

  3. PHPinstanceof filal这几个关键字的使用

    instanceof表示属不属于的意思 eg: class person{} class Student extends person{} $s=new person(); $st=new stude ...

  4. Java 计算文件大小

    long available = (long)getAttachmentContent(att.getId()).available();   public static String bytesTr ...

  5. oracle数据库没有监听服务与实例服务(OracleServicesXX)的解决方法

    不知道为什么,可能是因为更新系统的原因,过了一段时间,想打开oracle服务,发现居然没有任何oracle有关的服务了,但以前的数据库文件什么的都在,心想肯定是可以复原的,应该只是注册表的问题罢了.在 ...

  6. jBPM5 vs Actitivi

    http://www.blogways.net/blog/2013/07/16/activiti-jbpm-compare.html jBPM是目前市场上主流开源工作引擎之一,在创建者Tom Baey ...

  7. TS格式解析

    1.TS格式介绍 TS:全称为MPEG2-TS.TS即"Transport Stream"的缩写.它是分包发送的,每一个包长为188字节(还有192和204个字节的包).包的结构为 ...

  8. 执行mysql脚本

    方法1: mysql -uroot -p123456 -Ddatabasename < sql文件路径 方法2: source 路径全名 \. 路径全名

  9. Windows server 2003常用设置

    1.禁用配置服务器向导   由于不需要服务器设置功能,首先我们先禁止“配置你的服务器”(Manage   Your   Server)向导的出现,你可以在控制面板(Control   Panel)   ...

  10. eclipse+PyDev 中报错"scrapy.spiders.Spider" ,可用"# @UndefinedVariable"压制.

    # -*- coding:utf-8 -*- ''' Created on 2015年10月22日 (1.1) 例子来源: http://scrapy-chs.readthedocs.org/zh_C ...