Android帮助文档本地打开慢的解决方案

1. 打开index.html,然后注释掉两个地方 stylesheet和js两个地方:
<!--<link rel="stylesheet"
href="http://fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">-->
<!--<script src="http://www.google.com/jsapi" type="text/javascript"></script>-->

然后保存


2. C:\Windows\System32\drivers\etc\HOSTS
增加如下部分,瞬间提速
127.0.0.1 fonts.googleapis.com
127.0.0.1 www.google.com




http://my.oschina.net/willedward/blog/91260
网上看到很多人咨询这样的问题,于是笔者就打算编写一段代码去解决这样的问题。看来本人比较幸运的解决个这个问题。以下是源码,分享给大家。

1
这个是简单的java类,编译运行即可。因为Android SDK的docs中包含很多html文件,所以运行的时间可能较长,请大家耐心等待,
运行完之后再次访问docs将变得很快。笔者以测试过,非常好用!忘了告诉大家了,这是Windows版本的,Linux版本后续推出。谢谢各位!

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//import java.util.Map;
import java.util.UUID;
 
public class AndroidDoc {
 
    private static final String Android_SDK_HOME ="D:\\android-sdks";

  // private static final String  ANDROID_SDK_HOME ="D:\\android-sdks";

    private static final String TAG = "<script src=\"http://www.google.com/jsapi\" type=\"text/javascript\"></script>";
    private static String androidSDKHome;
 
    public static void main(String[] args) {
        //Map<String, String> map = System.getenv();
        //androidSDKHome = map.get(ANDROID_SDK_HOME);
        androidSDKHome = Android_SDK_HOME;
        if (androidSDKHome != null) {
            System.out.println("Detected the Android SDK Installation path:"
                    + androidSDKHome);
            File docs = new File(androidSDKHome + "\\docs");
            System.out.println("It will take several minutes, please wait...");
            traverse(docs);
            System.out
                    .println("Operation Down!!! Now you can visit Android Doc without waiting...");
        } else {
            System.out
                    .println("Please configure the Android SDK Environment variable (ANDROID_SDK_HOME)!");
        }
    }
 
    /**
     * 遍历Android SDK安装目录下的docs目录
     * 
     * @param dir
     */
    private static void traverse(File dir) {
        if (dir.isDirectory()) {
            File[] files = dir.listFiles(new FileFilter() {
 
                @Override
                public boolean accept(File file) {
                    if (file.isFile() && file.getName().endsWith(".html")) {
                        BufferedReader reader = null;
                        try {
                            reader = new BufferedReader(new FileReader(file));
                            String buffer;
                            while ((buffer = reader.readLine()) != null) {
                                if (buffer.trim().equalsIgnoreCase(TAG)) {
                                    return true;
                                }
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        } finally {
                            try {
                                reader.close();
                            } catch (IOException e) {
                                e.printStackTrace();
                            }
                        }
                    } else if (file.isDirectory()) {
                        return true;
                    }
                    return false;
                }
            });
            for (File file : files) {
                if (file.isDirectory()) {
                    System.out.println("Scanning Folder:"
                            + file.getAbsolutePath());
                    traverse(file);
                } else {
                    doChange(file);
                }
            }
        }
    }
 
    /**
     * 注释html中的某行Javascript代码
     * 
     * @param file
     * @return
     */
    private static boolean doChange(File file) {
        System.out.println("Extracting File:" + file.getAbsolutePath() + "...");
        String desPath = file.getParent() + "\\" + UUID.randomUUID().toString() + ".html";
        File des = new File(desPath);
        BufferedReader reader = null;
        BufferedWriter writer = null;
        try {
            des.createNewFile();
            reader = new BufferedReader(new FileReader(file));
            writer = new BufferedWriter(new FileWriter(des));
            String buffer;
            while ((buffer = reader.readLine()) != null) {
                if (buffer.trim().equalsIgnoreCase(TAG)) {
                    buffer = "<!--" + TAG + "-->";
                }
                writer.write(buffer + "\n");
                writer.flush();
            }
            return true;
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                reader.close();
                writer.close();
                file.delete();
                des.renameTo(file);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return false;
    }
 
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值