Add test apex for sdkextensions

Because the tests build for 64-bit but run on 32-bit, this
requires adding a variant of derive_sdk that uses prefer32.

This apex has an SDK level of 45, which is verified in the
test. Also trigger the e2e test on changes to the apex.

Bug: 137191822
Bug: 143937446
Test: atest sdkextensions_e2e_test
Test: m
Change-Id: I88a75b4f438004ed9425e6629666cbbae1ab0882
Merged-In: I88a75b4f438004ed9425e6629666cbbae1ab0882
(cherry picked from commit 0d2e2a076804ac40e78728914e9928c62b76cd99)
diff --git a/derive_sdk/Android.bp b/derive_sdk/Android.bp
index c4e3c29..cf49902 100644
--- a/derive_sdk/Android.bp
+++ b/derive_sdk/Android.bp
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-cc_binary {
-    name: "derive_sdk",
+cc_defaults {
+    name: "derive_sdk-defaults",
     srcs: [
         "derive_sdk.cpp",
         "sdk.proto",
@@ -30,6 +30,24 @@
     ],
 }
 
+cc_binary {
+    name: "derive_sdk",
+    defaults: [ "derive_sdk-defaults" ],
+    apex_available: [ "com.android.sdkext" ],
+    visibility: [ "//frameworks/base/apex/sdkextensions" ]
+}
+
+// Work around testing using a 64-bit test suite on 32-bit test device by
+// using a prefer32 version of derive_sdk in testing.
+cc_binary {
+    name: "derive_sdk_prefer32",
+    defaults: [ "derive_sdk-defaults" ],
+    compile_multilib: "prefer32",
+    stem: "derive_sdk",
+    apex_available: [ "test_com.android.sdkext" ],
+    visibility: [ "//frameworks/base/apex/sdkextensions/testing" ]
+}
+
 prebuilt_etc {
     name: "derive_sdk.rc",
     src: "derive_sdk.rc",