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

时间:2016-12-16 11:50:40

标签: android kotlin aar

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

我看到的问题是它将依赖于kotlin-stdlibkotlin-runtime的特定版本,并强制库的用户使用相同的版本。

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

1 个答案:

答案 0 :(得分:4)

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

确实在this GitHub repo

中列出了这些库的精选列表

您可以通过检查build.gradle来查看这些内容是否包含对kotlin-stdlib的依赖关系。

这不是轻量级依赖:.jar大小约为1MB。如果您创建一个空白项目,请编译.apk,然后将其上传到method count site 6086方法。

但是,如果消费项目已经使用了Kotlin,他们就已经承担了额外课程的负担。由于他们将kotlin-stdlib明确地包含在build.gradle作为依赖关系,因此可能会强制解析库中的依赖关系到他们的版本。这不太可能导致stdlib出现问题。

即使消费者没有在他们的项目中使用Kotlin,积极使用Proguard也可以消除未使用的方法。 official Kotlin website explains

  

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

第二个陈述的来源是blog post on Medium,因此您的里程可能会有所不同。