Android離線Doc文檔訪問(wèn)速度慢的有效解決方法
(1)我們?cè)谠L問(wèn)Android的離線文檔,是非常慢的,由于需要加載一些圖片或者是動(dòng)態(tài)的腳本語(yǔ)言js代碼,
網(wǎng)上的解決方法是刪除所有的js含有鏈接的代碼,這種方法不但笨拙,還不可以有效解決;
寫(xiě)一個(gè)java文件,運(yùn)行后即可快速訪問(wèn)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;
}
}
編譯運(yùn)行后,即可
(2)我的方法是,是有一個(gè)單獨(dú)的游覽器(作為開(kāi)發(fā)者,至少有那么兩三個(gè)吧?。?,來(lái)作為訪問(wèn)該離線文檔的游覽器,比如我的是用google,當(dāng)我們需要訪問(wèn)的時(shí)候,我們可以使用 騰訊管家 360等 把游覽器設(shè)置為 ---禁止訪問(wèn)網(wǎng)絡(luò),然后就可以訪問(wèn)了!
具體我的過(guò)程是:我使用的是騰訊管家,右鍵點(diǎn)解小火箭

進(jìn)入 流量監(jiān)控

然后找到chrome 點(diǎn)擊右鍵 第一選項(xiàng)---禁止訪問(wèn)網(wǎng)絡(luò) 就可以了
當(dāng)我們需要使用chrome訪問(wèn)網(wǎng)絡(luò)的時(shí)候,在按照上圖 允許范圍跟網(wǎng)絡(luò)就可以了!
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
- Android使用google breakpad捕獲分析native cash
- Android應(yīng)用動(dòng)態(tài)修改主題的方法示例
- Android樣式和主題之選擇器的實(shí)例講解
- Android點(diǎn)擊Button實(shí)現(xiàn)切換點(diǎn)擊圖片效果的示例
- Android開(kāi)發(fā)實(shí)現(xiàn)切換主題及換膚功能示例
- Android單選按鈕RadioButton的使用詳解
- Android開(kāi)關(guān)控件Switch的使用案例
- Android開(kāi)發(fā)實(shí)現(xiàn)的保存圖片到相冊(cè)功能示例
- Android開(kāi)發(fā)之組件GridView簡(jiǎn)單使用方法示例
- Android文字基線Baseline算法的使用講解
相關(guān)文章
android實(shí)現(xiàn)常駐通知欄遇到的問(wèn)題及解決辦法
這篇文章主要介紹了android實(shí)現(xiàn)常駐通知欄遇到的問(wèn)題及解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06
Android使用MediaRecorder類(lèi)進(jìn)行錄制視頻
這篇文章主要介紹了Android使用MediaRecorder類(lèi)進(jìn)行錄制視頻的相關(guān)資料,需要的朋友可以參考下2015-10-10
Android編程設(shè)置TextView顏色setTextColor用法實(shí)例
這篇文章主要介紹了Android編程設(shè)置TextView顏色setTextColor用法,結(jié)合實(shí)例形式分析了Android設(shè)置TextView顏色setTextColor、ColorStateList等方法的使用技巧與布局文件的設(shè)置方法,需要的朋友可以參考下2016-01-01
Android ViewPager實(shí)現(xiàn)無(wú)限循環(huán)的實(shí)例
這篇文章主要介紹了Android ViewPager實(shí)現(xiàn)無(wú)限循環(huán)的實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-07-07
Apache?Cordova?Android原理應(yīng)用實(shí)例詳解
這篇文章主要為大家介紹了Apache?Cordova?Android原理應(yīng)用實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Android OpenGL ES實(shí)現(xiàn)簡(jiǎn)單綠幕摳圖
這篇文章主要為大家介紹了Android OpenGL ES實(shí)現(xiàn)簡(jiǎn)單綠幕摳圖示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
Android 實(shí)現(xiàn)閃屏頁(yè)和右上角的倒計(jì)時(shí)跳轉(zhuǎn)實(shí)例代碼
本文給大家分享一段實(shí)例代碼給大家介紹android實(shí)現(xiàn)閃屏頁(yè)和右上角的倒計(jì)時(shí)跳轉(zhuǎn)實(shí)例代碼,閃屏頁(yè)用到了handler和CountDownTimer類(lèi),還需配置一下Activity的主題,感興趣的朋友參考下吧2016-02-02
解決android報(bào)錯(cuò):Intel HAXM is required to run this AVD
這篇文章主要介紹了解決android報(bào)錯(cuò):Intel HAXM is required to run this AVD,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11
使用Composing?builds提升Android編譯速度
這篇文章主要介紹了使用Composing?builds提升Android編譯速度示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

