我已经交叉编译了android不同架构的本机代码,并在android studio中具有相应的jni包装器类。现在我想把它变成一个图书馆。我有两个问题:
1)我可以jar .so文件和jni文件来制作库吗?(不是。aar,因为我的库只包含纯java和本机代码,没有android相关的东西,如。xml,res等)如果是这样,它的结构应该是什么?
2)如果我不能创建.jar文件,那么我所剩下的就是创建.aar文件。这将包括使用android studio。我能在没有android studio的情况下完成吗?
编辑1:如果我jar文件,那么我不想解压缩。so然后使用它。如果我使用jar文件,然后将它(.jar)作为一个依赖项添加到我的项目中,那么它应该自动将。so放入我的apk中的libs/jni文件夹中,以便jni可以找到它。问题是我该怎么做?(如果可能的话)
幸好找到了办法。As .aar本身是一个简单的zip文件,其结构如下所示。我所做的是"jar"所有的。class文件(在适当的包文件夹内)到classes.jar,创建了一个空文件夹"res",把所有的。so文件在jni文件夹(适当的架构),并做了一个简单的AndroidManifest.xml包含基本标签。然后我将它们放入扩展名为.aar的文件中(如mylib.aar)。我通过将.aar复制到另一个项目的lib文件夹中并在应用程序的build.gradle
(如compile(name:'mylib',ext:'aar')
)中放置依赖项来测试它。