[译]Android注解--@hide

来源:互联网 发布:九堡做淘宝的在哪 编辑:程序博客网 时间:2024/06/05 14:45

原文链接:http://stackoverflow.com/questions/17035271/what-does-hide-mean-in-the-android-source-code

@hide

当对包,类,方法和域使用时,@hide从文档中删除相关节点和所有子节点。

Android有两种不能通过SDK访问的API。
第一种是在com.android.internal包中的类。 第二种API类型是标记有@hide javadoc属性的类和方法的集合。

隐藏方法仍可以通过反射访问。@hide属性只是javadoc的一部分(droiddoc也是),所以@hide只是简单将方法/类/字段从API文档中排除。

例如,ActivityManager.java中的checkUidPermission标记为@hide:

/** @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});
0 0
原创粉丝点击