1. 程式人生 > >Android Studio lint工具所提示的需要注意的內容簡要記錄

Android Studio lint工具所提示的需要注意的內容簡要記錄

Android lint部分:

Duplicated icons under different names 相同的icon 用了不同的名字

FrameLayout can be replaced with tag FrameLayout 可以被替換成 merge標籤

Handler reference leaks handler的記憶體溢位問題 替換成靜態 + 弱引用

Hardcoded reference to /sdcard 硬編碼問題 儘量不使用硬編碼(固定的字串即為硬編碼)

Icon densities validation 圖示最好覆蓋各個密度 比如mdpi hdpi xhdpi等。。。

Image without contentDescription 沒設定圖片的 內容屬性 主要用於有障礙的人士使用

Inefficient layout weight 低效的 weight屬性 最好在設定weight後 設定 width或者height為 0

Layout Inflation without a Parent 佈局需要一個父佈局

Missing allowBackup attribute Application中 缺少 allowBackup屬性 設定 這個即可android:fullBackupContent’ to ‘true’ or ‘false’

Missing baselineAligned attribute 缺少基線屬性

Missing commit() on SharedPreference editor 缺少commit 在不關心是否成功提交時 使用apply效率高於commit

Missing density folder 缺少 一些密度的資料夾 該提示是由於 少了某個密度的 drawable-xxdip資料夾

Missing inputType or hint EditText 缺少 輸入型別和提示文字

Nested layout weights 巢狀的佈局 都使用了 weight屬性 這時最好去掉子佈局不必要的weight 提高效能

Node can be replaced by a TextView with compound drawables 使用 TextView 自帶的 drawable屬性 代替 TextView+ImageView

Obsolete layout params 過時的 無用的佈局引數 比如 LinearLayout中 出現 相對佈局中的佈局引數

Overdraw: Painting regions more than once 過度繪製 一般是由於 設定了多個background的情況

Overlapping items in RelativeLayout 可能重疊的子佈局 在RelativeLayout中 比如設定了wrap_content 可能擴充套件覆蓋其他佈局

Padding and margin symmetry padding 和 margin 需要相互對稱

Unused resources 沒用過的資源 找到後刪掉即可

Useless parent layout 無用的父佈局

Using .gif format for bitmaps is discouraged 用gif 圖片是被阻止的 。。。 但是有時候還是得用。。

Using dp instead of sp for text sizes 用sp代替 dp

Using left/right instead of start/end attributes 使用 start和end 代替 left right

class structure部分:

Field Can Be Local 欄位能被設定成 區域性變數 縮小其生命週期

Parameter can be converted to a local variable 類似於上面這個 引數可以被轉化為區域性變數

code maturity issues部分 – 程式碼成熟度問題

一般是一些已經過時的方法 需要替換

code style issues: 程式碼風格問題

if statement may be replaced with && or || expression if 可以被替換成 && 或 || 簡化程式碼

Unnecessary Interface Modifier 不必要的介面修改 比如 介面中的方法 預設為public 不需要填寫也可以

control flow issues: 控制流問題

redundant if statement 冗餘的if語句 說明 if語句可以簡化 比如

if(fun()){
    return true;
}else{
    return false;
}
簡化為 

return fun();
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Unnecessary Return 不必要的 return 比如 返回值為 void 之後return了

Data flow issues : 資料流問題

Boolean MethodIs Always Inverted 沒懂。。。
redundant local variable 冗餘的區域性變數 一般是 沒用到的

declaration redundancy: 宣告冗餘

Access Static Via Instance 通過例項 訪問靜態成員。。。

actual method parameter is the same constant 實參是個常量 感覺沒什麼影響、、

declaration access can be weaker 宣告訪問許可權可能較弱 也就是一些可以設定成 private的設定了 protected或者public 類似的情況

declaration can have final modifier 可以使用 final修飾 可提高效率

empty method 空方法。。。

method can be void 方法可以返回 void 一般是 返回值沒有被用到的情況 會提示這個

method returns the same value 方法返回相同的值 也就是 無論如何方法都返回某個值 需要優化

redundant throws clause 冗餘的異常丟擲 一般是 既在方法裡 丟擲了 也在 方法上 丟擲了。。。

unused declaration 無用的宣告 一般是方法或屬性聲明瞭 但是沒有使用 會有這個提示

unused method parameters 無用的方法引數

Error handling: 錯誤處理

empty catch block 空的 異常捕獲 會提示

import 無用的匯入

java language level migration aids:

explicit type can be replaced with <> 顯示型別可以替換成 <>

for loop replaceable with foreach 把for 替換成 foreach

javaDoc issues:

關於 註釋 文件的。。。。

probable bugs:可能的bug

一些 可能產生bug的程式碼

properties files 配置檔案的一些問題

比如 配置檔案定義的一些屬性沒有使用到

Spelling 拼寫的一些問題

verbose or redundant code constructs 冗長冗餘的程式碼結構

xml檔案的一些問題

類似於 java中的