我正在 android 上编写自己的 SDK,并因此创建自己的 jar。 现在,我使用 droiddoc 工具创建 SDK 的文档。
在我的框架文件(.java)中,有很多API我用@hide标记了 现在这是当前状态:
a) 所有标有 @hide 的 API 都隐藏在文档中。
b) 这些标记为隐藏的 API 包含在生成的 jar 文件的类文件中。(我使用 Java 反编译器来检查这一点)。
现在,当我在 eclipse 中包含这个 jar 并在类对象上使用 Ctrl+space 来查找其选项时,我可以看到隐藏的 API 实际上是可见的并且可以在此处访问。
我在这里遗漏了什么吗?我需要在 make 文件中添加任何特殊标志吗?或者这是正常行为?
最佳答案
我发现:
android.jar has all classes from com.android.internal removed, and all classes, enums, fields and methods marked with @hide removed as well
因此带有 @hide 的类不包含在 jar 中 -> 这就是它们在 Eclipse 中无法访问的原因。 此外:
When you launch your application on device it loads framework.jar (roughly this is equivalent of android.jar on the device) which is uncut and has all the internal API classes and all hidden API components.
看看this post和 this answer
希望您找到隐藏事物的替代解决方案
关于android - 即使在 Android 中使用 @hide 注解后,API 也不会被隐藏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14580888/