Android离线Doc文档访问速度慢的有效解决方法
作者:徐刘根 时间:2021-06-27 02:10:39
(1)我们在访问Android的离线文档,是非常慢的,由于需要加载一些图片或者是动态的脚本语言js代码,
网上的解决方法是删除所有的js含有链接的代码,这种方法不但笨拙,还不可以有效解决;
写一个java文件,运行后即可快速访问doc
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 = "ANDROID_SDK_HOME";
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);
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;
}
}
编译运行后,即可
(2)我的方法是,是有一个单独的游览器(作为开发者,至少有那么两三个吧!),来作为访问该离线文档的游览器,比如我的是用google,当我们需要访问的时候,我们可以使用 腾讯管家 360等 把游览器设置为 ---禁止访问网络,然后就可以访问了!
具体我的过程是:我使用的是腾讯管家,右键点解小火箭
进入 流量监控
然后找到chrome 点击右键 第一选项---禁止访问网络 就可以了
当我们需要使用chrome访问网络的时候,在按照上图 允许范围跟网络就可以了!
来源:https://blog.csdn.net/xlgen157387/article/details/42062623
标签:android,离线文档,访问速度慢
0
投稿
猜你喜欢
关于springcloud集成nacos遇到的问题
2022-02-27 17:41:46
使用Mybatis-Plus时的SqlSessionFactory问题及处理
2022-01-30 07:40:04
Java 线程的优先级(setPriority)案例详解
2023-11-12 23:46:39
Android进阶Handler应用线上卡顿监控详解
2022-12-21 11:31:00
详解Java多态对象的类型转换与动态绑定
2021-10-12 06:59:59
浅谈c++性能测试工具之计算时间复杂度
2023-07-09 12:40:05
Android获取ROOT权限的实例代码
2022-09-10 01:24:05
Java 格式化输出JSON字符串的2种实现操作
2023-11-13 09:41:10
如何安装系统认证签名过的APK
2023-07-24 21:35:40
java Spring MVC4环境搭建实例详解(步骤)
2021-11-17 05:08:08
SpringCloud hystrix断路器与局部降级全面介绍
2023-10-28 17:29:11
SpringBoot 如何整合 ES 实现 CRUD 操作
2022-03-24 03:10:31
Spring中自动注入的两种方式总结
2022-10-24 08:54:14
Java带返回值的方法的定义和调用详解
2022-10-05 21:01:09
关于Maven的使用,这些你都真的了解么
2022-01-02 14:19:08
Spring Boot Actuator监控端点小结
2023-02-15 05:04:23
详细聊聊如何在C#循环中捕获局部变量
2021-10-30 17:05:13
c# 关闭窗体时提示的小例子
2021-11-10 19:08:18
Android图片加载缓存框架Glide
2021-11-13 12:43:02
Android中访问sdcard路径的几种方式
2023-06-23 08:08:59