甚至可以使用Kotlin编写库吗?
我看到的问题是它将依赖于kotlin-stdlib
和kotlin-runtime
的特定版本,并强制库的用户使用相同的版本。
我考虑使用jarjar
重新包装那些,但是,如何将它们包含在胖子型分发中?在解压缩的内部,我看到/libs
目录 - 有没有办法使用它?
答案 0 :(得分:4)
根据评论,有几个.aar
库可用Kotlin编写,例如MapMe。
您可以通过检查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,因此您的里程可能会有所不同。