我必须开发一个需要打包并分发给Android开发人员的Android库。它有两个 Java类和资源(图标等)。
我想知道分发这样一个图书馆的最佳方式。众所周知,许多着名的图书馆以不同的格式分发:
我的先决条件:
我的第一个想法是将此库分发为APKLIB(Maven)和AAR(NBS),但后来我意识到不支持ANT。
问题:
感谢您的任何建议!
答案 0 :(得分:2)
APKLIB只应包含源,库和资源,不编译的.class
文件。补充一点,AAR format是“Android库项目的二进制分发版”,必须包含classes.jar
,但没有来源。
编辑但是,有一个技巧可以用于APKLIB包含已编译的类而不是源代码:编译源代码并将其放在APK libs/<library-name>.jar
内而不是bin
目录。然后使用一些虚拟文件替换src
中的所有文件。
您可以为Ant分发已编译的Android库项目作为AAR,但在使用它时必须记住一些事项。 Ant显式查找提取的AAR文件中的src
目录,但没有,Ant在classes.jar
目录中查找bin
,但它位于提取的根目录下AAR文件。您可以通过创建一个空的src
目录并将classes.jar
复制到bin/classes.jar
来解决此问题。这正是我们在检索AAR工件后在常春藤post-retrieve-artifact
步骤中所做的事情。 修改这样做的一个缺点是ant clean
会删除bin/classes.jar
,而你最好使用一个jar
打包的APKLIB作为如上所述的libs
目录。
APKLIB和AAR都不应该带有编译的R
类,它们都带有res
目录中的原始资源。此外,AAR必须包含列出所有资源的R.txt
文件(由aapt --output-text-symbols
输出)。