Android Studio 我们可以在一些AAR中找到的lint.jar和inspector.jar的用途是什么?

holgip5t  于 2022-11-30  发布在  Android
关注(0)|答案(1)|浏览(123)

我们可以在某个AAR的根目录下找到lint.jarinspector.jar文件(例如androidx.work:work-runtime:2.7.0),这两个文件的用途是什么?没有它们,应用程序还能工作吗?

hkmswyz6

hkmswyz61#

"开场白"
这是不太弱的记录,但我尽我所能使它有一些意义。首先,这是一个预期的事情,如Android开发文档中提到的。不幸的是没有解释,所以我们必须使夏洛克。

  • 教育永远不会结束,华生。它是一系列的课程,最后才是最好的。*

阿瑟·柯南·道尔爵士,《他最后的鞠躬》(夏洛克·福尔摩斯,#8)
"犯罪现场"
文件lint.jarinspector.jar位于libs目录 * 之外 ,因此它们不是应用运行时使用的常用补充Java库。而且它们显然不是要包含在APK构建过程中的命名方案类〈 N *〉. jar文件。因此,它们可能不会包含在最终的APK中,而是用于其他目的。
"嫌疑犯"
文件名lint.jar为我们提供了一个线程。
[...]一个代码扫描工具[...],可以帮助你识别和纠正代码结构质量的问题,而无需执行应用程序或编写测试用例。
这里的 * code * 指的是源代码和资源代码(XML文件)。老实说,它非常简洁。无论如何,lint.jar绝对没有理由成为APK的一部分。
"证人"
Xamarin-android Github发布了一个有趣的帖子here,并引用了pull post there。这些帖子的重点是,Xamarin与lint.jar相处不好,结果不得不将其排除在APK构建过程之外,引用了第一个帖子
[...]因为它并不打算包含在应用程序中(IDE仅使用它来提供提示警告)。

[...]jar文件只对IDE重要,不应包含在应用程序的编译类路径或运行时类路径中。
另一篇文章描述了Xamarin补丁,指出
[...]显然,有一个功能可以实现你自己的自定义Lint规则。这些规则被放置在lintiderjar中,Android Studio根据需要运行它们。
这与Android开发文档中的一句话相对应:
使用Android Studio时,只要您构建应用,配置的Lint和IDE检查就会运行。
这似乎也解释了inspector.jar。拆开work-runtime-2.7.0.aar来检查它的inspector.jar,可以找到androidx.work.inspection包的踪迹,但是Android sources没有太大帮助,因为缺少注解。但是可以假设inspector.jar也用于代码检查。
"判决"
文件lint.jar用于自定义Lint规则,因此也用于自定义代码检查过程,用于包含它的特定AAR文件。它可能主要由AAR开发人员自己使用,但也可能提供给用户,以防用户想要自定义AAR,至少是它的res目录。文件inspector.jar很可能用于类似的目的。
无论是lint.jar还是inspector.jar都不会包含在APK中。因此,如果您的计算机用完了最后的千字节,您可以毫无遗憾地将它们从AAR文件中踢出。

相关问题