日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

詳解Android Lint的原理及其使用

瀏覽:32日期:2022-09-19 15:12:32
Android Lint 原理及使用詳解

Android Lint 是 ADT 16中引入的新工具,用于掃描 Android 項目源中的潛在錯誤。

Lint 是 Android 提供的一個強大的,用于靜態(tài)掃描應用源碼并找出其中的潛在問題的實用工具。lint 工具可以檢查你的 Android 項目源文件是否有潛在的錯誤,以及在正確性、安全性、性能、易用性、無障礙性和國際化方面是否需要優(yōu)化改進。

Lint 既可以用作命令行工具,也可以與 Eclipse 和 IntelliJ 集成在一起。它被設計成獨立于 IDE 的工具,我們可以在 Android Studio 中非常方便的使用它。

Lint 的工作過程

lint 工具的代碼掃描工作流:

詳解Android Lint的原理及其使用

應用源文件:源文件包含組成 Android 項目的文件,包括 Java、Kotlin 和 XML 文件、圖標以及 ProGuard 配置文件。 lint.xml 文件:一個配置文件,可用于指定要排除的任何 lint 檢查以及自定義問題嚴重級別。lint 工具:一個靜態(tài)代碼掃描工具,你可以從命令行或在 Android Studio 中對 Android 項目運行該工具。 lint 工具檢查可能會影響 Android 應用的質量和性能的代碼結構問題。強烈建議你先更正 lint 檢測到的所有錯誤,然后再發(fā)布你的應用。 lint 檢查結果:我們可以在控制臺或 Android Studio 的 Inspection Results 窗口中查看 lint 檢查結果。

Lint 的工作過程由 Lint Tool(檢測工具),Source Files(項目源文件) 和 lint.xml(配置文件) 三個部分組成,Lint Tool 讀取 Source Files,根據 lint.xml 配置的規(guī)則(issue)輸出最終的結果。

Lint 的功能

Lint 可以檢查并發(fā)現以下幾類問題:

缺少翻譯(和未使用的翻譯) 布局性能問題(所有以前實用 layoutopt 工具用來查找的問題,等等) 數組大小不一致 可訪問性和國際化問題(硬編碼字符串,缺少 contentDescription 等) 圖標問題(例如缺少密度,重復的圖標,錯誤的尺寸等) 可用性問題(如未在文本字段中指定輸入類型) Manifest 錯誤問題等級

Lint 發(fā)現的每個問題都有描述信息和等級,我們可以很方便地定位問題,同時按照嚴重程度進行解決。當然,我們也可以手動配置每個問題的嚴重級別。Lint 本身包含大量已經封裝好的接口,能提供豐富的代碼信息,開發(fā)者可以基于這些信息進行自定義規(guī)則的編寫。

Lint 會按照問題的嚴重程度分為幾個等級:

Fatal Error Warning Information Ignore

問題嚴重程序由高到低依次降低。

從命令行運行 lint

如果你使用的是 Android Studio 或 Gradle,你可以在項目的根目錄下輸入以下某個命令,使用 Gradle 封裝容器對項目調用 lint 任務:

在 Windows 上:

gradlew lint

在 Linux 或 Mac 上:

./gradlew lint

lint 工具完成其檢查后,會提供 XML 和 HTML 版 lint 報告的路徑。然后,我們可以轉到 HTML 報告并在瀏覽器中將其打開

Android Studio 中使用 Lint

Lint 已經被集成到 Android Studio,所以可以直接使用,使用非常方便。lint 的代碼掃描工具,可幫助你發(fā)現并更正代碼結構質量的問題,而無需您實際執(zhí)行應用,也不必編寫測試用例。系統會報告該工具檢測到的每個問題并提供問題的描述消息和嚴重級別,以便你可以快速確定需要優(yōu)先進行的關鍵改進。此外,你還可以降低問題的嚴重級別以忽略與項目無關的問題,或者提高嚴重級別以突出特定問題。

從菜單欄,選擇Analyze > Inspect Code

選擇檢查范圍

詳解Android Lint的原理及其使用

選擇后,點擊'OK',稍等一會就會生成掃描結果:

詳解Android Lint的原理及其使用

左側是問題分類,選中一個問題條目,則右側會展示具體的問題代碼,這樣就可以很方便的進行問題排查、定位和更改了。

Android 的規(guī)則類別:

Accessibility 輔助選項,例如 ImageView 缺少 contentDescription 描述,String 編碼字符串等問題。 Compliance 合規(guī)性,違反了Google Play的要求,比如使用了過期的庫版本,性能、安全性、API等級等沒有遵循新系統的要求等。 Correctness 不夠完美的編碼,比如硬編碼、使用過時API等。 Internationalization 國際化,如直接使用漢字,沒有使用資源引用等。 Interoperability 互操作性,比如和Kotln的交互等。 Performance 性能,例如:靜態(tài)引用,循環(huán)引用等。 Security 安全性,例如沒有使用 HTTPS 連接 Gradle,AndroidManifest 中的權限問題等。 Usability 易用性,有更好的替換的,例如缺少某些倍數的切圖,排版、圖標格式建議.png格式等等。lint 配置配置 lint 文件

我們可以在 lint.xml 文件中進行 lint 配置。我們可以手動創(chuàng)建該文件,并放置在 Android 項目的根目錄下。

lint.xml 文件由封閉的 父標記組成,此標記包含一個或多個 子元素。lint 會為每個 定義唯一的 id 屬性值。

<?xml version='1.0' encoding='UTF-8'?><lint><!-- list of issues to configure --></lint>

我們可以通過在 標記中設置嚴重性級別屬性來更改某個問題的嚴重性級別或對該問題停用 lint 檢查。

下面來看一個示例:

<?xml version='1.0' encoding='UTF-8'?><lint> <!-- Disable the given check in this project --> <issue severity='ignore' /> <!-- Ignore the ObsoleteLayoutParam issue in the specified files --> <issue id='ObsoleteLayoutParam'><ignore path='res/layout/activation.xml' /><ignore path='res/layout-xlarge/activation.xml' /> </issue> <!-- Ignore the UselessLeaf issue in the specified file --> <issue id='UselessLeaf'><ignore path='res/layout/main.xml' /> </issue> <!-- Change the severity of hardcoded strings to 'error' --> <issue severity='error' /></lint>禁用某個文件或方法進行 lint 檢查

如果我們在 Android 項目中想對某個類或方法禁用 lint 檢查,可以請向該代碼添加 @SuppressLint 注解。

以下示例展示了如何對 onCreate 方法中的 NewApi 問題停用 lint 檢查。lint 工具會繼續(xù)檢查該類的其他方法中的 NewApi 問題。

@SuppressLint('NewApi')@Overridepublic void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);

以下示例展示了如何對 FeedProvider 類中的 ParserError 問題停用 lint 檢查:

@SuppressLint('ParserError')public class FeedProvider extends ContentProvider {

要禁止 lint 檢查文件中的所有問題,請使用 all 關鍵字,如下所示:

@SuppressLint('all')xml 文件的 lint 檢測配置

我們可以使用 tools:ignore 屬性對 XML 文件的特定部分停用 lint 檢查。在 lint.xml 文件中添加以下命名空間值,以便 lint 工具能夠識別該屬性:

namespace xmlns:tools='http://schemas.android.com/tools'

以下示例展示了如何對 XML 布局文件的 元素中的 UnusedResources 問題停用 lint 檢查。如果某個父元素聲明了 ignore 屬性,則該元素的子元素會繼承此屬性。在本示例中,也會對 子元素停用 lint 檢查。

<LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' xmlns:tools='http://schemas.android.com/tools' tools:ignore='UnusedResources' > <TextViewandroid:text='@string/auto_update_prompt' /></LinearLayout>

要禁止檢查多個問題,請使用以英文逗號分隔的字符串列出要禁止檢查的問題。例如:

tools:ignore='NewApi,StringFormatInvalid'

要禁止 lint 檢查 XML 元素中的所有問題,請使用 all 關鍵字,如下所示:

tools:ignore='all'通過 Gradle 配置 lint 選項

通過 Android Plugin for Gradle,我們可以使用模塊級 build.gradle 文件中的 lintOptions {} 代碼塊配置某些 lint 選項,例如要運行或忽略哪些檢查。

例如:

android { ... lintOptions { // Turns off checks for the issue IDs you specify. disable ’TypographyFractions’,’TypographyQuotes’ // Turns on checks for the issue IDs you specify. These checks are in // addition to the default lint checks. enable ’RtlHardcoded’,’RtlCompat’, ’RtlEnabled’ // To enable checks for only a subset of issue IDs and ignore all others, // list the issue IDs with the ’check’ property instead. This property overrides // any issue IDs you enable or disable using the properties above. check ’NewApi’, ’InlinedApi’ // If set to true, turns off analysis progress reporting by lint. quiet true // if set to true (default), stops the build if errors are found. abortOnError false // if true, only report errors. ignoreWarnings true }}...在 Android Studio 中修改 lint 配置文件

我們可以很方便的在 Android Studio 中修改 lint 檢查時的配置。

Android Studio 附帶了許多 lint 及其他檢查配置文件,這些配置文件可通過 Android 更新進行更新。我們可以原封不動地使用這些配置文件,也可以修改它們的名稱、說明、嚴重級別和范圍。當然,還可以激活和禁用整組的配置文件或一組配置文件中的個別配置文件。

依次選擇 Analyze > Inspect Code,在 Specify Scope 對話框的 Inspection Profile 下,點擊 More。

此時將顯示 Inspections 對話框,其中列出了支持的檢查及其說明:

詳解Android Lint的原理及其使用

選擇 Profile 下拉列表,以在 Default (Android Studio) 與 Project Default(活動項目)檢查之間切換。 在左側窗格的 Inspections 對話框中,選擇一個頂級配置文件類別,或展開一個組并選擇特定的配置文件。選擇一個配置文件類別后,我們可以將該類別中的所有檢查項目當作一個檢查項目進行修改。 選擇 Manage 下拉列表,以復制檢查項目、對檢查項目進行重命名、向檢查項目添加說明以及導出/導入檢查項目。 操作完成后,點擊 OK。

以上就是詳解Android Lint的原理及其使用的詳細內容,更多關于Android Lint的原理的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
jizzjizz中国精品麻豆| 国产激情综合| 日韩一区二区三区高清在线观看 | 国产精品试看| 91国内精品| 首页亚洲欧美制服丝腿| 国产精品日韩久久久| 久久九九99| 99精品网站| 欧美日中文字幕| 久久视频国产| 久久国产日韩| 黑丝一区二区三区| 国产一区日韩一区| 婷婷中文字幕一区| 99国产精品99久久久久久粉嫩| 亚洲一级特黄| 一区二区电影| 久久国产生活片100| 一区二区电影| 欧美久久精品| 国产一区二区三区日韩精品| 中文字幕色婷婷在线视频| 久久精品在线| 国产手机视频一区二区| 男女性色大片免费观看一区二区 | 日本视频一区二区| 欧美一级二级三级视频| 日韩不卡手机在线v区| 国产视频网站一区二区三区| 久久精品72免费观看| 精品伊人久久久| 日韩欧美视频专区| 尹人成人综合网| 亚洲综合小说| 最新国产精品久久久| 久久a爱视频| 成人看片网站| 日韩一区二区三区高清在线观看| 国产欧美高清| 欧美日韩国产一区二区三区不卡 | 亚洲欧美日韩视频二区| 先锋影音国产一区| 捆绑调教美女网站视频一区 | 久久精品一区二区国产| 99成人在线| 欧美亚洲国产精品久久| 国内在线观看一区二区三区| 91精品尤物| 99在线|亚洲一区二区| 999久久久国产精品| 久久国产乱子精品免费女| 国产精品久久久久毛片大屁完整版| 亚洲高清二区| 亚洲开心激情| 在线视频精品| 91亚洲自偷观看高清| 久久精品亚洲一区二区| 97se亚洲| 日韩高清二区| 日韩高清中文字幕一区| 在线视频亚洲欧美中文| 男人的天堂亚洲一区| 夜夜嗨一区二区| 亚洲深夜福利| 老牛国产精品一区的观看方式| 国模 一区 二区 三区| 亚洲欧洲午夜| 国产精品99一区二区三| 成人污污视频| 99成人在线视频| 欧美性感美女一区二区| 91看片一区| 亚洲精品网址| 亚洲无线观看| 国产精品亚洲欧美日韩一区在线| 国产乱码精品一区二区三区亚洲人 | 老司机精品在线| 久久精品伊人| 午夜久久影院| 欧美精品福利| 国产探花在线精品一区二区| 91成人在线网站| 欧美日韩一区二区三区不卡视频 | 午夜亚洲福利| 美女精品在线| 亚洲欧美日韩国产一区二区| 日本一区中文字幕| 国产精品xxx| 久久久久亚洲| 亚洲天堂日韩在线| 中文日韩欧美| 欧美日韩xxxx| 日韩一区自拍| 在线免费观看亚洲| 国产精品主播| 99精品在线| 日韩不卡免费视频| 另类中文字幕国产精品| 亚洲一区导航| 国产日韩一区二区三免费高清| 免费一级欧美在线观看视频| 三上悠亚国产精品一区二区三区| 一区二区电影在线观看| 精品少妇一区| 亚洲精品乱码久久久久久蜜桃麻豆| 国产精品www.| 久久99伊人| 欧美aa一级| 欧美三区不卡| 国产精品日韩| 国产 日韩 欧美一区| 日韩中文字幕一区二区高清99| www在线观看黄色| 亚洲毛片视频| 99精品视频在线| 日韩高清不卡一区| 亚洲精品123区| a国产在线视频| 国产精品嫩模av在线| 亚洲三级在线| 午夜在线播放视频欧美| 今天的高清视频免费播放成人| 日韩一区二区三区免费播放| 福利一区和二区| 精品国产成人| 国内精品伊人| 色婷婷亚洲mv天堂mv在影片| 国产精品探花在线观看| 日韩激情综合| 蜜臀va亚洲va欧美va天堂| 亚洲伊人av| 亚洲伦乱视频| 91精品国产91久久久久久黑人| 国产精品羞羞答答在线观看| 日韩精品一卡二卡三卡四卡无卡| 中文在线免费视频| 98精品久久久久久久| 久久精品99国产精品| 国产精品a久久久久| 欧美一级一区| 最新国产精品视频| 欧美另类中文字幕| 日本91福利区| 青草久久视频| 日韩成人午夜精品| 日韩精品一二三| 亚洲制服一区| 日韩在线观看一区二区| 亚洲精品日韩久久| 亚洲精品第一| 久久国产精品免费精品3p | 波多视频一区| 美女av在线免费看| 亚洲一级影院| 婷婷综合网站| 老司机精品久久| 亚洲成人一区| 亚洲另类黄色| 国产亚洲电影| 精品久久美女| 日韩精品91| 久久久久久久久丰满| 久色成人在线| 欧美日本精品| 精品一区二区三区的国产在线观看| 国产suv精品一区二区四区视频| 成人福利av| 爽爽淫人综合网网站| 国产精品一级| 午夜av不卡| 久久av国产紧身裤| 日韩欧美一区二区三区在线视频 | 国产福利91精品一区二区| 91精品一区国产高清在线gif| 欧美精选一区二区三区| 亚洲18在线| 午夜精品一区二区三区国产| 奇米狠狠一区二区三区| 韩国精品主播一区二区在线观看 | 亚洲综合婷婷| 久久久精品区| 日韩欧美一区免费| 亚洲精品激情| 香蕉国产精品| 国产精品亚洲产品| 婷婷综合五月| 欧美黄色一区二区| 婷婷成人av| 久久高清免费| 久久激情综合网| 日本欧美在线看| 日韩精品成人在线观看| 亚洲调教视频在线观看| 国产精品久久久久久久久久齐齐 | 久久av影视| 欧美日本精品| 99视频一区| 久久久久久美女精品| 久久字幕精品一区|