自從Google被牆了以後,訪問Android的API文檔一直是個問題。雖然Android SDK能夠將開發文檔下載下來離線查看,可是因爲文檔中仍然連接Google的在線資源導(js,fonts等)致訪問速度仍然很慢。
採用腳本刪掉html文件中對在線資源的引用(網上也有別人處理過的能夠下載)javascript
是脫機查看,有人還在chrome下寫了個插件。html
Android文檔更新以後,須要從新處理。腳本很慢,等待網友提供處理過的文檔又不夠及時。java
我用經常使用的瀏覽器時Firefoxandroid
項目地址: https://gitee.com/vale666/OptAndroidDocsgit
因此決定用C++從新寫一個優化Android離線文檔訪問速度的小程序。本項目採用Qt Creator開發(Linux下這個用起來很爽,很方便)。本項目在Linux編譯測試經過,理論上windows也是能夠的。chrome
本項目編譯以後會生成OptAndroidDocs,在Android的文檔目錄下執行OptAndroidDocs便可小程序
Vale@PC:~/.my_files/usr/android_develop/sdk/docs$ time OptAndroidDocs real 0m14.163s user 0m11.227s sys 0m1.180s
從上面的數據能夠看到,處理幾百兆的Android 5.0離線文檔(大概是9000多個html文件) 只用了14秒。windows
1.assets/js/docs.js中:api
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
改成:瀏覽器
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; //po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
就是註釋掉中間那一行
2.仍是assets/js/docs.js中:
// Search for matching JD docs if (text.length >= 3) { // Regex to match only the beginning of a word var textRegex = new RegExp("\b" + text.toLowerCase(), "g");
改成:
// Search for matching JD docs if (text.length >= 1000) { // Regex to match only the beginning of a word var textRegex = new RegExp("\b" + text.toLowerCase(), "g");
這第二點比較重要,若是不修改在輸入類名時, 文檔的搜索功能不能自動補全(只能補全前兩個字母)