# 手Y Android端 代码检阅

## Android Lint

**Android Lint** 是在 Android Studio 中集成的一套静态代码分析工具，它可以帮助我们检查项目中存在的问题，让我们更有规范性地开发。通过 **Lint** 的检查规则，我们可以更有预见性地发现问题，更好地统一庞大的团队的技术选型，更有指向性地列出怎样地编码才是适合我们的项目。

**Lint** 可以在我们编写代码的过程中指出哪些方法使用是错误的，比如：

![手Y对 NavigationUtils 使用作出限制](https://2331209921-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LEOQO6iY6t2frl2HXkS%2F-LEOac4WqZR56lFr8V5A%2F-LEOccBL4rxqejcHjl2v%2FNavigationUtil.jpg?alt=media\&token=3e1c28fa-a1fc-4d03-b506-9ca88ce1825c)

我们希望统一整个工程中千奇百怪的页面跳转方式，因此会对一些废弃的旧方法进行错误级别的提醒，并给出期望的使用方法。在Java文件中我们可以通过 `Quick Fix` 的快捷键快速修改成规则引导的代码。更多关于 `Quick Fix` 的信息可以[看这里](https://yymobile.gitbook.io/inspection/customrule/lintfix)。

我们会尝试通过多维度的方式保证静态代码扫描的有效性。在本地编译，构建系统编译等这些节点会插入自定义静态扫描的任务，针对版本控制工具提供的有修改的文件列表，进行增量扫描，并在发现有严重级别为 `Error`的 **Issue** 时进行阻断。更多关于 **Issue** 的信息可以[看这里](https://yymobile.gitbook.io/inspection/issue)。

## 检阅报告

在完成代码检阅后，我们会收到 xml 和 html 两种格式的结果报告。然后可以根据报告的内容对代码进行修改。报告会把根据 **Issue** 进行模块分类，需要对右下角标明为 `Error` 级别的问题进行修改。比如：

![级别为 Error 的报告](https://2331209921-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LEOQO6iY6t2frl2HXkS%2F-LEOf1-y6VImmX1FTCLA%2F-LEOh4gTMrxlGEcf1_sT%2FhtmlerrorReport.jpg?alt=media\&token=fc189ba4-5b48-4845-ac42-853c7ad183e5)

同时报告中也会有严重级别为 `Information` 的 **Issue** 。这些 **Issue** 并不需要修改，只是作为一种补充信息，希望开发人员大概知道有这么回事就可以了。比如：

![级别为 Information 的报告](https://2331209921-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LEOQO6iY6t2frl2HXkS%2F-LEOf1-y6VImmX1FTCLA%2F-LEOj5FP-sT5F1y_dX7d%2FreportInfoIssue.jpg?alt=media\&token=7170bc6e-cf82-43db-9ad4-288b29a5ac75)

## 抑制扫描

静态扫描规则有一定的局限性。如果认为提示不合适，可以通过注解的方式限制报告。比如：

![抑制ID为"showToast"的Issue](https://2331209921-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LEOQO6iY6t2frl2HXkS%2F-LEOf1-y6VImmX1FTCLA%2F-LEOlD_bdgSWS2L8pGPW%2Fsuppress.jpg?alt=media\&token=ada81ccf-90be-4cc8-9f02-4fe3a355bf8c)

还有更多的抑制方式：

![ability to suppress issues](https://2331209921-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LEOQO6iY6t2frl2HXkS%2F-LEPIQ3f0bPsJ34cXY20%2F-LEPKqj6nJbyGonMpbMK%2F1528376539374.jpg?alt=media\&token=31b866cd-69e0-4446-a3ef-58f8cfde4029)

{% hint style="info" %}
对于手Y的自定义规则，如果你发现任何问题，请一定要告知我们。
{% endhint %}
