「スタブ」は、javadocツールを実行して生成されたフレームワークAPIスタブです。
Androidでスタブファイルについて話す場合、ほとんどの場合、aidlツールによって生成されたJavaファイルを意味します。例えば特にHow to generate stub in android? - Stack Overflow
を参照して、Androidのビルドシステムは、実際のJavadocを呼び出してドキュメントを生成するために使用することができdroiddoc.mk
と呼ばれるメイクファイル、JavaのAPIスタブとAPIのxmlファイルが含まれています。
droiddoc.mk
は、build/core
である。 build/core/config.mk
にはdroiddoc.mk
を含めるのを容易にするためにBUILD_DROIDDOC
という名前の変数があります。 droiddoc.mk
で
見て、それはJavadocを呼び出します。
javadoc \
\@$(PRIVATE_SRC_LIST_FILE) \
-J-Xmx1280m \
$(PRIVATE_PROFILING_OPTIONS) \
-quiet \
-doclet com.google.doclava.Doclava \
-docletpath $(PRIVATE_DOCLETPATH) \
-templatedir $(PRIVATE_CUSTOM_TEMPLATE_DIR) \
$(PRIVATE_DROIDDOC_HTML_DIR) \
$(addprefix -bootclasspath ,$(PRIVATE_BOOTCLASSPATH)) \
$(addprefix -classpath ,$(PRIVATE_CLASSPATH)) \
-sourcepath $(PRIVATE_SOURCE_PATH)$(addprefix :,$(PRIVATE_CLASSPATH)) \
-d $(PRIVATE_OUT_DIR) \
$(PRIVATE_CURRENT_BUILD) $(PRIVATE_CURRENT_TIME) \
$(PRIVATE_DROIDDOC_OPTIONS) \
&& touch -f [email protected]
スタブ権については何もありませんか?心配しないで、たとえばframework/base/Android.mk
のため、ドキュメントを生成するinclude $(BUILD_DROIDDOC)
が含まれている、AOSPで
PRIVATE_DROIDDOC_OPTIONS := $(LOCAL_DROIDDOC_OPTIONS)
多くAndroid.mkファイルをPRIVATE_DROIDDOC_OPTIONS
変数があることがわかり、そして
。
LOCAL_DROIDDOC_OPTIONS:=\
$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
-stubs $(TARGET_OUT_COMMON_INTERMEDIATES)/JAVA_LIBRARIES/android_stubs_current_intermediates/src \
-api $(INTERNAL_PLATFORM_API_FILE) \
-nodocs
LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
LOCAL_UNINSTALLABLE_MODULE := true
include $(BUILD_DROIDDOC)
LOCAL_DROIDDOC_OPTIONS
が-stubs
オプションが含まれています:framework/base/Android.mk
では、コードの一部があります。そして、それは最終的にdroiddoc.mkによって使用されるjavadocコマンドに入れられます。
しかし、javadocには-stubs
のようなオプションは含まれていません。キーは、ドックレットを使用してJavadocツールの出力のコンテンツと書式をカスタマイズできることです。 Javadocツールには、標準のドックレットと呼ばれるデフォルトの「ビルトイン」ドックレットがあり、HTML形式のAPIドキュメントを生成します。標準ドックレットを変更またはサブクラス化するか、または独自のドックレットを作成して、HTML、XML、MIF、RTFなどの任意の出力フォーマットを生成できます。
私たちは、カスタマイズされたドックレットを指定する-doclet
オプションを使用することができます。また、droiddoc.mkのjavadocコマンドは-doclet com.google.doclava.Doclava
を使用します。そのドックレットは-stubs
オプションを受け取ります。external/doclava/src/com/google/doclava/Doclava.java
else if (a[0].equals("-stubs")) {
stubsDir = a[1];
} else if (a[0].equals("-stubpackages")) {
stubPackages = new HashSet<String>();
for (String pkg : a[1].split(":")) {
stubPackages.add(pkg);
}
}
下Doclava実装で
ルックそれは-stubsオプションを受け取ります。そして、スタブを処理する方法は次のとおりです。ディレクトリ。
// Stubs
if (stubsDir != null || apiFile != null || proguardFile != null) {
Stubs.writeStubsAndApi(stubsDir, apiFile, proguardFile, stubPackages);
}
そしてStubs.writeStubsAndApi
の実装をトレーススタブファイルの内容は、そのようなもので、なぜ、あなたは見ることができます。
build/tools/droiddoc/test
のテストケースのように、独自のJavaファイルを作成してスタブを生成することもできます。
http://stackoverflow.com/questions/1264530/how-to-generate-stub-in-android?rq=1回答は多少あるかもしれませんが、よく分かりませんが –
私の質問は異なっています。スタブでは、私は特に上記のディレクトリでAndroidのビルドプロセスの一部として生成された.javaファイルを意味します。 –