提高你的代码稳定性与可读性-lint工具
from://http://wiki.eoe.cn/page/Improving_Your_Code_with_lint.html
负责人:lingzideshensha
分任务原文链接:http://developer.android.com/tools/debugging/improving-w-lint.html
除了测试你的Android应用程序满足其功能需求,重要的是要确保你的代码没有结构性问题。代码结构简陋的可靠性和效率的影响你的Android应用程序,使您的代码很难维护。例如,如果您的XML资源文件包含未使用的名称空间,这占用空间并产生不必要的处理。其他的结构性问题,比如使用弃用元素或API调用所不支持的目标API版本,可能会导致代码未能正确地运行。
概述
Android SDK提供了一个代码扫描工具,称为 lint这可以帮助您轻松地识别并纠正问题与结构质量的代码,而不必执行应用程序或编写任何测试用例。每个问题检测到该工具报告的一个描述消息和严重性级别,您可以快速地优先考虑的关键改进,需要。您还可以配置一个问题的严重性级别,忽略不相关的问题,为您的项目,或提高的严重程度。这个工具有一个命令行接口,所以您可以很容易地集成到您的自动化测试过程。
这个 lint工具检查你的Android项目源文件潜在的bug和优化改进,以确保正确性、安全性、性能、可用性、可访问性和国际化。您可以运行 lint从命令行或从Eclipse环境。
图1展示了 lint工具处理应用程序源文件。
http://developer.android.com/images/tools/lint.png
图1。代码扫描的工作流与 lint工具
- 应用程序源文件*
:源文件包含文件,让你的Android项目,包括Java和XML文件,图标和混淆器配置文件。
- 这个 lint.xml文件*
:一个配置文件,您可以使用它来指定任何 lint检查你想排除和定制问题严重级别。
- 这个 lint工具*
:一个静态代码扫描工具,您可以运行在你的Android项目从命令行或从Eclipse。这个 lint工具检查结构代码的问题,可能会影响质量和性能的Android应用程序。强烈建议您纠正任何错误 lint检测应用程序之前出版。
- 结果 lint检查*
:您可以查看结果 lint在控制台或在Lint Warnings在Eclipse视图。每个问题是确定的位置在源文件它发生的位置和描述的问题。
这个 lint工具将自动安装Android SDK的一部分16或更高版本的工具。如果你想使用 lint在Eclipse环境中,您还必须安装Android开发工具(ADT)插件的Eclipse版本16或更高。为更多的信息关于安装SDK和Eclipse ADT插件,请参阅安装SDK。
lint从Eclipse运行
如果ADT插件���装在您的Eclipse环境, lint工具运行时自动执行这些行动的:
- 出口一个APK
- 编辑和保存一个XML源文件在你的Android项目(比如清单或布局文件)
- 使用布局编辑器在Eclipse中进行更改
注意,当您导出一个APK, lint只运行一个自动检查致命错误和中止出口如果致命错误被发现。你可以关掉这个自动检查从Lint错误检查Eclipse首选项页面。
输出显示在Lint Warnings视图。如果Lint Warnings的观点是不显示在工作台,你可以把它从Eclipse菜单点击窗口> Show view > > >其他AndroidLint Warnings。
图2显示了一个示例的输出在Lint Warnings视图。
文件:1233.png|800px|thumb|left|图2。在示例输出Lint Warnings视图
您还可以运行 lint在你的Android项目手动扫描在Eclipse中通过右键单击项目文件夹在Package Explorer工具>运行> Android Lint Warnings.
从命令行运行lint
要运行 lint对一个文件列表的项目目录:
lint [flags]
例如,您可以发出以下命令来扫描下的文件 myproject目录及其子目录。这个问题ID MissingPrefix告诉 lint只扫描XML属性缺失的Android名称空间前缀。
lint --check MissingPrefix myproject
要查看完整的列表的命令行参数所支持的工具:
lint --help
示例lint产量
下面的例子显示了控制台时的输出 lint命令是违反一项名为Earthquake。
$ lint Earthquake
Scanning Earthquake: ...............................................................................................................................
Scanning Earthquake (Phase 2): .......
AndroidManifest.xml:23: Warning: tag appears after tag [ManifestOrder]
^
AndroidManifest.xml:23: Warning: tag should specify a target API level (the highest verified version; when running on later versions, compatibility behaviors may be enabled) with android:targetSdkVersion="?" [UsesMinSdkAttributes]
^
res/layout/preferences.xml: Warning: The resource R.layout.preferences appears to be unused [UnusedResources]
res: Warning: Missing density variation folders in res: drawable-xhdpi [IconMissingDensityFolder]
0 errors, 4 warnings
上面的输出列出了四个警告和没有错误在这个项目。三个警告(ManifestOrder, UsesMinSdkAttributes,UsesMinSdkAttributes在项目的)被发现的 AndroidManifest.xml文件。剩下的警告(IconMissingDensityFolder)被发现的 Preferences.xml布局文件。
配置lint
默认情况下,当您运行一个 lint扫描,该工具检查所有问题所支持 lint。您还可以限制问题 lint检查并分配为这些问题的严重程度。例如,您可以禁用 lint检查特定的问题无关你的项目和配置 lint报告非关键问题在一个较低的严重程度。
您可以配置 lint检查在不同的级别:
* 在可操作范围内,对所有的项目
* 每个项目
* 每个文件
* 每个Java类或方法(通过使用 @SuppressLint注释),或每个XML元素(通过使用 tools:ignore属性。
lint在Eclipse中配置
您可以配置可操作,具体项目和文件特定的设置 lint从Eclipse用户界面。
Global preferences
1.Open Window > Preferences > Android > Lint Error Checking。
2.指定您的首选项并单击OK。
这些设置都应用默认情况下当你运行 lint在你的Android项目在Eclipse中。
项目和文件特定偏好
1.运行 lint工具在你的项目通过右键单击您的项目文件夹在包浏览器并选择Android工具>运行Lint:检查常见的错误。这个操作将显示视图,其中显示了Lint Warnings的问题清单, lint在你的项目检测。
2.从Lint Warnings视图,使用工具栏选项来配置 lint个人偏好在Eclipse项目和文件。你可以在选项选择包括:
:* 抑制这个错误的注释/属性——如果这个问题出现在一个Java类, lint工具添加一个 @SuppressLint注释的方法检测问题。如果这个问题出现在一个 .xml文件, lint插入一个 tools:ignore属性来禁用检查 lint问题在这个文件中。
:* 忽略在这个文件中,禁用检查这个 lint问题在这个文件中。
:* 忽略在这个项目-禁用检查这个 lint在这个项目的问题。
:* 总是忽略——禁用检查这个 lint在可操作范围内对所有的项目问题。
如果你选择第二个或第三个选项, lint工具会自动生成一个 lint.xml文件与这些配置设置在你的Android应用程序项目文件夹。
配置lint文件
您可以指定你的 lint检查偏好在 lint.xml文件。如果你正在创建这个文件手动,将其放置在你的Android项目根目录。如果您正在配置 lint在Eclipse首选项, lint.xml文件是自动创建并添加到你的Android项目给你。
这个 lint.xml文件包含一个封闭 父标记,它包含一个或更多的child 元素。每个 由一个唯一的标识吗 id属性值,它被定义为 lint.
<?xml version"UTF-8"?>
通过设置属性值的程度 标签,你可以禁用 lint检查一个问题或更改为一个问题的严重程度。
提示:要查看完整的列表,支持的问题 lint工具及其相应的问题id,运行 lint --list命令。
- 示例lint。xml文件*
下面的例子显示的内容 lint.xml文件。
<?xml version"UTF-8"?>
1 |
<!-- Ignore the ObsoleteLayoutParam issue in the specified files --> |
配置lint检查Java和XML源文件中
你可以禁用 lint检查从你的Java和XML源文件。
提示:如果您使用的是Eclipse,您可以使用快速修复功能来自动添加注释或属性来禁用 lint检查您的Java或XML源文件:
1.打开Java或XML文件,有一个 Lint Warnings或错误在Eclipse编辑器。
2.移动你的光标位置的文件在哪里 lint问题是找到,然后按 Ctrl+1启动快速修复弹出。
3.从快速修复弹出,选择行动来添加一个注释或属性来忽略 lint问题。
在Java中配置lint检查
禁用 lint专门为一个Java类检查或方法在你的Android项目,添加 @SuppressLint注释的Java代码。
下面的例子展示了如何关掉 lint检查 NewApi问题 onCreate方法。这个 lint工具继续检查 NewApi问题在其他这个类的方法。
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
下面的例子显示了如何关掉 lint检查 ParserError问题 FeedProvider类:
@SuppressLint("ParserError")
public class FeedProvider extends ContentProvider {
忽略检查所有 lint问题在Java文件,使用 all关键字,像这样:
@SuppressLint("all")
在XML配置lint检查
您可以使用 tools:ignore属性来禁用 lint检查你的XML文件的特定部分。为了让这个属性是承认的 lint工具,以下名称空间值必须包含在XML文件:
namespace xmlns:tools="http://schemas.android.com/tools"
下面的例子展示了如何关掉 lint检查 UnusedResources问题 元素的XML布局文件。这个 ignore属性是继承了children 的元素的 parent 元素中声明的属性。在这个例子中, lint检查是否禁用了child 元素。
1 |
<TextView |
禁用不止一个问题,这个问题列表来禁用以逗号分隔的字符串。例如:
tools:ignore="NewApi,StringFormatInvalid"
忽略检查所有 lint问题在XML元素,使用 all关键字,像这样:
tools:ignore="all"




提高你的代码稳定性与可读性-lint工具的更多相关文章
- 提高 Android 代码质量的4个工具
在这篇文章中,我将通过不同的自动化工具如CheckStyle,FindBugs,PMD以及Android Lint来介绍(如何)提高你的安卓代码质量.通过自动化的方式检查你的代码非常有用,尤其当你在一 ...
- 团队代码中Bug太多怎么办?怎样稳步提高团队的代码质量
最近负责的Android APP项目,由于团队成员变动.界面改版导致代码大幅修改等原因,产品发布后屡屡出现BUG导致的程序崩溃. 经过对异常统计和代码走读,BUG主要集中在空指针引起的NullPoin ...
- 提高NetBeans的代码提示速度.md
NetBeans配置 如何提高NetBeans的代码提示速度,打开下面的文件然后配置 **C:\Users\ylg\AppData\Roaming\NetBeans\8.2\config\Editor ...
- Android学习之Android studio TraceView和lint工具的使用具体解释
上次讲述了一下Android studio Terminal的使用配置,今天又学习了一下关于Traceview和lint工具的使用. 首先来讲lint吧: Android lint工具是Android ...
- Lint工具去除Android工程里不再需要的资源
摘要: 在项目开发过程中常常会不断改UI设计,于是在定稿要发布的前夕,发现有好多不再需要的资源文件存在,发布的包会把这些无用的资源都包含在里面,造成APK的下载包过大.可以通过Android SDK自 ...
- android studio学习---Lint工具
对代码进行测试是一回事,但同样重要的是.我们还需要在编写代码的同时引入各种最佳实践.这不仅能够显著改进性能表现,也能增加应用程序的整体稳定性.另外,经过合理结构调整的项目在维护方面也更为轻松. And ...
- AS之Lint 工具
AndroidStudio内置的Lint工具,对app中的代码规范带来了极大的方便.对内存泄漏.代码冗余.代码安全.国际化.代码规范等很多方面都能检测,是一款非常强大的工具! 使用: 在AS--> ...
- 提高Scrum站会效率的一个小工具
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:提高Scrum站会效率的一个小工具.
- 适合Linux嵌入式项目的代码构建与依赖管理工具——cazel
前言 我们知道,现在有很多流行的优秀代码构建工具,如CMake.jetkins.bazel等.这些不同的构建工具在其应用的领域起到了举足轻重的作用. 但是,如果仔细研究就会发现,在嵌入式领域,构建工具 ...
随机推荐
- Newtonsoft 反序列化字符串
string json=“[{“name”:”zhangsan”,”age”:”12”},{“name”:”zhangsan”,”age”:”12”}]” 方法1: JArray arr = (JAr ...
- cube-ui
cube-ui 新官网:https://didi.github.io/cube-ui/#/zh-CN
- Android studio2.3.3升级3.1.2坑
原文:https://blog.csdn.net/qq_26361871/article/details/80255141 1.grade配置Error: Could not find com.and ...
- SOCKET简单爬虫实现代码和使用方法
抓取一个网页内容非常容易,常见的方式有curl.file_get_contents.socket以及文件操作函数file.fopen等. 下面使用SOCKET下的fsockopen()函数访问Web服 ...
- 局域网内其他主机如何访问运行在宿主机的虚拟机中的Django项目(转)
局域网内其他主机如何访问运行在宿主机的虚拟机中的Django项目 1.在宿主机cmd中查看宿主机的ip(注意区分主机中虚拟机的ip) 我连的是无线,IP如下 2.在Django项目的mysit ...
- 20172301 《Java软件结构与数据结构》实验三报告
20172301 <Java软件结构与数据结构>实验三报告 课程:<Java软件结构与数据结构> 班级: 1723 姓名: 郭恺 学号:20172301 实验教师:王志强老师 ...
- 007.MySQL-Keepalived搭配脚本01
vim /etc/keepalived/check_MySQL.sh #!/bin/bash MYSQL=/usr/bin/mysql MYSQL_HOST=localhost MYSQL_USER= ...
- 谈 JavaScript 中的强制类型转换 (2. 应用篇)
这一部分内容是承接上一篇的, 建议先阅读谈 JavaScript 中的强制类型转换 (1. 基础篇) 前两章讨论了基本数据类型和基本包装类型的关系, 以及两个在类型转换中十分重要的方法: valueO ...
- [ 转载 ] Java 构造代码块
https://blog.csdn.net/liyunxiangrxm/article/details/80244016
- 整理低版本ie兼容问题的解决方案
CSS hack \9 所有的IE10及之前 * IE7以及IE7以下版本的 _ IE6以及IE6以下版本的 !important 提升样式优先级权重 1.ie6,7 ...