创建 API 像 Android 那样使用存根方法的 jar?

Create API jar like Android does with stubbed methods?

我正在寻找分发自定义 API 并且知道 类 将在 运行 时间可用。我希望我的 public 和受保护的方法 / 类 包含在我可以分发的 jar 中,但我不想要任何其他源代码,如果该 jars 代码是实际执行

当您尝试直接执行 jar 时,Android 框架 jar 具有的确切行为。

我的问题是如何从源代码创建相同的 jar,而无需手动检查和创建每个存根方法。我希望随着我的 API 的增长而扩展。

一种可能性是编写一个 Java 编译器,该编译器输出带有空方法主体的源代码副本,或者输出一个抛出异常的单个语句的主体工作。然后你可以使用普通的开发工具来编译生成的 类.

我相信您可以为此目的使用 mkstubs 工具:https://github.com/android/platform_development/tree/master/tools/mkstubs

正如@CommonsWare 提到的,AOSP 中的存根是由 javadoc DroidDoc 脚本生成的,请阅读此处:How are .java files in android_stubs_current_intermediates directory generated?