android doc 本地文档加载慢的解决办法
从来都是翻墙上谷歌官网查文档,但是有时没办法翻墙,就得用sdk本地的doc文档了,由于文档内部的一些javascript,font等也需要访问Google来加载,导致了打开本地网页也巨慢无比,甚至转了半天圈都打不开,后来经过查找,发现可通过360提供的资源来替换Google的,这样打开的就快得多了。话不多说,上代码批量修改:
package test.qin.fileio; import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; public class Main {
<span style="white-space:pre"> </span>ExecutorService executors = Executors.newFixedThreadPool(2); <span style="white-space:pre"> </span>public static void main(String[] args) throws InterruptedException {
<span style="white-space:pre"> </span>Main m = new Main();
<span style="white-space:pre"> </span>File f = new File("F:\\sdk\\docs");
<span style="white-space:pre"> </span>m.googleCDNChange(f);
<span style="white-space:pre"> </span>m.close();
<span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>/**
<span style="white-space:pre"> </span> * 将谷歌CDN修改为360CDN
<span style="white-space:pre"> </span> *
<span style="white-space:pre"> </span> * @param rootFile
<span style="white-space:pre"> </span> * 本地文件根目录,或本地文件
<span style="white-space:pre"> </span> */
<span style="white-space:pre"> </span>public void googleCDNChange(File rootFile) {
<span style="white-space:pre"> </span>if (rootFile != null && rootFile.exists()) {
<span style="white-space:pre"> </span>// 是个文件夹,则修改它包含的文件
<span style="white-space:pre"> </span>if (rootFile.isDirectory()) {
<span style="white-space:pre"> </span>File[] childs = rootFile.listFiles();
<span style="white-space:pre"> </span>for (File f : childs) {
<span style="white-space:pre"> </span>googleCDNChange(f);
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>} else {
<span style="white-space:pre"> </span>// 是个文件,则修改自身
<span style="white-space:pre"> </span>ReplaceRunnable r = ReplaceRunnable.CreateNew(rootFile, this);
<span style="white-space:pre"> </span>star(r);
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>/**
<span style="white-space:pre"> </span> * 替换字符串
<span style="white-space:pre"> </span> *
<span style="white-space:pre"> </span> * @param f
<span style="white-space:pre"> </span> */
<span style="white-space:pre"> </span>public void replaceString(File f) {
<span style="white-space:pre"> </span>try {
<span style="white-space:pre"> </span>String fileName = f.getName();
<span style="white-space:pre"> </span>if (!fileName.endsWith(".html") && !fileName.endsWith(".js")) {
<span style="white-space:pre"> </span>return;
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>System.out.println(fileName + "开始修改");
<span style="white-space:pre"> </span>FileReader fileInputStream = new FileReader(f);
<span style="white-space:pre"> </span>BufferedReader bufferedReader = new BufferedReader(fileInputStream);
<span style="white-space:pre"> </span>StringBuffer sb = new StringBuffer();
<span style="white-space:pre"> </span>String tmp = null;
<span style="white-space:pre"> </span>while ((tmp = bufferedReader.readLine()) != null) {
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>tmp = tmp.replace("fonts.googleapis.com", "fonts.useso.com");
<span style="white-space:pre"> </span>tmp = tmp.replace("ajax.googleapis.com", "ajax.useso.com");
<span style="white-space:pre"> </span>tmp = tmp.replace("www.google.com/jsapi",
<span style="white-space:pre"> </span>"ajax.useso.com/jsapi");
<span style="white-space:pre"> </span>tmp = tmp.replace("www.google-analytics.com", "");
<span style="white-space:pre"> </span>tmp = tmp.replace("www.google-analytics.com/analytics.js", "");
<span style="white-space:pre"> </span>tmp = tmp.replace("(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){", "");
<span style="white-space:pre"> </span>tmp = tmp.replace("(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),", "");
<span style="white-space:pre"> </span>tmp = tmp.replace("m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)", "");
<span style="white-space:pre"> </span>tmp = tmp.replace("})(window,document,'script','//www.google-analytics.com/analytics.js','ga');", "");
<span style="white-space:pre"> </span>tmp = tmp.replace("ga('create', 'UA-5831155-1', 'android.com');", "");
<span style="white-space:pre"> </span>tmp = tmp.replace("ga('create', 'UA-49880327-2', 'android.com', {'name': 'universal'});", "");
<span style="white-space:pre"> </span>tmp = tmp.replace("ga('send', 'pageview');", "");
<span style="white-space:pre"> </span>tmp = tmp.replace("ga('universal.send', 'pageview');", "");
<span style="white-space:pre"> </span>sb.append(tmp);
<span style="white-space:pre"> </span>sb.append(System.getProperty("line.separator"));
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>bufferedReader.close();
<span style="white-space:pre"> </span>FileWriter fileWriter = new FileWriter(f);
<span style="white-space:pre"> </span>fileWriter.write(sb.toString().replace("",""));
<span style="white-space:pre"> </span>fileWriter.flush();
<span style="white-space:pre"> </span>fileWriter.close();
<span style="white-space:pre"> </span>System.out.println(fileName + "修改完毕");
<span style="white-space:pre"> </span>} catch (FileNotFoundException e) {
<span style="white-space:pre"> </span>e.printStackTrace();
<span style="white-space:pre"> </span>} catch (IOException e) {
<span style="white-space:pre"> </span>e.printStackTrace();
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public void star(Runnable r) {
<span style="white-space:pre"> </span>executors.execute(r);
<span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>public void close() {
<span style="white-space:pre"> </span>executors.shutdown();
<span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>static class ReplaceRunnable implements Runnable {
<span style="white-space:pre"> </span>public static ReplaceRunnable CreateNew(File f, Main m) {
<span style="white-space:pre"> </span>ReplaceRunnable r = new ReplaceRunnable();
<span style="white-space:pre"> </span>r.f = f;
<span style="white-space:pre"> </span>r.m = m;
<span style="white-space:pre"> </span>return r;
<span style="white-space:pre"> </span>} <span style="white-space:pre"> </span>private File f;
<span style="white-space:pre"> </span>private Main m; <span style="white-space:pre"> </span>@Override
<span style="white-space:pre"> </span>public void run() {
<span style="white-space:pre"> </span>m.replaceString(f);
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>}
<span style="white-space:pre"> </span>
<span style="white-space:pre"> </span>
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
android doc 本地文档加载慢的解决办法的更多相关文章
- vs 修改活动解决方案配置后无法调试,不生成pdb文件,“当前不会命中断点 还没有为该文档加载任何符号” 解决方法
修改vs的活动解决配置后无法进行调试,比如在Release.Debug之后新增一个TEST,切换到test后就无法进行调试. 修改一下 项目属性->生成->高级 中“调试信息”改为 ful ...
- VS2010 release编译下进行调试,“当前不会命中任何断点,还没有为文档加载”问题解决方案
在release模式下调试程序,经常出现"当前不会命中任何断点,还没有为文档加载"的问题,可尝试以下方法: 1. 属性 → 配置属性 → C/C++ → 常规 → 调试信息格式:选 ...
- Javascript绝不要使用在文档加载之后使用 document.write(), 怎么理解?
在文档加载之后使用 document.write(),会覆盖该文档. 需满足两个条件: 1.在函数内部调用document.write(): 2.通过按钮响应调用函数: 举 ...
- jQuery文档加载完毕的几种写法
js中文档加载完毕.一般在body加一个onload事件或者window.onload = function () {} jQuery中有好多写法,平时也不注意,别人一问,还真觉得头大. 下面是我整理 ...
- 原生JS与jQuery文档加载完毕的写法
HTML是有执行顺序的,默认是自上而下执行.所以当我们的js代码在html代码下边的时候,可以正常执行,而当我们的js代码在html代码上边的时候,可以就无法正常执行了,这时,我们需要在文档加载完毕的 ...
- js坚持不懈之14:不要在文档加载之后使用 document.write()示例
在看w3school的JavaScript教程时,关于文档输出流中有这么一句话:绝不要在文档加载之后使用 document.write().这会覆盖该文档. 不太明白什么意思,找了一个例子: < ...
- release环境下,当前不会命中断点,还没有为该文档加载任何符号
今天在release编译环境下出现了如标题所说的问题“ 当前不会命中断点,还没有为该文档加载任何符号”,在网上找了几个方法都没有解决我的问题,咨询了一下师傅,解决了,很简单,方法如下:右键--属性-- ...
- 使用js主函数的原因是等文档加载完了才给里面的元素添加东西 如果不使用主函数则文档加载时候无法找到元素则不能成功给元素添加事件
使用js主函数的原因是等文档加载完了才给里面的元素添加东西 如果不使用主函数则文档加载时候无法找到元素则不能成功给元素添加事件
- 遇到Visual Studio "当前不会命中断点.还没有为该文档加载任何符号"的情况
一.问题及原因 有这样一种调用逻辑:A.exe调用B.dll.现在想要在B的源代码中打断点,从A发起进行调试,却给出了"当前不会命中断点.还没有为该文档加载任何符号"的提示.感觉十 ...
随机推荐
- 如何将std::string转int,double? (C/C++) (C) (template)
http://www.cnblogs.com/oomusou/archive/2008/08/01/525647.html http://blog.sina.com.cn/s/blog_a843a88 ...
- oracle中extents存在的理由
extents的特性:1:一个extent由相连的多个blocks组成,多个extents组成一个segment,2:oracle在为segment分配空间时,是以extent为单位因此extents ...
- PostgreSQL的 initdb 源代码分析之七
继续分析:由于我使用initdb的时候,没有指定 locale,所以会使用OS的缺省locale,这里是 en_US.UTF-8 printf(_("The files belonging ...
- Codeforces Round #326 (Div. 2) B. Duff in Love 分解质因数
B. Duff in Love Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/588/proble ...
- c# 将PPT转换成HTML
这只是一个小程序,就是将ppt转换成html,方法很多,为了以后备用,在此记录一下,也和大家分享 源码如下: using System; using System.Collections.Generi ...
- 在 C# 中加载自己编写的动态链接库
一.发生的背景 在开发新项目中使用了新的语言开发 C# 和新的技术方案 WEB Service,但是在新项目中,一些旧的模块需要继续使用,一般是采用 C 或 C++ 或 Delphi 编写的,如 ...
- GLSL实现Ambient Occlusion 【转】
http://blog.csdn.net/a3070173/archive/2008/11/04/3221181.aspx 相信使用OpenGl或DirectX3D的朋友都知道到固定功能管线在光照处理 ...
- sed常见使用方法总结
编辑文本 sed -i '1i xyz' test.txt 在第一行之前 sed -i '1a xyz' test.txt 在第一行之后插入 sed -i '1c xyz' test.txt 把第一行 ...
- web app页面要求
代码: <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum- ...
- android应用程序ANR定义
在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框.用户可以选择 ...