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发起进行调试,却给出了"当前不会命中断点.还没有为该文档加载任何符号"的提示.感觉十 ...
随机推荐
- Http Header Content-Disposition
Content-Disposition用途 Content-Disposition是为了实现服务器下载文件功能,并可提供文件名. Content-Disposition格式 content-dispo ...
- 数据访问层DAL(数据库访问抽象类DataProvider)
晒晒数据访问层DAL,看看你的项目数据访问层使用的是什么形式,数据访问性能比较 采用什么样的数据访问形式是软件编码很重要的一个环节,良好的数据访问形式不仅能够提搞代码的执行效率,协作能力,更重要的是对 ...
- Bootstrap 列偏移\列嵌套\列排序
1.列偏移 这个其实很简单就是通过一个样式类,通过.col-md-offset-*可以将列偏移到右侧.这些class通过使用*选择器将所有列增加了列的左侧margin.例如,.col-md-offse ...
- 寻ta分析与站点内容
从 寻ta 突然来的訪问量就開始在想.站点内容是否才是真正须要的东西. 寻ta分析 作为一篇文章带来的影响,我们能够看看訪问会话. 日期 訪问量 5.5 9 5.6 4618 5.7 1216 5.8 ...
- node搜索codeforces 3A - Shortest path of the king
发一下牢骚和主题无关: 搜索,最短路都可以 每日一道理 人生是洁白的画纸,我们每个人就是手握各色笔的画师:人生也是一条看不到尽头的长路,我们每个人则是人生道路的远足者:人生还像是一块神奇的土地 ...
- CDOJ 1251 谕神的密码 贪心
谕神的密码 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1251 Descr ...
- 用VS2010开发Android应用的配置方法
在开发你的第一个Android应用程序之前,你应该先检查一下是否安装了Android SDK,以及是否创建好了Android模拟器(AVD),如果有不清楚的地方,请先看百度这篇文章“Android是什 ...
- Nginx目录保护、防盗链、限速及多域名处理
http://www.opsers.org/server/nginx-directory-protection-anti-hotlinking-processing-speed-and-multi-d ...
- cookie转CookieCollection
CookieCollection cookiesResponse = new CookieCollection(); if (response != null) { foreach (string c ...
- Swift3.0语法变化
写在前面 首先和大家分享一下学习新语法的技巧:用Xcode8打开自己的Swift2.3的项目,选择Edit->Convert->To Current Swift Syntax- 让Xcod ...