(一)Lint简介

Android SDK提供了一个代码扫描工具,称为lint。可以帮助您轻松地识别并纠正问题与结构质量的代码,不必执行应用程序或编写任何测试用例。每个问题检测到该工具报告的一个描述消息和严重性级别,您可以快速地优先考虑的关键改进。您还可以配置一个问题的严重性级别,忽略不相关的问题,或提高的严重程度。这个工具有一个命令行接口,所以您可以很容易地集成到您的自动化测试过程。

Lint 工具可以检查你android工程潜在的bug和优化改进,以确保正确性、安全性、性能、可用性、可访问性和国际性。您可以从命令行运行lint,或eclipse中运行lint。

(二)运行方式

(三)常见类型:

1. Correctness:Messeges

(1)字符串国际化不完全

(2)国际化的字符串,在默认位置(default locale),没有定义

2.Correctness

(1)Xml中view的id重名

(2)代码中使用的某些API高于Manifest中的Min SDK

(3)字符串国际化中,同一名字的的String-Array对应的item值不相同 (4)Activity没有注册到Manifest

(5)使用已经废弃的api

(6)避免使用px,使用dp

(7)添加不需要的权限

3.Performance

(1) 避免在绘制或者解析布局(draw/layout)时,分配对象。eg,Ondraw()中实例化Paint().

(2)Layout中无用的参数。

(3)可优化的布局:如一个线性布局(一个Imageview和一个TextView),可被TextView和一个Compound Drawable代替。

(4)可优化的代码:如SparseArray可代替一个Interger2Object的Hashmap

(5)优化layout,比如如果子view都是wrap_content,则设置android:baselineAligned为false,则When set to false, prevents the layout from aligning its children's baselines.

(6)使用FloatMath代替Math,执行sin()和ceil(),以避免float的两次转换。

(7)Nested weight (内外均有weight)将拖累执行效果

(8)未被使用的资源

(9)Overdraw 即指定theme的activity会自己绘制背景,但是布局中会再一次设置背景

(10)View或view的父亲没有用

4.Security

(1)设置setJavascriptEnable将导致脚本攻击漏洞(XSS vulnerabilities)

5.Usability:Icons

(1) 图片尺寸在转换成不同dpi时,存在不能整除的问题,比如2*24px

(2)显示有些base 和browser的资源名不同,但图片内容完全相同。

6.Usability

(1)自定义view缺少默认的构造方法

7.Usability:Typography

(1)特殊字符需用编码代替,如“_”需要用“–”

8.Accessibility

(1)ImageView缺少src内容

(四)忽略Lint

忽略 lint ,在工程中的lint.xml中加入要忽略检查的类型:

eg:

<?xml version="1.0" encoding="UTF-8"?>
<lint>

<issue
id="HardcodedText"
severity="ignore" />

<issue
id="InflateParams"
severity="ignore" />

</lint>

andorid lint的更多相关文章

  1. 必读的 Android 文章

    必读的 Android 文章 掘金官方 关注 2017.06.07 13:58* 字数 25218 阅读 8782评论 2喜欢 218 写给 Android 开发者的混淆使用手册 - Android ...

  2. Android代码分析工具lint学习

    1 lint简介 1.1 概述 lint是随Android SDK自带的一个静态代码分析工具.它用来对Android工程的源文件进行检查,找出在正确性.安全.性能.可使用性.可访问性及国际化等方面可能 ...

  3. Android APK瘦身之Android Studio Lint (代码审查)

    ******** ******** 第一部分: 瘦身内容介绍 ******** ******** 项目新版本的迭代接近尾声, 因为历史累积问题, 导致有很多无效的资源让已经臃肿的APK变得更肿, 因此 ...

  4. Android Lint Checks

    Android Lint Checks Here are the current list of checks that lint performs as of Android Studio 2.3 ...

  5. Andorid实现点击获取验证码倒计时效果

    这篇文章主要介绍了Andorid实现点击获取验证码倒计时效果,这种效果大家经常遇到,想知道如何实现的,请阅读本文   我们在开发中经常用到倒计时的功能,比如发送验证码后,倒计时60s再进行验证码的获取 ...

  6. 第一章 Andorid系统移植与驱动开发概述 - 读书笔记

    Android驱动月考1 第一章 Andorid系统移植与驱动开发概述 - 读书笔记 1.Android系统的架构: (1)Linux内核,Android是基于Linux内核的操作系统,并且开源,所以 ...

  7. Cordova webapp实战开发:(5)如何写一个Andorid下自动更新的插件?

    在 <Cordova webapp实战开发:(4)Android环境搭建>中我们搭建好了开发环境,也给大家布置了调用插件的预习作业,做得如何了呢?今天我们来学一下如何自己从头建立一个And ...

  8. 在Android Stuido中使用Lint

    要运行Lint工具,大家首先需要在Android Studio的“Analyze”菜单中选择“Inspect Code…”.当Android Studio完成了对项目的检测之后,它会在窗口底部显示出分 ...

  9. 项目规范性检测工具Lint

    项目规范性检测工具lint.bat 一.Lint基本概念介绍 Android Lint是SDK Tools 16 (ADT 16)之后才引入的工具,通过它对Android工程源代码进行扫描和检查,可发 ...

随机推荐

  1. CRM 日期类型的一些处理JS

    //当前日期 var now = new Date(); //换算为毫秒数 var now_ms = Date.UTC( now.getFullYear(), now.getMonth(),now.g ...

  2. Sql语句查看表结构

    快速查看表对的就说明,及表字段描述及字段类型 --表描述 SELECT tbs.name 表名,ds.value 描述 FROM sys.extended_properties ds LEFT JOI ...

  3. DestroyWindow函数注意事项

    最近遇到这样一个问题:将一个窗口句柄以参数的形式传递给一个线程,在线程中使用完之后要将窗口销毁,调用DestroyWindow销毁窗口是返回false,GetLastError的结果为5:拒绝访问,而 ...

  4. 慕课网-安卓工程师初养成-6-3 如何使用 Java 中的数组

    来源:http://www.imooc.com/code/1525 Java 中操作数组只需要四个步骤: 1. 声明数组 语法:  或者  其中,数组名可以是任意合法的变量名,如: 2. 分配空间 简 ...

  5. js动态生成input指定My97DatePicker时间问题

    js生成的input指定onclick时间: 以下1.2为错误: onclick="WdatePicker()"; onclick=WdatePicker(); 若指定到windo ...

  6. imp导入oracle的dmp备份数据

    imp system/oracle fromuser=lc0029999 touser=lc0029999 rows=y commit=y buffer=65536 feedback=10000 ig ...

  7. 【转载】大数据量传输时配置WCF的注意事项

    WCF传输数据量的能力受到许多因素的制约,如果程序中出现因需要传输的数据量较大而导致调用WCF服务失败的问题,应注意以下配置: 1.MaxReceivedMessageSize:获取或设置配置了此绑定 ...

  8. Framework7--Test

    <!doctype html> <html> <head> <title>{{title}}</title> <meta charse ...

  9. 精通 Angular JS 第一天——Angular 之禅

    简介 Angular JS是采用JavaScript语言编写的客户端MVC框架,它为业界带了重大的变化,包括对模板化的创新实现,以及数据的双向绑定,这些特性使得它强大而易用.它可以用来帮助开发者编写单 ...

  10. eclipse 使用