Android Lint工具瘦身APK

前言:

最近新入職一家公司,所以接手了之前android開發者的項目,說實話:這個項目代碼質量跟之前維護開發的一個金融項目代碼質量簡直都是神一樣的級別(包含代碼規範,代碼美觀,代碼註釋,代碼框架,請求框架,混淆以及插件引用),這個應該比金融的還要蛋疼了。慢慢優化路渺茫啊,打算熟悉代碼後,利用空閒時間用新的框架重新開發一套。

言歸正傳:

性能優化的幫助工具:

MAT,

Memory Monitor(屬於AndroidMonitor中一個模塊), 

HeapTool(查看堆信息),

Allaction Tracking,

LeakCanary直接在手機端查看內存泄露的工具,需要少部分的代碼侵入

Lint工具

今天聊一下Lint,上面列出的工具中,Lint也算是用的最簡便的了,但對於他我都是用來檢測無用代碼,無用插件,無用引用,無用資源這一類的,內存優化的話,MAT吧,不過很蛋疼的事,需要經驗去幫助你判斷了!

使用:工具欄 -> Analyze -> Inspect Code

我們可以inspect整個項目(Whole project)也可以inpect某個module,個人認爲module爲library的基本沒有檢查的必要了,所以我一般選擇module-》app.。你也可以取消test sources。

下圖是我們點擊Ok後檢測出的代碼問題:

 

1.Android:看圖

Android Resources Validation

檢測XML正確性

Android XML element is not allowed

這個嘛,目前不太清楚

Android XML root tag validation

工具會根據xml的根屬性給出建議當前的xml文件應當放入哪個文件夾下面

onClick handler is missing in the related activity

檢測點擊事件活動

2.Android Lint:Accessibility:如果你檢測出可以查看說的問題,例如下圖:

這項基本都是對事件傳遞可能造成點擊失效所列舉出的警告,可以忽略,如果有你寫的自定義控件,不妨可以試着看看有什麼bug。

至於這兩個:

Missing 'contentDescription' attribute on image

提示給ImageView控件添加contentDescription屬性,意思是添加備註。

'clickable' attribute found, please also add 'focusable'

一個控件(比如圖片),如果沒有定義focusable(可聚焦的),卻定義了是clickable(可點擊的),那麼是不能通過鍵盤訪問的。

3.Android Lint: Correctness

這項包含內容比較多,可以自己去看看:比如檢測custom widget的繼承建議、使用的構造函數的建議、api版本支持的建議。

4.Android Lint: Internationalization

Hardcoded text

建議text文本應當寫入string.xml文件

Overlapping items in RelativeLayout

檢測出的控件重疊問題

Padding and margin symmetry

建議padding和margin使用時,要做到對稱,這樣在屏幕適配的時候才能展現的完美

TextView Internationalization

在使用textview的時候要遵循國際化,檢測setText()是拼接字符串問題

Using left/right instead of start/end attributes

4.2版本後加入了新的對從右到左閱讀順序的支持,建議使用start/end代替left/right

5.Android Lint: Performance(性能建議)

該檢測涉及較多,例如:無用的資源圖片、過度繪製、多餘的父佈局、handler造成的內存泄漏、非靜態內部類造成的內存泄漏、隱士持有context引起的內存泄漏、cursor未關閉、layout佈局引起的渲染性能、layout佈局優化等。

6.Android Lint: Security

源碼api使用是否規範、硬件標識符的建議等

7.Android Lint: Usability

View構造方法、textview,button屬性使用等方面的建議

8.Class structure(從類結構方面的建議)

比如:類成員和局部變量的建議、final,static關鍵字的使用注意事項

9.Code maturity issues

棄用api的建議

10.Code style issues

代碼關鍵詞使用,如:private修飾詞的適用合法性,代碼分號使用合法性

11.imports

無用的引用

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章