@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;
}
- 1
- 4
不過,我們可以使用反射調用它。
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});
在你添加的API或者變量前面增加javadoc 註釋@hide,但是要注意並不是簡單寫個@hide 或者 /@hide/ 就可以了,這些都是錯誤的javadoc註釋格式。標準的javadoc都是這樣的 /* / 而且對於 format 變量應該加上 { },所以我們應該這樣寫 /* {@hide} /