使用lint工具优化Android代码

原创 2015年05月11日 21:22:46

一、概述

Android lint工具是一个静态的代码分析工具,用来检查代码中潜在的问题并且提高代码的正确性,安全性,可用性,国际化和性能。
确保代码中没有结构性的错误,发现潜在的问题。Android-Lint提供了命令行方式执行,还可与IDE(eclipse、Idea、AndroidStudio)集成,并提供了html形式的输出报告。Android-Lint可以方便的与项目中的其他自动系统(配置/ Build / 测试等)集成。

二、应用

2.1 自动执行

以AndroidStudio为例,当build应用时,lint就会再自动运行。并且如果报错的话就会停止build。我们可以在项目的gradle配置文件中配置lint选项

android {
    lintOptions {
       // set to true to turn off analysis progress reporting by lint
       quiet true
       // if true, stop the gradle build if errors are found
       abortOnError false
       // if true, only report errors
       ignoreWarnings true
       }
       ...
    }

上面的代码代表静默执行,并且忽略lint报错。

2.2手动执行

当然,我们还可以手动执行lint ,操作Analyze > Inspect Code。

2.3代码行执行

lint提供了命令行执行,不知道怎么执行的话可以 lint –help下。
Android-Lint所检查的潜在问题,可以通过命令行$lint –show来获得。可以参考这里:

http://tools.android.com/tips/lint

检查大概的格式是这样的:

lint [flags] <project directory>

最简单的一种用法:

lint Android项目目录

例子:

lint app/                                                                                                                                             

Scanning 1.0.1: .....
Scanning 1.0.1 (Phase 2): ..
Scanning umengupdate-release: ......................................
Scanning unspecified: ...............................................
Scanning unspecified (Phase 2): ....................
build/intermediates/exploded-aar/umengupdate-release/res/layout/umeng_update_dialog.xml:47: Warning: Consider adding android:layout_marginEnd="8dp" to better support right-to-left layouts [RtlHardcoded]
                android:layout_marginRight="8dp"
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
build/intermediates/exploded-aar/com.afollestad/material-dialogs/0.7.3.1/AndroidManifest.xml: Warning: The project references RTL attributes, but does not explicitly enable or disable RTL support with android:supportsRtl in the manifest [RtlEnabled]
26 errors, 444 warnings

如下的命令可以检测在xml文件中没有命名前缀的错误:

lint --check MissingPrefix myproject

具体的命令请参考官网

http://developer.android.com/tools/help/lint.html

三、lint配置

3.1在设置中配置

在AndroidStudio中,我们可以在 File > Settings > Project Settings中配置lint在我们项目中得配置。
这里写图片描述

3.2 lint.xml

引用官方文档中的一张图:
这里写图片描述
很直观的表达了lint.xml文件的作用,通过lint.xml和lint Tool共同作用就可以检查代码中的问题。
一个例子:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    <!-- Disable the given check in this project -->
    <issue id="IconMissingDensityFolder" severity="ignore" />

    <!-- Ignore the ObsoleteLayoutParam issue in the specified files -->
    <issue id="ObsoleteLayoutParam">
        <ignore path="res/layout/activation.xml" />
        <ignore path="res/layout-xlarge/activation.xml" />
    </issue>

    <!-- Ignore the UselessLeaf issue in the specified file -->
    <issue id="UselessLeaf">
        <ignore path="res/layout/main.xml" />
    </issue>

    <!-- Change the severity of hardcoded strings to "error" -->
    <issue id="HardcodedText" severity="error" />
</lint>

3.3在Java代码和XML代码中配置lint

当然在Java代码中依然可以配置lint,例子:

@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

上面的代码代表在onCreate方法中关闭lint检查”NewApi”,但是lint依然会检查没有 @SuppressLint(“NewApi”) 标记的其他方法。
类似的还有:

@SuppressLint("ParserError")
public class FeedProvider extends ContentProvider {

关闭”ParserError”检查。
如果想关闭搜索的检查项,可以这样设置:

@SuppressLint("all")

在XML中,我们可以使用tools:ignore 来关闭相应lint检查项,要使用”tools:”,首先要加上相应地namespaces

namespace xmlns:tools="http://schemas.android.com/tools"

例子如下:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="UnusedResources" >

    <TextView
        android:text="@string/auto_update_prompt" />
</LinearLayout>

避免检查没有用到的资源文件。同样地还有:

tools:ignore="NewApi,StringFormatInvalid"

相应地关闭所有的检查项:

tools:ignore="all"

四、总结

lint工具对于个人开发者个人感觉用处相对不大,但是如果是团队项目,那么它的作用就很大了,因为每个人的代码习惯都是不一样的,并且会定义很多的资源文件,这样日积月累下来,apk的大小就会不必要的增大很多。个人感觉lint工具最重要的一个功能就是差unUseResources,可以删掉好多不用的资源文件,给apk瘦身。
检查结果在 Android Lint –> Unused resources.
这里写图片描述
这是我们项目中没用的资源文件,好多没用的图片啊!!
删掉之后清爽好多!

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

使用lint工具优化Android代码

一、概述 Android lint工具是一个静态的代码分析工具,用来检查代码中潜在的问题并且提高代码的正确性,安全性,可用性,国际化和性能。确保代码中没有结构性的错误,发现潜在的问题。Andro...

Lint (java 使用或覆盖了已过时的 API)

Java Lint 工具 Stephen Suen Copyright © 2005 Stephen Suen. All rights reserved. ...

Android代码优化——使用Android lint工具(才发现这是个不错的工具)

来源:Linux社区  作者:xyz_lmn 在这个网址看到的:http://www.linuxidc.com/Linux/2014-02/97023.htm 作为移动应用开发者,...

Android Studio使用Lint进行代码检查

原文地址:http://blog.csdn.net/u010687392/article/details/47835743 Android Studio目前已经更新到1.4版本,它作为Googl...

android lint选项含义

lint选项含义

代码优化------Android studio中关于lint工具的使用

毋庸置疑此工具简直就是一把利器,帮我们分析在我们编码中存在的诸多问题,我们不可能什么问题都能发现的了,so称之为利器,用之事半功倍. 其有很多的功能,今天就从两方面着手,第一是如何应用,第二是一个类文...

Android代码优化——使用Android lint工具

作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidManifest文件存在异常...

Android代码优化——使用Android lint工具

作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidManifest文件存在异常...

Android代码优化—使用Android lint工具

作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidManifest文件存在异常...

Android代码优化——使用Android lint工具

作为移动应用开发者,我们总希望发布的apk文件越小越好,不希望资源文件没有用到的图片资源也被打包进apk,不希望应用中使用了高于minSdk的api,也不希望AndroidManifest文件存在异常...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)