Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android Lint 去除重復資源 之 idea探究

Android Lint 去除重復資源 之 idea探究

編輯:關於Android編程

Android Lint是很好的檢查工具,可以幫助開發者檢查很多問題,其中檢查android項目重復的資源文件非常有用。


1、命令行下使用

Android Lint有很多命令,具體可以在網上查到。今天主要使用check,這個命令目的是只進行某個或某幾個類型的檢查,比如只檢查無用的資源“lint --check UnusedResources ”。至於都有哪些類型的檢查,可以輸入命令"lint --list"來查看,也可以輸入命令"lint --show"來查看詳細介紹。我們也可以把結果保存成文件,以便我們來查看,下面是一條簡單的例子:

lint --simplehtml --check UnusedResources

這樣就可以檢查某個工程下的重復資源,並將結果保存成html文件方便查看(文件路徑不需要加引號)。


2、idea下使用

eclipse下有lint的插件,而且網上相關介紹非常多,但是idea的相關文檔就比較少。idea中已經支持android lint,如何使用呢?

在項目中點擊右鍵,在出現的右鍵菜單中有“Analyze” --> “run inspaction by Name ...”。在彈出的搜索窗口中輸入想執行的檢查類型,如“Unused Resources”。不必全部輸入就應該自動找到了,點擊後會彈出“inspaction scope”選擇窗口,選擇檢查的范圍,一般選擇整個項目或模塊。“inspaction scope”窗口下面還可以設置文件過濾,選擇好後點ok就開始檢查了。然後就可以根據檢查結果來去除重復的資源。


3、idea項目檢查不全問題。

對idea的android項目檢查是發現問題,不論是使用命令行還是idea自帶插件來檢查重復資源,根據結果可以發現檢查的並不全面,沒有檢查圖片資源。但是網上一些文檔卻很明確lint能檢查圖片資源,那麼問題出在哪裡?

其實就是idea的android項目結構的問題,idea創建的android項目built後會發現R.java等臨時文件裡面其實是空的,而對圖片資源檢查就需要基於R.java這個文件來檢查。那麼idea項目的真正的R.java文件在哪裡?

它的位置是“C:\Users\\.IntelliJIdea13\system\compile-server\\targets\java-production\\android\generated_sources\aapt\\R.java”。

自己簡單研究了一下,找出了一個比較笨拙的解決方法。對命令行和idea,具體解決方法有些不同:

(1)命令行下。在項目下手的建立gen文件夾,在其下建立包名對應的文件夾,然後將R.java復制到下面。然後再使用lint來進行檢查就可以了。因為android默認的文件結構R.java文件是在gen下的,所以lint會去這個文件夾下找R.java文件。

(2)idea下。與命令行的方法類似,不過根據創建的項目類型的不同,R.java存在的文件夾也不同。比如maven項目會在“target\generated-sources\r”下(想知道本項目的R.java文件位置,可以在項目右鍵菜單“open modules setting” --> "modules"中,選擇對應的模塊下的"Android",在右邊窗口中選擇“Generated Sources”選項卡,下面可以看到對應的設置,也可以對其進行修改。)。將R.java復制到對應的文件夾下替換空的R.java文件,然後在使用idea的lint來檢查就會檢查圖片資源了。

(3)idea maven下。用idea對android項目編譯,項目目錄下R.java是空的。但是用maven來編譯,會在目錄下生成完整的R.java文件,就可以直接lint了。如何maven編譯呢?首先項目是maven項目,然後在工具欄的運行選項那裡選擇“edit configurations”。在彈出的“run/debug configurations”窗口中點擊“+”添加一個maven項,在右欄中定義名字,然後在"command line"中填入“clean compile”。這樣就添加了一個運行選項,然後選擇新添的去run,就可以用maven來編譯項目了,這樣就會生成完整的R.java文件


小小總結一下,之所以idea項目會出現問題,究其原因還是idea沒有將R.java等臨時文件放在項目目錄下,這也是idea的一個特色。上面的解決方法也比較笨拙,不知道是否還有更有效便捷的方法,如果有人知道希望可以指點一下。而且還有一個文件,就是styles.xml文件中重復的部分仍然無法檢測出來,有人知道是什麼問題麼?

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved