Use Metalava based android.jar for SDK

Define LOCAL_DROIDDOC_ANNOTATIONS_ZIP to export zip file.

Test: m out/target/common/obj/PACKAGING/metalava-api-stubs-docs_annotations.zip
Bug: b/78245848
Change-Id: I66ca2a50adc095cc8a8a1a10620427a91480a9bc
diff --git a/java/androidmk.go b/java/androidmk.go
index 5740eca..c6ecfbc 100644
--- a/java/androidmk.go
+++ b/java/androidmk.go
@@ -304,6 +304,9 @@
 				if ddoc.Javadoc.stubsSrcJar != nil {
 					fmt.Fprintln(w, "LOCAL_DROIDDOC_STUBS_SRCJAR := ", ddoc.Javadoc.stubsSrcJar.String())
 				}
+				if ddoc.annotationsZip != nil {
+					fmt.Fprintln(w, "LOCAL_DROIDDOC_ANNOTATIONS_ZIP := ", ddoc.annotationsZip.String())
+				}
 				if ddoc.checkCurrentApiTimestamp != nil {
 					fmt.Fprintln(w, ".PHONY:", ddoc.Name()+"-check-current-api")
 					fmt.Fprintln(w, ddoc.Name()+"-check-current-api:",
diff --git a/java/droiddoc.go b/java/droiddoc.go
index 53c75b5..2e821ea 100644
--- a/java/droiddoc.go
+++ b/java/droiddoc.go
@@ -302,6 +302,8 @@
 	checkCurrentApiTimestamp      android.WritablePath
 	updateCurrentApiTimestamp     android.WritablePath
 	checkLastReleasedApiTimestamp android.WritablePath
+
+	annotationsZip android.WritablePath
 }
 
 func InitDroiddocModule(module android.DefaultableModule, hod android.HostOrDeviceSupported) {
@@ -965,8 +967,8 @@
 			}
 			opts += " --include-annotations --migrate-nullness"
 
-			annotationsZip := android.PathForModuleOut(ctx, ctx.ModuleName()+"_annotations.zip")
-			implicitOutputs = append(implicitOutputs, annotationsZip)
+			d.annotationsZip = android.PathForModuleOut(ctx, ctx.ModuleName()+"_annotations.zip")
+			implicitOutputs = append(implicitOutputs, d.annotationsZip)
 
 			if String(d.properties.Metalava_merge_annotations_dir) == "" {
 				ctx.PropertyErrorf("metalava_merge_annotations",
@@ -975,7 +977,7 @@
 
 			mergeAnnotationsDir := android.PathForSource(ctx, String(d.properties.Metalava_merge_annotations_dir))
 
-			opts += " --extract-annotations " + annotationsZip.String() + " --merge-annotations " + mergeAnnotationsDir.String()
+			opts += " --extract-annotations " + d.annotationsZip.String() + " --merge-annotations " + mergeAnnotationsDir.String()
 			// TODO(tnorbye): find owners to fix these warnings when annotation was enabled.
 			opts += " --hide HiddenTypedefConstant --hide SuperfluousPrefix --hide AnnotationExtraction"
 		}