美文网首页
Android Studio 中自己定义Lint

Android Studio 中自己定义Lint

作者: 百花鱼藤 | 来源:发表于2017-05-15 14:30 被阅读0次

    一.在Android Studio中,新建Module,选择Java Library,起名junte

    二.自定义lint规则需要继承一些特定的类,所以需要在junte的build.gradle中添加依赖:
     

    三.在junte中新建一个LoggerDetector类,用来检测用户代码中是否使用了android.util.Log类,如果有,就报告一个issue,代码如下:

    传入的6个参数意义如下:

    LogUtilsNotUseds: 我们这条lint规则的id,这个id必须是独一无二的。

    You must use our 'LogUtils':对这条lint规则的简短描述。

    Logging should be avoided in production for security and performance reasons. Therefore, we created a LogUtils that wraps all our calls to Logger and disable them for release flavor.:对这条lint规则更详细的解释。

    Category.MESSAGES:类别。

    9:优先级,必须在1到10之间。

    Severity.ERROR:严重程度。其他可用的严重程度还有FATAL、WARNING、INFORMATIONAL、IGNORE。

    Implementation:这是连接Detector与Scope的桥梁,其中Detector的功能是寻找issue,而scope定义了在什么范围内查找issue。在我们的例子中,我们需要在字节码级别分析用户有没有使用android.util.Log。

    四.在junte中新建一个JunteLintRegistry类,它继承自IssueRegistry。这个类用来注册我们自己定义了哪些issue,代码如下:

    五.对于自定义lint生成的jar,我们必须在它的清单文件中指明它的主类,通过配置junte的build.gradle文件来完成:

       由于我们要把上一步生成的jar文件包含到一个aar中,配置如下:

    六.新建一个Android Library项目,命名为junte_aar,用来输出aar:

    在junte_aar的build.gradle的根节点加入以下内容:

    七.在用户app中使用我们的自定义lint,在用户自己的应用程序module中,打开app的build.gradle文件,在dependencies中加入以下依赖:

    这里我们在app的MainActivity中使用了android自带的Log功能:

    在终端中,我们执行./gradlew lint来执行lint任务

    相关文章

      网友评论

          本文标题:Android Studio 中自己定义Lint

          本文链接:https://www.haomeiwen.com/subject/zyncxxtx.html