为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Java Android

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

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

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

但这些方法都好麻烦~

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

我想到了Lint。

##Lint是什么?

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

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

####Lint规则

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

lint --show

####Lint的报告

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

Lint报告类似这样:

图片描述

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

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

##Android项目中使用Lint

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

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

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

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

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

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

./gradlew lint

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

看到上图中说:

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, 然后可以勾选。

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

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

Android -> Constant and Resource Type Mismatches

里面就会有Missing permission

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

·····································
欢迎关注课程:
基于Python玩转人工智能框架 TensorFlow应用实践

点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消