Android离线Doc文档访问速度慢的有效解决方法

2020-11-05 10:35:20 浏览数 (1)

(1)我们在访问Android的离线文档,是非常慢的,由于需要加载一些图片或者是动态的脚本语言js代码,

网上的解决方法是删除所有的js含有链接的代码,这种方法不但笨拙,还不可以有效解决;

写一个java文件,运行后即可快速访问doc

代码语言:javascript复制
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访问网络的时候,在按照上图 允许范围跟网络就可以了!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对ZaLou.Cn的支持。

0 人点赞