2014-09-08 5 views
5

Ich entwickle SDK, und ich möchte @Hide Annotation für Methoden/Klassen verwenden, die ich nicht für den Benutzer sichtbar sein möchte, der mein SDK verwendet. (wie in Activity implementation - line 3898)Android - wie @hide Annotation in meinem Projekt hinzufügen

Ich versuchte nur @hide Annotation hinzufügen, aber ich sah, dass nichts passiert. Was muss ich tun, um @hide annotation/oder eine andere ähnliche Lösung zum Kapseln der Klassen/Methoden meines internen SDK zu verwenden?

Antwort

5

In Android SDK wird die Annotation @hide nur beim Erstellen der Stub-Version von android.jar verwendet. Zur Kompilierungszeit werden Symbole aus diesem Stub-Jar importiert, und nur nicht verborgene Symbole sind verfügbar. Zur Laufzeit im Gerät oder Emulator sind die Symbole in den Plattformbibliotheken vorhanden und können beispielsweise durch Reflektion sichtbar gemacht werden.

Wenn Ihr SDK nur aus einer JAR-Datei oder etwas ähnlichem besteht, gibt es wirklich keine Möglichkeit, Symbole darin zu verstecken.

+13

Was kann ich tun, wenn ich mein SDK einkapseln möchte, damit meine Benutzer nicht alle Klassen und Methoden sehen, die ich in meinem SDK verwende? – galvan