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发起进行调试,却给出了"当前不会命中断点.还没有为该文档加载任何符号"的提示.感觉十 ...
随机推荐
- C#学习笔记(十):反射
反射 放射是指在程序运行时动态的获取类的信息的机制,我们下面来看看C#中的反射. Type Type 为 System.Reflection 功能的根,也是访问元数据的主要方式. 使用 Type 的成 ...
- SQLServer2008设置开启INTERNET远程连接
SQL Server 2008默认是不允许远程连接的,sa帐户默认禁用的,如果想要在本地用SSMS连接远程服务器上的SQL Server 2008,需要做两个部分的配置: 使用sa账户登录SQL Se ...
- Angularjs 整体框架结构
//angulajs整体代码框架结构/** * @license AngularJS v1.2.6 * (c) 2010-2014 Google, Inc. http://angularjs.org ...
- heritrix
Heritrix3.0教程 http://blog.csdn.net/neo_liukun/article/category/1118819
- RT-Thread学习笔记(2)
这段时间稍微折腾了一下stm32,稍微知道了一点stm32程序的编写方法,所以再次拿起了rtt,因为这个东西确实很强大. 随手记录一下rtt的一些知识: 1.关于finsh 这是一个命令行系统,很好玩 ...
- Java模拟登陆【转载】
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i ...
- key 限制字符的输入
//限制字符的输入 { 只能输入以下字符 } procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);begin If (Key ...
- ios开发——实用技术篇OC篇&iOS的主要框架
iOS的主要框架 阅读目录 Foundation框架为所有的应用程序提供基本系统服务 UIKit框架提供创建基于触摸用户界面的类 Core Data框架管着理应用程序数据模型 Core ...
- 语法:MySQL中INSERT INTO SELECT的使用(转)
1. 语法介绍 有三张表a.b.c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段.对于这种情况,可以使用如下的语句来实现: INSERT INTO db1_name (fi ...
- oschina git 私有项目使用。。
工作流程 安装设置 git 下载最新版本的git http://git-scm.com/downloads 当你安装完成git的时候,你需要简单的配置一下,打开终端: 用户名 第一步,你需要告诉git ...