<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. careercup-排序和查找 11.3

    11.3 给定一个排序后的数组,包含n个整数,但这个数组已被旋转很多次,次数不详.请编写代码找出数组中的某个元素.可以假定数组元素原先是按从小到大的顺序排序的. 解法: 可以直接从开始一个一个比较,也 ...

  2. 写个 Hello World 而已,要不要这么震撼?!

    Atom 编辑器的一个插件,可以让你写代码的时候体验狂拽酷炫的效果! 如果来点音乐.再配上机械键盘的话,写代码是不是爽到爆呢? 这货全名叫: activate-power-mode atom pack ...

  3. flex脚本的申明

    //脚本申明的格式 <fx:Script>    <![CDATA[            ]]></fx:Script> //程序完成的时候自动调用的事件 cre ...

  4. mac install php dev

    环境开发配置 mysql 下载mysql压缩包.tar.gz 解压 mv mysql_5.7.10_osx... /usr/local/mysql sudo chown -R root:wheel / ...

  5. Linux性能实时监测工具netdata安装配置

    netdata:功能强大的实时性能检测工具,展示地址. github地址:https://github.com/firehol/netdata 本文介绍在CentOS 6.7下安装netdata 1. ...

  6. Cannot load JDBC driver class 'oracle.jdbc.driver.OracleDriver'

    出现这个问题,说明oracle的驱动包没有成功加载. 1.检查maven pom.xml有没有引入驱动:        <dependency>             <group ...

  7. Css3动画库收集

    1.animate.css – 齐全的CSS3动画库 http://www.dowebok.com/98.html 2.Angular官方动画库 http://augus.github.io/ngAn ...

  8. java新手笔记13 继承

    1.Person类 package com.yfs.javase; //可以有多个子类 public class Person { private String name;// 私有属性不能继承 pr ...

  9. time.h文件中包含的几个函数使用时须注意事项

    time.h头文件中包含以下函数 char* asctime(const struct tm *tm); char* asctime_r(const struct tm *tm,char *buf); ...

  10. swift基本语法

    swift种语法着实怪异,实质干的事情还是一样的,一下将对此语法做简单介绍: 1.swift语法种已经剔除“:”这个结束符号,下面将演示入门操作的hello world import Foundati ...