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,离线文档,访问速度慢
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
springboot集成开发实现商场秒杀功能
2022-06-23 11:05:27
![](https://img.aspxhome.com/file/2023/3/61263_0s.jpg)
Android之获取手机内部及sdcard存储空间的方法
2022-11-11 13:10:18
C#警惕匿名方法造成的变量共享实例分析
2021-08-26 19:35:22
Mybatis逆向工程运行代码实例
2021-06-22 04:54:59
![](https://img.aspxhome.com/file/2023/4/62144_0s.png)
Unity键盘WASD实现物体移动
2021-06-14 13:46:21
![](https://img.aspxhome.com/file/2023/3/71073_0s.jpg)
Android实现关机重启的方法分享
2022-11-13 21:32:33
spring框架集成flyway项目的详细过程
2023-09-14 11:47:14
![](https://img.aspxhome.com/file/2023/7/70307_0s.jpg)
Java中instanceof关键字的用法总结
2022-12-11 15:52:27
详解Java程序读取properties配置文件的方法
2022-03-09 17:26:23
详解java基于MyBatis使用示例
2023-11-25 09:01:45
![](https://img.aspxhome.com/file/2023/0/59060_0s.png)
详解SpringBoot注解读取配置文件的方式
2023-08-05 02:51:16
java hasNextInt判断是否为数字的方法
2023-05-17 01:51:12
一文详解kafka序列化器和拦截器
2023-06-18 01:06:08
![](https://img.aspxhome.com/file/2023/1/74751_0s.jpg)
Java单元测试工具之JUnit的使用
2022-09-05 13:20:54
![](https://img.aspxhome.com/file/2023/3/102003_0s.png)
Spring的@RequestParam对象绑定方式
2023-02-03 21:05:35
java获取json中的全部键值对实例
2023-08-23 19:53:03
spring boot 注入 property的三种方式(推荐)
2023-01-23 05:10:27
Java语法中Lambda表达式无法抛出异常的解决
2022-10-13 01:04:43
mybatis的动态SQL和模糊查询实例详解
2022-03-10 09:47:03
![](https://img.aspxhome.com/file/2023/1/99851_0s.png)
java实现幸运抽奖功能
2023-11-27 07:24:16
![](https://img.aspxhome.com/file/2023/9/60479_0s.jpg)