Lint代码规范记录

背景

最近在用lint做一个代码规范的检测,虽然意义不是特别大,但是也有一定的作用,这里把自己遇到的一些给记录一下,后面会不定时补充:

DisableBaselineAlignment

Set `android:baselineAligned="false"` on this element for better performance

当LinerLayout的子View都是ViewGroup(自定义控件除外)时,Lint认为它的子View已经不需要基准线对齐了,为了不让LinerLayout去做无用的计算对齐的操作,提出了如上警告,修改掉之后就可以提高性能。

DrawAllocation

Avoid object allocations during draw/layout operations (preallocate and reuse instead)

Android自带的lint测试,发现上面这个问题。。。。百度一番发现。。。在ondraw/onlayout中尽量不要用new 对象的操作。。。因为ondraw/onlayout会经常被调用;这样比较耗内存。。。。

DuplicateIncludedIds

It's okay for two independent layouts to use the same ids. However, if layouts are combined with include tags, then the id's need to be unique within any chain of included layouts, or `Activity#findViewById()` can return an unexpected view.

如果是两个独立的布局用同一个ID,是可以的。但是,如果是用include标签把它们联合起来的话,那么id就必须是唯一的。

ExportedContentProvider

Exported content providers can provide access to potentially sensitive data

其实就是说这些内容可以被其他应用访问到,如果这是你想的就标记忽略,否则就去掉:

android:exported="true"

ExportedService

Exported service does not require permission

其实就是说这些内容可以被其他应用访问到,如果这是你想的就标记忽略或者设置访问权限,否则就这只:

android:exported="false"

ExportedReceiver

Exported receiver does not require permission

其实就是说这些内容可以被其他应用访问到,如果这是你想的就标记忽略或者设置访问权限,否则就这只:

android:exported="false"

GetInstance

`Cipher.getInstance` should not be called without setting the encryption mode and padding

密码不应该被称为密码模式,也不需要设置密码模式,因为android的默认模式是欧洲,这是不安全的。
Google了一下貌似说是Android的Bug大家参考一下

Deprecated

`android:singleLine` is deprecated: Use `maxLines="1"` instead

这个东西是说android:singleLine`是一个过时的方法,让你用maxLines="1"来替代这个地方会有坑,有些老手机上是不好用的maxLines="1",所以我们只能选择忽略

ExtraTranslation

The resource string "`network_exception`" has been marked as `translatable="false"`

大概的意思就是你的“network_exception”写了translatable="false"但是你又在其他地方做了多语言,出现这种问题大概的原因就是我们在开发的时候多个人或者多个Module写了相同的资源,导致了冲突,建议统一维护和修改就可以了。

InvalidPackage

Invalid package reference in library; not included in Android: `java.time`. Referenced from `com.alibaba.fastjson.parser.deserializer.Jdk8DateCodec`.

拿阿里的某一个Jar包为例,大概的意思就是你使用了Android中不支持的API

LongLogTag

Log tags are only allowed to be at most 23 tag characters long.

后面的日志长度不能超过23个字符,你可以修改自己的日志,也可以直接关闭这一个lint检测。

NewApi

这个的意思就是你使用的方法有API限制,需要做API判断,如果你确认自己已经做了判断,那就直接标记忽略就行了。

RestrictedApi

FragmentManager.getFragments can only be called from within the same library group (groupId=com.android.support)

拿FragmentManager.getFragments举例,大概的意思是说这个方法在support包里面如果support包升级了可能会变化,这种我们选择不改,当我们升级support包的时候监控一下就可以了。

WrongConstant

传递参数的类型不对。

ResourceAsColor

需要传递一个color值,不能直接用color的ID。

ButtonStyle

Buttons in button bars should be borderless; use `style="?android:attr/buttonBarButtonStyle"` (and `?android:attr/buttonBarStyle` on the parent)

两个 Buttons 放在一个布局里会被判断为按钮栏,需要添加样式取消它的边框。个人感觉如果我们自己设置了背景什么的就不需要处理了,否则样式可能会变

HardcodedText

在代码中直接写了文字,我们应该写到string文件里面,这个我们一定要养成良好的习惯。

InflateParams

Avoid passing `null` as the view root (needed to resolve layout parameters on the inflated layout's root element)

具体的说明可以参考这篇文章LayoutInflater使用的正确姿势

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,478评论 25 707
  • java 接口的意义-百度 规范、扩展、回调 抽象类的意义-乐视 为其子类提供一个公共的类型封装子类中得重复内容定...
    交流电1582阅读 2,209评论 0 11
  • 越来越觉得,人们有些误解了“时间”。 误解1:因为以前怎样,那以后就得怎样。 这是个思维逻辑问题。时间是前后顺序,...
    鹤一张阅读 230评论 0 0
  • 感恩同事的关心,虽然帮不到我什么,却让我知道了自己内心想要的是什么! 感恩自己的成长,能够平静地看待非议和误解! ...
    我不叫许仲斌阅读 183评论 0 3
  • 你相信吗?有时候我们尤其容易被某种熟识东西的猝不及防地打动,比如飘进鼻子的一缕菜香。 路过绳金塔的时候被一阵清新熟...
    不语先生阅读 556评论 0 0