Android註解--@hide

@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} /
發佈了99 篇原創文章 · 獲贊 14 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章