android代码检测工具,Android开发代码监测超级好工具Lint

AAffA0nNPuCLAAAAAElFTkSuQmCC

近来有一个Android小项目需要优化, 包括从AndroidManifest.xml删除不必要的permission(权限)。

需要删除的权限有点多, 而我又不是很确定哪些权限对于App是必要的。如果我这样做: 每删除一个权限, 就运行一下App, 看各样功能正常不, 那就太费时间了。

或者, 我可以写Android Instrumentation Test测试来检测每一次删除的permission是不是导致App运行错误。

但这些方法都好麻烦~

有没有更简单快捷的方式呢? 要知道程序员是要懂得偷懒的。

我想到了Lint。

##Lint是什么?

Lint是一种工具程式的名称,它用来标记原始码中,某些可疑的、不具结构性(可能造成bug)的段落。

它是一种静态程序分析工具,最早适用于C语言,在UNIX平台上开发出来。后来它成为通用术语,可用于描述在任何一种电脑程式语言中,用来标记原始码中有疑义段落的工具。

####Lint规则

Lint检测不少规则, 你可以输入以下命令来查看:

lint --show

AAffA0nNPuCLAAAAAElFTkSuQmCC

####Lint的报告

Lint的报告就是Lint检测完指定项目后生成的一个文件, 可以是HTML, XML等格式, 指明了哪些地方需要优化和改正。

Lint报告类似这样:

AAffA0nNPuCLAAAAAElFTkSuQmCC

Lint测试生成的报告还可以被SonarQube这样的开源代码质量管理系统以图表的形式展示出来, 非常利于项目优化。

下次我会写一篇SonarQube配合各种工具生成报告的文章。先来一睹为快吧:

AAffA0nNPuCLAAAAAElFTkSuQmCC

##Android项目中使用Lint

Android的Lint官方教程, 需要番茄的链接:

我们可以在Android Studio的Gradle配置文件中设置Lint的检测规则:

AAffA0nNPuCLAAAAAElFTkSuQmCC

然后, 可以在Android Studio中直接启动Lint检测:

点击Android Studio的菜单栏中的Analyze -> Inspect code, 选择要用Lint检测的项目(当然了, 你也可以不检测所有Lint规则, 而是选择Run Inspection by Name, 然后输入规则名字, Lint就只会检测此项规则 ), 可以是整个Project, 或者是一个Module :

AAffA0nNPuCLAAAAAElFTkSuQmCC

或者用命令行的模式来启动Lint检测:

到项目的根目录中, 输入下面的命令, 回车

./gradlew lint

Gradle工具就会编译你的项目, 生成Lint测试的报告:

AAffA0nNPuCLAAAAAElFTkSuQmCC

看到上图中说:

Wrote HTML report to file:///home/exe/qksms/QKSMS/build/outputs/lint-results-noAnalyticsDebug.html

Wrote XML report to file:///home/exe/qksms/QKSMS/build/outputs/lint-results-noAnalyticsDebug.xml

意思是:

HTML格式的报告已生成, 在/home/exe/qksms/QKSMS/build/outputs/lint-results-noAnalyticsDebug.html

XML格式的报告已生成, 在/home/exe/qksms/QKSMS/build/outputs/lint-results-noAnalyticsDebug.xml

##Android Studio中配合Lint来检测缺失的permission

可以配置Lint检测permission的规则, 点击Android Studio的菜单栏中的File -> Settings, 在搜索框中输入lint, 再在子搜索框中输入permission, 然后可以勾选。

AAffA0nNPuCLAAAAAElFTkSuQmCC

在Android Studio中运行Lint, 或者用上面说过的命令行。

在生成的报告中, 可以查看

Android -> Constant and Resource Type Mismatches

里面就会有Missing permission

AAffA0nNPuCLAAAAAElFTkSuQmCC

##总结

Lint是非常有用的一个代码监测工具, 可以审查很多种编程语言, 配合Android开发非常好用, 至于更多Lint的特性和使用, 请参考网上更多教程。

·····································

欢迎关注课程:

基于Python玩转人工智能框架 TensorFlow应用实践

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值