zoukankan      html  css  js  c++  java
  • andorid lint

    (一)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>

  • 相关阅读:
    ios端浏览器拍照上传到服务器,图片被旋转90度 php 解决方案
    wgs84 转百度经纬度坐标
    vue 编译大量空格警告问题总结 warning: Replace `↹↹` with `&#183;&#183;`
    微信sdk php签名方法整理
    Vue 使用百度地图组件
    php unicode转字符串
    第十篇、微信小程序-view组件
    第九篇、微信小程序-button组件
    第八篇、微信小程序-progress组件
    第七篇、微信小程序-video组件
  • 原文地址:https://www.cnblogs.com/lianghui66/p/5257125.html
Copyright © 2011-2022 走看看