Я вже дещо розслідував це, і мій висновок такий: це неможливо зробити без певної роботи. Прочитайте решту цієї відповіді, щоб дізнатись більше про те, що я знайшов.
android.jarнасправді складається з "загальнодоступного API" framework.jarі core.jarякий знаходиться system/frameworks/на пристрої. android.jarце свого роду те, що я б назвав заголовком бібліотеки Java, вся реалізація у фактичному байтовому коді є просто a throw new RuntimeException("stub");, це дозволяє будувати проти android.jar(наприклад, в Eclipse), але виконання повинно виконуватися на пристрої чи емуляторі.
Відкритий API Android SDK визначається класами / методами / полями, які не мають префіксу до @{hide}анотації javadoc. Тобто все, що не коментується, включається в SDK.
android.jarпобудований з джерел, розташованих в out/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediatesякому сам генерується інструментом DroidDoc, що знаходиться в build/tools/droiddoc.
DroidDoc - це інструмент (який, можливо, адаптований з javadoc або використовує javadoc), який генерує фактичну документацію Android SDK. Як побічний ефект, і, мабуть, тому, що він вже аналізує весь javadoc, він також викидає заглушки для android, які потім компілюються в ті, android.jarякі розподіляються в SDK.
Отже, щоб включити прихований матеріал, ви могли б, якщо ви хочете включити лише певні частини, просто видалити @hideанотацію та відновити SDK.
Однак якщо ви хочете включити всі приховані частини, все стає набагато складніше. Ви можете змінити DroidDoc (відповідне джерело знаходиться build/tools/droiddoc/src/Stubs.java) таким чином, щоб ніщо не було виявлено як приховане. Це досить тривіально, і я спробував це, однак заглушки, які потім генеруються, взагалі не компілюються.
На сьогоднішній день я роблю висновок, що це просто неможливо. Заглушки, що генеруються, якщо видалити частину DroidDoc, яка виявляє приховані анотації, просто не піддаються компіляції, і для правильної компіляції знадобиться досить багато роботи.
Тож моя відповідь на ваші запитання така: Ні, цього не можна зробити, не зробивши багато роботи. Вибачте.
Побічна примітка про mkstubsінструмент. mkstubsвикористовуються під час створення аддону SDK , тобто доповнення, які ви можете знайти в менеджері SDK для Android від постачальників, наприклад, Samsung надає вам додатковий API для речей, специфічних для телефонів Samsung. mkstubsробить майже те саме, що процес генерації заглушок DroidDoc, однак він не використовує @hideанотації, він використовує .defsфайл, що описує, які пакети / класи / поля включати або виключати з вашого аддону SDK.
Однак це все не має відношення до питання, оскільки збірка Android SDK не використовує mkstubsінструмент. (На жаль.)