Cizel 发表于 2015-10-22 14:28

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

本帖最后由 奋斗丶小Z 于 2015-10-22 16:42 编辑


    同学遇到了更新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("https://raw.githubusercontent.com/racaljk/hosts/master/hosts");
            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


luoky7 发表于 2015-11-13 18:58

http://www.androiddevtools.cn/ 据说这个网站不错

Cizel 发表于 2015-10-22 17:12

BestVayne_Fan 发表于 2015-10-22 17:08
没有安卓可用的hosts吗?电脑的不需要更新器吧 百度的ip用了大半年还是有效

你可以直接放在安卓里面的

为他人做嫁衣` 发表于 2015-10-22 15:00

我断不思量,你莫思量我

dickl 发表于 2015-10-22 15:03

这个是个很好的处理方法

红客鄙哥 发表于 2015-10-22 15:10

shmzh888 发表于 2015-10-22 15:27

楼主威武

我要开始装逼了 发表于 2015-10-22 15:47

没看懂啥意思啊

知更鸟的传说 发表于 2015-10-22 15:50

直接这个 什么鬼{:301_999:}

Cizel 发表于 2015-10-22 16:41

知更鸟的传说 发表于 2015-10-22 15:50
直接这个 什么鬼

给软件管理员权限

BestVayne_Fan 发表于 2015-10-22 17:08

没有安卓可用的hosts吗?电脑的不需要更新器吧 百度的ip用了大半年还是有效
页: [1] 2 3
查看完整版本: 解决Android SDK Manager更新(一个更新Host的程序的原理实现和源码)