在Android源代码中的含义是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (64)

对于Activity源代码我的方法如下:

/**
 * @hide
 */
public final boolean isResumed() {
    return mResumed;
}

提问于
用户回答回答于

Android有两种不能通过SDK访问的API。

例如,ActivityManager.java中的checkUidPermission方法如下:

/** @hide */
public static int checkUidPermission(String permission, int uid) {
    try {
        return AppGlobals.getPackageManager()
                .checkUidPermission(permission, uid);
    } catch (RemoteException e) {
        // Should never happen, but if it does... deny!
        Slog.e(TAG, "PackageManager is dead?!?", e);
    }
    return PackageManager.PERMISSION_DENIED;
}

我们还可以这样来调用:

Class c;
c = Class.forName("android.app.ActivityManager");
Method m = c.getMethod("checkUidPermission", new Class[] {String.class, int.class});
Object o = m.invoke(null, new Object[]{"android.permission.READ_CONTACTS", 10010});
用户回答回答于

你可以尝试下这样的方式:

  1. 用于那些因各种原因需要显示但属于已发布API的内容。当从源代码自动提取API时,它们不会包含在文档中。
  2. 你是对的,你不能重写它。这是正常的,这是通过设计,因为它被标记为final。你应该可以使用它,尽管编辑可能无法向您展示它作为它使用的任何智能感知的选项之一,因为它已标记,你应注意下面的第3点。
  3. 你应该不是,因为它不是API的一部分,每当他们希望开发人员可以删除它使用它。他们甚至会在他们的权利范围内,如果他们痛苦地倾向于将其替换为一种能够阻止其运行的设备的功能。

扫码关注云+社区