如何导出AAR库及其文档?

我想知道,为什么我的图书馆一旦build成AAR格式后总是丢失文档。 另外,Android Studio缩小了代码,也就是说,之前构build的代码与内置AAR格式的代码总是不一样的,而不是原始代码。 我希望我的图书馆有自己的文档,并有原始的代码。 你可以看到下面的不同:

build成之前

之前

内置AAR格式

后

文档在哪里? 另外,你会注意到整个代码真的缩小了,而且不一样。

那么,如何在不缩水代码的情况下将AAR库与其文档一起导出呢?

  • 如何为Android兼容包安装javadoc?
  • 当内部类依赖于R.java时,Gradle在Android Javadocs中排除R.java
  • 如何生成链接到javadoc中的Android类的参考?
  • 为我的Android项目生成一个Javadoc
  • javadoc中的参考资源
  • Gradle,Javadoc和Android文档
  • 如何在javadoc中生成android Classes引用的链接?
  • Android Gradle javadoc注释不存在
  • 代码“缩小”,因为一旦创build了AAR ,原始源代码就不包含在AAR中 。 这只是Java字节码。

    然后,当你在一个应用程序中使用你的AAR库。 源代码是从字节代码反向工程 。 原来的variables名是不可用的,由于字节码编译器的优化以及其他原因,可能会有一些编码风格差异。 当然,这些注释并不包含在字节码中,因为它是用于计算机的,注释是针对人的。

    所以当使用AAR库的时候,如果你不想在debugging时看到原始的源码,那么你需要把它作为一个单独的源码JAR提供给AAR,并且可能告诉Android Studio使用源码JAR它自动。

    我已经能够自动化源JAR创build,作为将生成的AAR / JAR“上传”到本地Maven存储库的过程的一部分。 我不知道你有什么样的构build系统,所以我不会详细介绍。

    无论如何,你可以添加到你的模块的build.gradle:

     task sourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.srcDirs } 

    然后,只要想要创build/更新源JAR,就需要分别运行它:

    Gradle – > Tasks – > Other – > sourcesJar

    可能还有一些方法可以将任务自动化为assembleRelease任务的一部分,但我对Gradle还不是很熟悉。

    源JAR将出现在… \ MyLibrary \ app \ build \ libs \ path中。

    我同意@MarkusKauppinen。

    构build源代码jar之后的主要问题是你不能使用这个jar作为你的依赖关系。 这只是一个不能用于编写代码的源代码,即不能导入任何东西,因为jar包含*.java文件而不是*.class文件。 那么,请执行以下操作:

    步骤#1为您的图书馆build立一个AAR格式。 通常位于[project]/[library-module]/build/outputs/aar/library-release.aar

    步骤#2将AAR文件添加为模块。 转到文件>新build>新build模块…>导入.JAR / .AAR包>下一步。

    在这里输入图像说明

    然后,findAAR文件并单击完成。

    在这里输入图像说明

    步骤#3点击这个图标进入项目结构 图标项目结构 ,并将我们刚刚创build的模块添加到应用程序的依赖项中。

    在这里输入图像说明

    步骤#4将@ MarkusKauppinen的gradle任务添加到库模块的build.gradle ,并将项目与gradle同步。

    步骤#5转到Android Studio的右窗格>点击Gradle>刷新gradle任务,点击这个图标 图标刷新gradle任务

    步骤#6find并运行(通过双击) sourcesJar:library-module > Tasks > other

    来源Jar任务

    步骤#7任务完成后,你会发现源代码

    library-module\build\libs\..-sources.jar

    步骤8将至less一个类导入到应用程序的模块中,例如在MainActivity 。 然后,按住Ctrl键并单击该类。 点击Choose sources然后浏览第7步中提到的源代码jar文件。

    浏览jar源码

    最后,你可以看到它的文档的源代码。