日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

谷歌java安卓代码检查工具,Android Studio 代码检查工具介绍

發布時間:2024/3/26 Android 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 谷歌java安卓代码检查工具,Android Studio 代码检查工具介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

利用好相關代碼檢查工具,是一種自我的CodeReview,可以有效降低Bug率,提升自我的代碼優化意識。常用的代碼檢查工具有AndroidStudio 自帶的Lint工具、 Alibaba Java Coding Guidelines

什么是 Lint

Android Lint 是 SDK Tools 16(ADT 16)開始引入的一個代碼掃描工具,通過對代碼進行靜態分析,可以幫助開發者發現代碼質量問題和提出一些改進建議。除了檢查 Android 項目源碼中潛在的錯誤,對于代碼的正確性、安全性、性能、易用性、便利性和國際化方面也會作出檢查。Android Lint 作為項目的代碼檢測工具,是因為它具有以下幾個特性:

已經被集成到 Android Studio,使用方便;

能在編寫代碼時實時反饋出潛在的問題;

可以自定義規則。Android Lint 本身包含大量已經封裝好的接口,能提供豐富的代碼信息,開發者可以基于這些信息進行自定義規則的編寫。

1、開始使用

Android Lint 的工作過程比較簡單,一個基礎的Lint過程由Lint Tool(檢測工具),Source Files(項目源文件) 和 lint.xml(配置文件) 三個部分組成,Lint Tool讀取 Source Files,根據lint.xml配置的規則(issue)輸出結果(如下圖)。

2、操作步驟

Android Studio 中,Android Lint 已經被集成,只需要點擊 Analyze-----Inspect Code 即可運行 Android Lint:

操作步驟

在彈出的對話框中可以設置執行 Lint的范圍,可以選擇整個項目,也可以只選擇當前的子模塊或者其他自定義的范圍:

選擇操作范圍

檢查完畢后會彈出 Inspection 的控制臺,并在其中列出詳細的檢查結果:

image.png

如上圖所展示的,Android Lint 對檢查的結果進行了分類,同一個規則(issue)下的問題會聚合,其中針對 Android 的規則類別會在分類前說明是Android 相關的,主要是六類:

Accessibility 無障礙,例如 ImageView 缺少contentDescription 描述,String 編碼字符串等問題。

Correctness 正確性

Internationalization 國際化,如字符缺少翻譯等問題。

Performance 性能,例如在 onMeasure、onDraw 中執行 new,內存泄露,產生了冗余的資源,xml 結構冗余等。

Security 安全性,例如沒有使用 HTTPS 連接 Gradle,AndroidManifest 中的權限問題等。

Usability 易用性,例如缺少某些倍數的切圖,重復圖標等。

其他的結果條目則是針對 Java 語法的問題,另外每一個問題都有區分嚴重程度(severity),從高到底依次是:Fatal、Error、Warning、Information、Ignore

其中 Fatal 和 Error 都是指錯誤,但是 Fatal 類型的錯誤會直接中斷 ADT 導出 APK,更為嚴重。

在結果列表中點擊一個條目,可以看到詳細的源文件名和位置,以及命中的錯誤規則(issue)、解決方案或者屏蔽提示

除了直接在菜單中運行 Lint 外,大部分問題代碼在編寫時 Android Studio 就會給出提醒。

3、自定義配置

對于執行 Lint 操作的相關配置,是定義在 gradle 文件的 lintOptions 中,可定義的選項及其默認值

android {

lintOptions {

// 設置為 true,則當 Lint 發現錯誤時停止 Gradle 構建

abortOnError false

// 設置為 true,則當有錯誤時會顯示文件的全路徑或絕對路徑 (默認情況下為true)

absolutePaths true

// 僅檢查指定的問題(根據 id 指定)

check 'NewApi', 'InlinedApi'

// 設置為 true 則檢查所有的問題,包括默認不檢查問題

checkAllWarnings true

// 設置為 true 后,release 構建都會以 Fatal 的設置來運行 Lint。

// 如果構建時發現了致命(Fatal)的問題,會中止構建(具體由 abortOnError 控制)

checkReleaseBuilds true

// 不檢查指定的問題(根據問題 id 指定)

disable 'TypographyFractions','TypographyQuotes'

// 檢查指定的問題(根據 id 指定)

enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'

// 在報告中是否返回對應的 Lint 說明

explainIssues true

// 寫入報告的路徑,默認為構建目錄下的 lint-results.html

htmlOutput file("lint-report.html")

// 設置為 true 則會生成一個 HTML 格式的報告

htmlReport true

// 設置為 true 則只報告錯誤

ignoreWarnings true

// 重新指定 Lint 規則配置文件

lintConfig file("default-lint.xml")

// 設置為 true 則錯誤報告中不包括源代碼的行號

noLines true

// 設置為 true 時 Lint 將不報告分析的進度

quiet true

// 覆蓋 Lint 規則的嚴重程度,例如:

severityOverrides ["MissingTranslation": LintOptions.SEVERITY_WARNING]

// 設置為 true 則顯示一個問題所在的所有地方,而不會截短列表

showAll true

// 配置寫入輸出結果的位置,格式可以是文件或 stdout

textOutput 'stdout'

// 設置為 true,則生成純文本報告(默認為 false)

textReport false

// 設置為 true,則會把所有警告視為錯誤處理

warningsAsErrors true

// 寫入檢查報告的文件(不指定默認為 lint-results.xml)

xmlOutput file("lint-report.xml")

// 設置為 true 則會生成一個 XML 報告

xmlReport false

// 將指定問題(根據 id 指定)的嚴重級別(severity)設置為 Fatal

fatal 'NewApi', 'InlineApi'

// 將指定問題(根據 id 指定)的嚴重級別(severity)設置為 Error

error 'Wakelock', 'TextViewEdits'

// 將指定問題(根據 id 指定)的嚴重級別(severity)設置為 Warning

warning 'ResourceAsColor'

// 將指定問題(根據 id 指定)的嚴重級別(severity)設置為 ignore

ignore 'TypographyQuotes'

}

}

lint.xml 這個文件則是配置 Lint 需要禁用哪些規則(issue),以及自定義規則的嚴重程度(severity),lint.xml文件是通過 issue 標簽指定對一個規則的控制,在項目根目錄中建立一個 lint.xml 文件后 Android Lint 會自動識別該文件,在執行檢查時按照 lint.xml 的內容進行檢查。如上面提到的那樣,開發者也可以通過 lintOptions 中的 lintConfig 選項來指定配置文件。lint.xml 示例如下:

issue 標簽中使用 id 指定一個規則,severity="ignore" 則表明禁用這個規則。需要注意的是,某些規則可以通過 ignore 標簽指定僅對某些屬性禁用,例如上面的 Deprecated,表示檢查是否有使用不推薦的屬性和方法,而在issue 標簽中包裹一個 ignore 標簽,在ignore 標簽的 regexp 屬性中使用正則表達式指定了 singleLine,則表明對 singleLine 這個屬性屏蔽檢查。

另外開發者也可以使用 @SuppressLint(issue id) 標注針對某些代碼忽略某些 Lint 檢查,這個標注既可以加到成員變量之前,也可以加到方法聲明和類聲明之前,分別針對不同范圍進行屏蔽。

Alibaba Java Guidelines的使用

這是一款阿里巴巴基于Java規范開發的AndroidStudio插件,需要單獨安裝在AndroidStudio中,它可以規范我們的代碼編寫,進行實時代碼規范提示。

1、如何安裝插件

Android Studio --> File --> Settings... --> Plugins --> 搜索Alibaba Java Guidelines --> 安裝并重啟Android Studio

阿里巴巴Java規范插件

2、使用

在日常編寫代碼時,插件會實時對代碼進行檢測給出相應的提示信息,并給出對應的代碼優化方案。示例如下:

下面switch語句塊,按照Java規范,是缺少default語句的,插件會提示加上。

image.png

Apk 體積分析

當我們打包apk之后,有時候apk有點大,想要針對apk進行“瘦身”,此時我們需要知道哪些哪些東西占用較多,才有針對性的進行apk體積優化,可以使用AndroidStudio自帶功能檢測apk。

在AndroidStudio中雙擊打包的apk文件之后右側會彈出對應的apk分析窗口,如下所示:

可以清楚看到哪些文件占用apk大小的比重信息,同時也可以將兩個apk進行比對。

apk分析.png

依賴占用過大,可以選擇將一些沒有使用到的依賴進行剔除,資源圖片沒有使用到的也可以剔除掉,資源圖片占用過大,可使用TinyPng將圖片進行無損壓縮處理。

TinyPng官網

總結

以上是生活随笔為你收集整理的谷歌java安卓代码检查工具,Android Studio 代码检查工具介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。