Jenkins Android 代码检查

Android Lint是一个静态代码分析工具,用于检测代码中的潜在问题,包括Correctness、Performance、Internationalization和Security等方面。它可以集成到Android Studio、命令行或Jenkins中。在Jenkins构建过程中,lint检查生成的报告可以帮助分析和优化代码。在集成时需要注意避免警告导致构建失败,并正确配置lint规则文件以自定义检查标准。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android lint是一个静态代码分析工具,通过lint工具,你可以不用边运行边调试,或者通过单元测试进行代码检查,可以检测代码中不规范、不和要求的问题,解决一些潜在的bug。lint工具可以在命令行上使用,也可以在Android studio中使用。是sdk自带的一种静态分析工具,在sdk目录的tools目录下面的bin可以找到lint工具。可以直接在Android stuido中调用,也可以通过命令行./gradlew lint 执行,当然也可以集成到jenkins中,每次编译的时候都执行代码。

Lint 会根据预先配置的检测标准检查我们 Android 项目的源文件,发现潜在的 bug 或者可以优化的地方,主要针对几个方面:

Correctness:不够完美的编码,比如硬编码、使用过时 API 等;

Performance:对性能有影响的编码,比如:静态引用,循环引用等;

Internationalization:国际化,直接使用汉字,没有使用资源引用等

Security:不安全的编码,比如在WebView中允许使用JavaScriptInterface

Lint规则文件lint.xml可以自定义修改检查标准,可以使用默认的规则,也可以自定义一些特定条件的规则

上面提到了代码检查可以集成到jenkins中,只需要在构建过程中添加类似如下步骤即

在执行构建时,就会自动检查android_sdk_refactor_as工程下所有的Android代码,生成lint-results.xml结果文件。生成结果文件通过Android Lint Plugin 发布出去,这样就可以直观的看到检查报告。

生成类似结构的报告后可以进行简单的分析了,如下面问题:

第一眼看到High Priority就有37个,不必惊慌去掉重复调用的影响后就会少一半了。再由于静态代码的存在误判行为,结合上下文环境,又会减少一些。如上面这个问题,很明显是由于项目配置的支持最小SDK版本是14,可是工程中却使用了SDK必须大于19才能使用的api,当工程运行在低版本的手机时,就很容易发生各种异常。或者出现类似下面异常

当工程试图调用只有用户同意才可以访问的接口时,程序应该做出当用户拒绝操作权限时的相应处理。

集成过程中坑点

开始设想把代码检查放在【构建后操作】来做,这样既不影响打包,也可以做代码检查。但是这样无法发布lint测试报告,因为构建后第一个步骤就是发布lint测试报告。

由于现在很多项目都是多个工程一起构建,一定要把gradlew lint命令写在主工程下面。多个工程,代码检查会生成多个结果文件,但是多个文件不能合并。

有的工程没有忽略lint警告,当出现警告后就会停止编译,所以需要把每个检查的工程都配置忽略警告。

更多技术文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值