Android靜態代碼檢查-Lint

來源:互聯網
上載者:User

Android靜態代碼檢查-Lint

 

gradle lint

gradle中有lint任務,可以直接執行lint靜態代碼檢查,但是前提是你的build.gradle設定了lintOptions選項:

android {    compileSdkVersion 23    buildToolsVersion 21.1.2    lintOptions {          abortOnError false      }

然後我們在項目的根目錄下執行gradle lint

localhost:Sunshine-Version-2 wuxian$ gradle lint:app:preBuild UP-TO-DATE:app:preDebugBuild UP-TO-DATE:app:checkDebugManifest:app:preReleaseBuild UP-TO-DATE:app:prepareComAndroidSupportAppcompatV72102Library UP-TO-DATE:app:prepareComAndroidSupportSupportV42102Library UP-TO-DATE:app:prepareDebugDependencies:app:compileDebugAidl UP-TO-DATE:app:compileDebugRenderscript UP-TO-DATE:app:generateDebugBuildConfig UP-TO-DATE:app:generateDebugAssets UP-TO-DATE:app:mergeDebugAssets UP-TO-DATE:app:generateDebugResValues UP-TO-DATE:app:generateDebugResources UP-TO-DATE:app:mergeDebugResources UP-TO-DATE:app:processDebugManifest UP-TO-DATE:app:processDebugResources UP-TO-DATE:app:generateDebugSources UP-TO-DATE:app:processDebugJavaRes UP-TO-DATE:app:compileDebugJavaWithJavac UP-TO-DATE:app:compileLint:app:checkReleaseManifest:app:prepareReleaseDependencies:app:compileReleaseAidl UP-TO-DATE:app:compileReleaseRenderscript UP-TO-DATE:app:generateReleaseBuildConfig UP-TO-DATE:app:generateReleaseAssets UP-TO-DATE:app:mergeReleaseAssets UP-TO-DATE:app:generateReleaseResValues UP-TO-DATE:app:generateReleaseResources UP-TO-DATE:app:mergeReleaseResources UP-TO-DATE:app:processReleaseManifest UP-TO-DATE:app:processReleaseResources UP-TO-DATE:app:generateReleaseSources UP-TO-DATE:app:processReleaseJavaRes UP-TO-DATE:app:compileReleaseJavaWithJavac UP-TO-DATE:app:lintRan lint on variant release: 58 issues foundRan lint on variant debug: 58 issues foundWrote HTML report to file:/Users/wuxian/Documents/sourcecode/self/Sunshine-Version-2/app/build/outputs/lint-results.htmlWrote XML report to /Users/wuxian/Documents/sourcecode/self/Sunshine-Version-2/app/build/outputs/lint-results.xmlBUILD SUCCESSFULTotal time: 17.941 secsThis build could be faster, please consider using the Gradle Daemon: http://gradle.org/docs/2.4/userguide/gradle_daemon.html

build/outputs/目錄下會產生一個lint-result.html檔案,開啟一看如下:

報告做的太次了<喎?http://www.bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxoMiBpZD0="總結">總結

這種方式適合自動化CI系統中採集結果。

手動分析

選在分析代碼後,彈出對話方塊,你可以選擇分析整個項目/單個模組/檔案bulabula:

點擊OK後,等待一段時間後分析完畢,會自動彈出結果視窗


會根據檢查類型不同分不同菜單,點擊相應菜單進入不同的問題點:

點擊問題點後右邊會出現該問題的詳細資料,檔案名稱,檔案位置,出現問題的點在檔案中的位置以及問題描述,還會告訴你忽略這個問題的解決方案,有可能還會顯示解決方案。

總結

這個方法適合看法自查!

lint命令列

lint工具位於sdk目錄下的tools下,如果在命令列執行lint找不到該命令,那麼需要將lint的根目錄配置到環境變數中,配置成功後,執行lint命令輸出如下:

58deMacBook-Pro-5:tools wuxian$ lintUsage: lint [flags] Flags:--help                   This message.--help            Help on the given topic, such as suppress.--list                   List the available issue id's and exit.--version                Output version information and exit.--exitcode               Set the exit code to 1 if errors are found.--show                   List available issues along with full explanations.--show              Show full explanations for the given list of issue                         id's.Enabled Checks:--disable          Disable the list of categories or specific issue                         id's. The list should be a comma-separated list of                         issue id's or categories.--enable           Enable the specific list of issues. This checks all                         the default issues plus the specifically enabled                         issues. The list should be a comma-separated list of                         issue id's or categories.--check            Only check the specific list of issues. This will                         disable everything and re-enable the given list of                         issues. The list should be a comma-separated list of                         issue id's or categories.-w, --nowarn             Only check for errors (ignore warnings)-Wall                    Check all warnings, including those off by default-Werror                  Treat all warnings as errors--config       Use the given configuration file to determine whether                         issues are enabled or disabled. If a project contains                         a lint.xml file, then this config file will be used                         as a fallback.Output Options:--quiet                  Don't show progress.--fullpath               Use full paths in the error output.--showall                Do not truncate long messages, lists of alternate                         locations, etc.--nolines                Do not include the source file lines with errors in                         the output. By default, the error output includes                         snippets of source code on the line containing the                         error, but this flag turns it off.--html         Create an HTML report instead. If the filename is a                         directory (or a new filename without an extension),                         lint will create a separate report for each scanned                         project.--url filepath=url       Add links to HTML report, replacing local path                         prefixes with url prefix. The mapping can be a                         comma-separated list of path prefixes to                         corresponding URL prefixes, such as                         C:empProj1=http://buildserver/sources/temp/Proj1.                          To turn off linking to files, use --url none--simplehtml   Create a simple HTML report--xml          Create an XML report instead.Project Options:--resources 
Add the given folder (or path) as a resource directory for the project. Only valid when running lint on a single project. --sourcesAdd the given folder (or path) as a source directory for the project. Only valid when running lint on a single project. --classpathAdd the given folder (or jar file, or path) as a class directory for the project. Only valid when running lint on a single project. --librariesAdd the given folder (or jar file, or path) as a class library for the project. Only valid when running lint on a single project. Exit Status: 0 Success. 1 Lint errors detected. 2 Lint usage. 3 Cannot clobber existing file. 4 Lint help. 5 Invalid command-line argument.

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.