在Android库中使用Kotlin作为AAR分发

ato*_*tok 13 android kotlin aar

甚至可以使用Kotlin编写一个库吗?

我看到的问题是,这将取决于specyfic版本kotlin-stdlibkotlin-runtime并迫使图书馆的用户使用相同的版本.

我正在考虑使用jarjar重新包装那些但是那么,如何将它们包括在胖子型分发中?在解压缩的内部我看到/libs目录 - 有没有办法使用它?

Dav*_*son 6

根据评论,有几个.aar可用的库是用 Kotlin 编写的,例如MapMe

事实上,这个 GitHub 存储库中有一个此类库的精选列表

您可以通过检查build.gradle相同的内容来看到这些确实包含对 的依赖kotlin-stdlib

这不是轻量级依赖:.jar大小约为 1MB。如果你创建一个空白项目,编译它.apk,然后将它上传到方法计数站点,它涉及6086方法。

但是,如果消费项目已经使用 Kotlin,他们将承担额外类的负担。由于它们将明确包含kotlin-stdlib为依赖项,build.gradle因此可能会强制将库中的依赖项解析为它们的版本。这不太可能导致stdlib.

即使消费者没有在他们的项目中使用 Kotlin,积极使用 Proguard 也可以消除未使用的方法。该官方网站科特林解释说

占用空间:Kotlin 有一个非常紧凑的运行时库,可以通过使用 ProGuard 进一步减少。在实际应用中,Kotlin 运行时只添加了几百个方法,并且 .apk 文件的大小不到 100K。

第二个声明的来源是Medium 上一篇博客文章,所以你的里程可能会有所不同。