Android Studio lint工具所提示的需要注意的内容简要记录

Posted 潇潇微雨up

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android Studio lint工具所提示的需要注意的内容简要记录相关的知识,希望对你有一定的参考价值。

Android lint部分:

Duplicated icons under different names 相同的icon 用了不同的名字

FrameLayout can be replaced with tag FrameLayout 可以被替换成 merge标签

Handler reference leaks handler的内存溢出问题 替换成静态 + 弱引用

Hardcoded reference to /sdcard 硬编码问题 尽量不使用硬编码(固定的字符串即为硬编码)

Icon densities validation 图标最好覆盖各个密度 比如mdpi hdpi xhdpi等。。。

Image without contentDescription 没设置图片的 内容属性 主要用于有障碍的人士使用

Inefficient layout weight 低效的 weight属性 最好在设置weight后 设置 width或者height为 0

Layout Inflation without a Parent 布局需要一个父布局

Missing allowBackup attribute Application中 缺少 allowBackup属性 设置 这个即可android:fullBackupContent’ to ‘true’ or ‘false’

Missing baselineAligned attribute 缺少基线属性

Missing commit() on SharedPreference editor 缺少commit 在不关心是否成功提交时 使用apply效率高于commit

Missing density folder 缺少 一些密度的文件夹 该提示是由于 少了某个密度的 drawable-xxdip文件夹

Missing inputType or hint EditText 缺少 输入类型和提示文字

Nested layout weights 嵌套的布局 都使用了 weight属性 这时最好去掉子布局不必要的weight 提高性能

Node can be replaced by a TextView with compound drawables 使用 TextView 自带的 drawable属性 代替 TextView+ImageView

Obsolete layout params 过时的 无用的布局参数 比如 LinearLayout中 出现 相对布局中的布局参数

Overdraw: Painting regions more than once 过度绘制 一般是由于 设置了多个background的情况

Overlapping items in RelativeLayout 可能重叠的子布局 在RelativeLayout中 比如设置了wrap_content 可能扩展覆盖其他布局

Padding and margin symmetry padding 和 margin 需要相互对称

Unused resources 没用过的资源 找到后删掉即可

Useless parent layout 无用的父布局

Using .gif format for bitmaps is discouraged 用gif 图片是被阻止的 。。。 但是有时候还是得用。。

Using dp instead of sp for text sizes 用sp代替 dp

Using left/right instead of start/end attributes 使用 start和end 代替 left right

class structure部分:

Field Can Be Local 字段能被设置成 局部变量 缩小其生命周期

Parameter can be converted to a local variable 类似于上面这个 参数可以被转化为局部变量

code maturity issues部分 – 代码成熟度问题

一般是一些已经过时的方法 需要替换

code style issues: 代码风格问题

if statement may be replaced with && or || expression if 可以被替换成 && 或 || 简化代码

Unnecessary Interface Modifier 不必要的接口修改 比如 接口中的方法 默认为public 不需要填写也可以

control flow issues: 控制流问题

redundant if statement 冗余的if语句 说明 if语句可以简化 比如

if(fun())
    return true;
else
    return false;

简化为 

return fun();

Unnecessary Return 不必要的 return 比如 返回值为 void 之后return了

Data flow issues : 数据流问题

Boolean MethodIs Always Inverted 没懂。。。
redundant local variable 冗余的局部变量 一般是 没用到的

declaration redundancy: 声明冗余

Access Static Via Instance 通过实例 访问静态成员。。。

actual method parameter is the same constant 实参是个常量 感觉没什么影响、、

declaration access can be weaker 声明访问权限可能较弱 也就是一些可以设置成 private的设置了 protected或者public 类似的情况

declaration can have final modifier 可以使用 final修饰 可提高效率

empty method 空方法。。。

method can be void 方法可以返回 void 一般是 返回值没有被用到的情况 会提示这个

method returns the same value 方法返回相同的值 也就是 无论如何方法都返回某个值 需要优化

redundant throws clause 冗余的异常抛出 一般是 既在方法里 抛出了 也在 方法上 抛出了。。。

unused declaration 无用的声明 一般是方法或属性声明了 但是没有使用 会有这个提示

unused method parameters 无用的方法参数

Error handling: 错误处理

empty catch block 空的 异常捕获 会提示

import 无用的导入

java language level migration aids:

explicit type can be replaced with <> 显示类型可以替换成 <>

for loop replaceable with foreach 把for 替换成 foreach

javaDoc issues:

关于 注释 文档的。。。。

probable bugs:可能的bug

一些 可能产生bug的代码

properties files 配置文件的一些问题

比如 配置文件定义的一些属性没有使用到

Spelling 拼写的一些问题

verbose or redundant code constructs 冗长冗余的代码结构

xml文件的一些问题

类似于 java中的

以上是关于Android Studio lint工具所提示的需要注意的内容简要记录的主要内容,如果未能解决你的问题,请参考以下文章

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

Android Lint——内嵌于Android Studio的代码优化工具

Android Studio的签名打包后报错提示:Lint found fatal errors while assembling a release target

2.0Android Studio编写你的应用

找不到 com.android.tools.lint:lint-gradle Android Studio 3

无法在Android Studio 3.1上生成签名的APK