使用lint工具优化Android代码

一、概述

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.

这是我们项目中没用的资源文件,好多没用的图片啊!!

删掉之后清爽好多!

时间: 2024-08-02 13:01:32

使用lint工具优化Android代码的相关文章

使用Zipalign工具优化Android APK应用记录

生成的Android应用APK文件最好进行优化,因为APK包的本质是一个zip压缩文档,经过优化能使包内未压缩的数据有序的排列,从而减少应用程序运行时的内存消耗.我们可以使用Zipalign工具进行APK优化. 据Android官方网站的说明,Zipalign是一款重要的优化APK应用程序的工具. 多数软件开发商在正式推出其Android应用程序,都使用Zipalign工具优化APK包.但是,仍然有一些应用程序需要我们自己动手进行Zipalign优化,例如一些个人开发的软件.一些破解版的软件.

如何使用Zipalign工具优化Android APK应用

看到好的技术教程就想转载一下,不喜勿喷!谢谢配合,仅供菜鸟学习研究,不要做坏事哦\(^o^)/~ 转自:http://www.jizhuomi.com/android/environment/232.html 生成的Android应用APK文件最好进行优化,因为APK包的本质是一个zip压缩文档,经过优化能使包内未压缩的数据有序的排列,从而减少应用程序运行时的内存消耗.我们可以使用Zipalign工具进行APK优化. 据Android官方网站的说明,Zipalign是一款重要的优化APK应用程序

Android学习之Android studio TraceView和lint工具的使用具体解释

上次讲述了一下Android studio Terminal的使用配置,今天又学习了一下关于Traceview和lint工具的使用. 首先来讲lint吧: Android lint工具是Android studio中集成的一个代码提示工具.它主要负责对你的代码进行优化提示,包含xml和java文件,非常强大. 编写完代码及时进行lint測试.会让我们的代码变得非常规范并且避免代码冗余. 让我们及时发现代码中隐藏的问题. 举个样例:我们在代码中建立全局变量.而这个变量实际并不须要全局便利.lint

Improving Your Code with lint——使用lint改善你的代码

要进一步测试你的Android应用是否满足功能需求,确保你的代码没有结构上的错误是很重要的.糟糕的结构代码会影响你的Android应用的可靠性和效率,让你的代码难以维护.例如,如果你的XML资源文件包含了未使用的命名空间,这会占用空间并带来不必要的处理.其它结构性问题,例如使用废弃的元素或调用目标API版本不支持的API,会导致不能正确运行代码. 概述 Android SDK提供了一个叫做 lint 的代码扫描工具,可以帮助你很轻松地识别和纠正代码的结构质量问题,而不用执行应用程序或写任何测试用

保持Android代码颜值的一些思考

大部分时候,我们弄的Activity承担了Control和View的功能,使得Activity类越来越大,形成了最后无法维护的Activity.如何优化Android代码,可以顺序执行以下步骤: 1.职责划分 首先我们将Activity作为一个View来考虑,既然是View那么就应该更多的负责View的事情,而尽可能的不去处理Control相关的事情. 页面中类似于网络获取,数据库数据获取等等的操作,都移到另一个类中去做,这个类做完这些事情,通过handler或者监听去通知Activity更新页

Android代码内存优化建议-Android官方篇

转自:http://androidperformance.com/ http://developer.android.com/intl/zh-cn/training/displaying-bitmaps/index.html 为了使垃圾回收器可以正常释放程序所占用的内存,在编写代码的时候就一定要注意尽量避免出现内存泄漏的情况(通常都是由于全局成员变量持有对象引用所导致的),并且在适当的时候去释放对象引用.对于大多数的应用程序而言,后面其它的事情就可以都交给垃圾回收器去完成了,如果一个对象的引用不

从Android资源角度谈Android代码内存优化

原文链接:http://www.codeceo.com/article/android-resource-android-mem.html 这篇文章主要介绍在实际Android应用程序的开发中,容易导致内存泄露的一些情况.开发人员如果在进行代码编写之前就有内存泄露方面的基础知 识,那么写出来的代码会强壮许多,写这篇文章也是这个初衷.本文从Android开发中的资源使用情况入手,介绍了如何在Bitmap.数据库查询.9- patch.过渡绘制等方面优化内存的使用. Android资源优化 1. B

【工利其器】Android Lint篇——为Android量身定做的静态代码审查工具

前言 我们在进行代码优化的时候,往往是通过开发者的经验来判断哪些代码可能存在潜在问题,哪些资源的使用不合规范等.实际上Android SDK提供了一款功能非常强大的工具,来帮助开发者自动检测代码的质量及安全问题,这款工具就叫Android Lint.Lint提供了命令行方式以及与IDE集成的方式来执行,现在Android开发者基本上都使用Android Studio(后文简称AS,下同)来进行开发,强大的AS也集成了该工具,本文就基于AS3.2版本来介绍Lint. 一.Android Lint简

android studio学习---Lint工具

对代码进行测试是一回事,但同样重要的是.我们还需要在编写代码的同时引入各种最佳实践.这不仅能够显著改进性能表现,也能增加应用程序的整体稳定性.另外,经过合理结构调整的项目在维护方面也更为轻松. Android Studio中提供的Android Lint是一款静态分析工具,它负责对项目源代码加以分析.它能够检测出应用程序中的潜在漏洞以及其它可能被编译器所忽略的其它代码问题. 就以下面这幅截图为例,大家可以看到该布局中的LinearLayout并未得到实际使用.Android Lint的优势在于,