CompilerDeviceProperties are added to the sdk impl library

java_sdk_library now accepts properties in CompilerDeviceProperties,
such as dex_preopt.profile. The properties are passed to the impl
library which is the device-specific sub-component of a
java_sdk_library.

Bug: 77575606
Test: m -j
Change-Id: I7303068bb62ca860352db306a5462fa4453ee80f
diff --git a/java/sdk_library.go b/java/sdk_library.go
index 956edce..67c052f 100644
--- a/java/sdk_library.go
+++ b/java/sdk_library.go
@@ -113,7 +113,8 @@
 	android.ModuleBase
 	android.DefaultableModuleBase
 
-	properties sdkLibraryProperties
+	properties       sdkLibraryProperties
+	deviceProperties CompilerDeviceProperties
 
 	publicApiStubsPath android.Paths
 	systemApiStubsPath android.Paths
@@ -405,7 +406,7 @@
 		props.Product_specific = proptools.BoolPtr(true)
 	}
 
-	mctx.CreateModule(android.ModuleFactoryAdaptor(LibraryFactory(true)), &props)
+	mctx.CreateModule(android.ModuleFactoryAdaptor(LibraryFactory(true)), &props, &module.deviceProperties)
 }
 
 // Creates the xml file that publicizes the runtime library
@@ -523,6 +524,7 @@
 func sdkLibraryFactory() android.Module {
 	module := &sdkLibrary{}
 	module.AddProperties(&module.properties)
+	module.AddProperties(&module.deviceProperties)
 	android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibCommon)
 	android.InitDefaultableModule(module)
 	return module