2014-09-08 15 views
5

Pracuję nad SDK i chciałbym użyć adnotacji @hide dla metod/klas, które nie powinny być widoczne dla użytkownika, który używa mojego SDK. (tak jak w Activity implementation - line 3898)Android - jak dodać adnotację @hide w moim projekcie

Próbowałem tylko dodać adnotację @hide, ale zobaczyłem, że nic się nie dzieje. Co należy zrobić, aby użyć adnotacji @hide/lub innego podobnego rozwiązania do enkapsulacji klas/metod mojego wewnętrznego zestawu SDK.

Odpowiedz

5

W aplikacji Android SDK adnotacja @hide jest używana tylko podczas tworzenia wersji stub android.jar. Podczas kompilacji symbole są importowane z tego słoika kodów pośredniczących i dostępne są tylko niewidoczne symbole. W środowisku uruchomieniowym w urządzeniu lub emulatorze symbole znajdują się w bibliotekach platformy i można je zobaczyć na przykład za pomocą odbicia.

Jeśli pakiet SDK składa się tylko z pliku jar lub czegoś podobnego, naprawdę nie ma sposobu na ukrycie w nim symboli.

+13

Co mogę zrobić, jeśli chcę hermetyzować mój pakiet SDK, aby moi użytkownicy nie widzieli wszystkich klas i metod używanych w moim SDK? – galvan

Powiązane problemy