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.jar
aslında bir "kamu API" oluşur framework.jar
ve core.jar
içinde yer aldığı system/frameworks/
cihazda. android.jar
Java 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.jar
SDK'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, @hide
açı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.java
gizli 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
. mkstubs
Bir 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. mkstubs
DroidDoc saplama oluşturma işlemiyle hemen hemen aynı şeyi yapar, ancak @hide
ek açıklamaları kullanmaz, SDK eklentinize .defs
hangi 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 mkstubs
aracı. (Ne yazık ki.)