編輯:關於Android編程
Android Lint是很好的檢查工具,可以幫助開發者檢查很多問題,其中檢查android項目重復的資源文件非常有用。
1、命令行下使用
Android Lint有很多命令,具體可以在網上查到。今天主要使用check,這個命令目的是只進行某個或某幾個類型的檢查,比如只檢查無用的資源“lint --check UnusedResources
lint --simplehtml
這樣就可以檢查某個工程下的重復資源,並將結果保存成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\
自己簡單研究了一下,找出了一個比較笨拙的解決方法。對命令行和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文件中重復的部分仍然無法檢測出來,有人知道是什麼問題麼?
隨著Android應用增多,功能越來越復雜,布局也越來越豐富了,而這些也成為了阻礙一個應用流暢運行,因此,對復雜的功能進行性能優化是創造高質量應用的基礎,本
本文實例講述了Android中顯示GIF動畫的實現代碼。分享給大家供大家參考,具體如下:gif圖動畫在android中還是比較常用的,比如像新浪微博中,有很多gif圖片,
硬件平台:S3C6410 操作系統:Ubuntu、windows 板子系統:Android 開發工具:jdk,ndk,eclipse 本次測試從linux內核模塊編譯開始
1.打印日志:logt,回車:自動生成靜態Tag: private static final String TAG = "MainActivity";