加快Android離線文檔的訪問速度

OptAndroidDocs

背景:

自從Google被牆了以後,訪問Android的API文檔一直是個問題。雖然Android SDK能夠將開發文檔下載下來離線查看,可是因爲文檔中仍然連接Google的在線資源導(js,fonts等)致訪問速度仍然很慢。
  • 網上大概有2種方法:
  1. 採用腳本刪掉html文件中對在線資源的引用(網上也有別人處理過的能夠下載)javascript

  2. 是脫機查看,有人還在chrome下寫了個插件。html

  • 可是我對以上兩種方法還不夠滿意:
  1. Android文檔更新以後,須要從新處理。腳本很慢,等待網友提供處理過的文檔又不夠及時。java

  2. 我用經常使用的瀏覽器時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");

這第二點比較重要,若是不修改在輸入類名時, 文檔的搜索功能不能自動補全(只能補全前兩個字母)

相關文章
相關標籤/搜索