Android Studio它作为Google官方推荐的IDE,功能非常强大,其中提供了一套静态代码分析工具(代码扫描工具),它可以帮助我们检查项目中存在的问题,让我们更有规范性的开发App。它可以检查出:xml文件中是否存在hardcode硬编码、spelling拼写问题、unused resources没有使用到的资源、probable bug可能的bug等等。([ɪnˈspekʃn] 检查、检测)然后会给出修改的建议供我们参考,虽然这些问题并不会影响App的正常运行,不过这对于项目的规范性和维护性来说是非常重要的。
作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望(资源文件)没有用到的图片资源也被打包进apk, 在应用发布前保证程序质量。
硬编码: 直接在TextView中写字体大小和要显示的文字。
[sɪ'verətɪ]:问题严重等级
我们可以通过更改对应的severity等级来更改提示的等级,默认hardcode的severity等级为warning,我们修改hardcode的severity等级为error,那么在存在硬编码时候将会以error等级提醒我们。如何修改呢?(把警告级别提高到错误级别)
硬编码问题仅仅是黄色警告级别。 很多问题的严重级别都是此;如何自定义android lint的检测条件?
在TextView中直接使用dp为单位,用的不是sp。 也是警告级别。修改完成后,就可以看到提示使用红色的波浪线标记。Android Lint中还有很多可以自己去设置的,有兴趣的可以去试试,当然这个只是起提示建议作用,并不会影响程序的正常运行。提升这个地方的等级不会对代码和其他静态分析工具如lint产生影响,也不会对运行产生影响,它的作用域仅仅是IDE展示
使用Android Studio的lint清除无用的资源文件
Analyze菜单下:点击菜单栏的Analyze -> Run Inspection by Name, 输入unused resource。
这项操作,一般用于检查资源目录res文件夹。
android 使用lint + studio ,排查客户端无用资源,string,drawable,layout等
我们还可以设置很多其他的IDE静态代码检查,通过改变其severity达到更直观提示的作用,可以让开发者有一个直观的认识,哪些代码是合法但是不规范的。lint工具简单实用,自动化分析,分析完成会给我们分析报告.分析包括中会包括错误和警告,会给出具体的描述、类别、位置。
lint是Android提供的一个静态代码检查的工具,我们可以在gradle的构建task中加入link检查。具体的使用请移步到goole文档。link能够检查的东西很多,参考 所有check issue。
lint工具可以通过一个xml文件来配置,它可以用来修改某些check issue是否忽略(典型的例子是第三方库里面存在问题),同时可以修改某些issue的默认等级。
HardcodedText的默认等级是警告,我们升级成error,并在配置文件中增加
lintOptions {
lintConfig file("lint.xml")
abortOnError true},这样在我们构建项目的时候如果发生错误,将直接中断构建。
需要注意的是,点击AS上面的绿色的运行按钮是不会触发lint检查的,如果你想每次点击运行都进行lint检查,可以如下设置:edit configuration选项卡中进行配置。
Android Lint可以检查出的错误包括:
1.Missing translations (and unused translations) 没有翻译的文本
2. Layout performance problems (all the issues the old layoutopt tool used to find, and more) 布局性能
3. Unused resources未使用的冗余资源
4. Inconsistent array sizes (when arrays are defined in multiple configurations)在多个配置中的数组大小不一致文件
5. Accessibility and internationalization problems (hardcoded strings, missing contentDescription, etc)
6. Icon problems (like missing densities, duplicate icons, wrong sizes, etc)
7. Usability problems (like not specifying an input type on a text field)
8. Manifest errors.
缺少翻译(和未使用的翻译)
布局性能问题(老的layoutopt工具会用于查找所有这样的问题,和除此之外更多的问题,可以解决无用布局、嵌套太多、布局太多)
未使用的资源
不一致的数组大小(当在多个配置中定义数组)
可访问性和国际化问题(硬编码字符串,缺少contentDescription等)
图标问题 (如丢失密度、 重复图标、 错误尺寸等)
可用性问题 (如不在文本字段上指定输入的类型)
清单错误
双击错误信息,可以看到错误的详情介绍和在代码中的位置。(这里的错误往往不是异常或error,而是你代码中可以进一步优化的部分)
代码没有问题后,就可以将程序run起来,进行下一步的内存和CPU监测了。
Android Lint提供了命令行方式执行,还可与IDE(如Eclipse)集成,并提供了html形式的输出报告。在Android SDK安装目录的tools目录下(比如D:\SDK\android-sdk_r13\tools)执行下列指令即可得到。
配置 lint 文件
你可以指定lint检查的选项在lint.xml 文件。创建lint.xml文件放在Android工程的根目录下。
Findbugs可以检查出来空指针异常的