因为工作中要用lint检查没有使用资源引用的字符串,而我之前从来没有用过这个工具,只是听说过,趁着这个机会学习一下lint工具。
优化的内容主要包括:
1.Correctness:不够完美的编码,比如硬编码、使用过时 API 等。
2.Performance:对性能有影响的编码,比如:静态引用,循环引用等
3.Internationalization:国际化,直接使用汉字,没有使用资源引用等
4.Security:不安全的编码,比如在 WebView 中允许使用 JavaScriptInterface 等
Lint检查有两种方式,我学习的是第二种方式
1.从命令行运行 Lint
lint [flags] <project directory>
Lint 也可以使用 Gradle 运行:gradlew lint
2.Android Studio 中使用 Lint
点击inspect Code,默认检查的是整个项目
可以选择Custom scope自定义检查范围
以下以我的Demo为例做了Lint检查,一个小小Demo就有这么多问题
针对 Android 的规则类别会在分类前说明是 Android 相关的,主要是六类:
1.Accessibility 无障碍,例如 ImageView 缺少 contentDescription 描述,String 编码字符串等问题。
2.Correctness 正确性,例如 xml 中使用了不正确的属性值,Java 代码中直接使用了超过最低 SDK 要求的 API 等。
3.Internationalization 国际化,如字符缺少翻译等问题。
4.Performance 性能,例如在 onMeasure、onDraw 中执行 new,内存泄露,产生了冗余的资源,xml 结构冗余等。
5.Security 安全性,例如没有使用 HTTPS 连接 Gradle,AndroidManifest 中的权限问题等。
6.Usability 易用性,例如缺少某些倍数的切图,重复图标等。
其他的结果条目则是针对 Java 语法的问题,另外每一个问题都有区分严重程度(severity),从高到底依次是:
Fatal
Error
Warning
Information
Ignore