Android SDK 加载项已隐藏 class

Android SDK Add-On hidden class

我需要通过 Android Lollipop 中的 SDK 插件导出隐藏的 class。我能够导出非隐藏 classes。在尝试 "usual way" 失败后,我认为问题是由于 @hide 标记引起的。所以我决定尝试 "dirty" 方法来摆脱负责隐藏 class 的 @hide 关键字(即使这显然会破坏与标准 API 的兼容性)。删除@hide 关键字并在Android.mk 中使用#include(BUILD_JAVA_LIBRARY) 构建class 后,Java 库Jar 文件为空。所以我有两个问题:

  1. 为什么DEX文件包含class但Jar文件还是空的?
  2. 如何在不删除 @hide 关键字的情况下获得相同的结果?

谢谢。

注意:我已将这些资源用作 references/documentation:http://elinux.org/images/5/5c/Build_and_Distributing_SDK_Add-Ons.pdf https://newcircle.com/s/post/1571/exploring_sdk_add_ons_for_android_devices_larry_schiefer_video

我自己找到了解决方案,并没有真正涉及到@hide标签。所以我恢复了@hide 标签。 @hide 标签只有在构建标准 SDK 时才有意义。然后,我将包限定 class 名称“+package_name.class_name”替换为“+package_name.*”之类的内容以导出到附加组件 defs 文件中。清理和重建后,附加组件已导出所有 classes.