Bununla ilgili biraz araştırma yaptım ve sonucum basit: Bu, epey bir çalışma olmadan yapılamaz. Bulduğum şeyle ilgili ayrıntılar için bu cevabın geri kalanını okuyun.
android.jaraslında bir "kamu API" oluşur framework.jarve core.jariçinde yer aldığı system/frameworks/cihazda. android.jarJava kitaplığı başlığı olarak adlandıracağım türden bir tür, gerçek bayt kodundaki tüm uygulamalar sadece bir throw new RuntimeException("stub");, bu size karşı geliştirme yapmanıza izin veriyor android.jar(örneğin Eclipse'de), ancak yürütme bir aygıt veya emülatörde gerçekleştirilmelidir.
Android SDK'nın genel API'si , javadoc ek açıklamasının önüne geçmeyen sınıflar / yöntemler / alanlar tarafından tanımlanır @{hide}. Yani ek açıklamalı olmayan her şey SDK'ya dahildir.
android.jar, içinde bulunan DroidDocout/target/common/obj/JAVA_LIBRARIES/android_stubs_current_intermediates aracı tarafından oluşturulduğu yerde bulunan kaynaklardan oluşturulmuştur build/tools/droiddoc.
DroidDoc , gerçek Android SDK belgelerini oluşturan araçtır (muhtemelen javadoc'tan uyarlanmıştır veya javadoc kullanılarak). Bir yan etki olarak ve muhtemelen tüm javadoc'u zaten ayrıştırdığı için, daha sonra android.jarSDK'da dağıtılan android saplamalarını da derleyerek ortaya çıkarır .
Bu nedenle, gizli olan şeyleri dahil etmek için, yalnızca belirli parçaları dahil etmek istiyorsanız, @hideaçıklamayı kaldırıp SDK'yı yeniden oluşturabilirsiniz.
Ancak tüm gizli parçaları dahil etmek isterseniz işler çok daha karmaşık hale gelir. Sen değiştirebilir DroidDoc (ilgili kaynak olduğu build/tools/droiddoc/src/Stubs.javagizli olarak öyle ki hiçbir şey tespit edilirse). Bu oldukça önemsiz ve bunu denedim, ancak daha sonra oluşturulan saplamalar hiç derlenmiyor.
Şimdiye kadarki sonucum, bunun mümkün olmadığıdır. DroidDoc'un gizli açıklamaları algılayan bölümünü kaldırırsanız oluşturulan saplamalar derlenemez ve doğru bir şekilde derlemek için epeyce çalışma gerektirir.
Bu yüzden sorularınıza cevabım şu: Hayır, çok çalışmadan bu yapılamaz. Afedersiniz.
Araçla ilgili bir yan not mkstubs. mkstubsBir SDK eklentisi oluşturduğunuzda kullanılır , yani satıcılardan Android SDK yöneticisinde bulabileceğiniz eklentiler, örneğin Samsung, Samsung telefonlarına özgü şeyler için size ek bir API sağlar. mkstubsDroidDoc saplama oluşturma işlemiyle hemen hemen aynı şeyi yapar, ancak @hideek açıklamaları kullanmaz, SDK eklentinize .defshangi paketleri / sınıfları / alanları dahil edeceğinizi veya hariç tutacağınızı açıklayan bir dosya kullanır .
Ancak bu Android SDK oluşturma sürece, sorunun bütün alakasız değil kullanmak mkstubsaracı. (Ne yazık ki.)