Use ashmem memory to transport MediaDescription to other processes

This follows the pattern used by Icon objects (for e.g. Notifications) where contructing the object creates a shared memory Bitmap so updates and transport to other processes doesn't add extra large memory copies. This is important for things like album art which can be rather large (we see 1000x1000 bitmaps occasionally).

Bug: 288241280
Flag: ACONFIG com.android.media.performance.MEDIA_DESCRIPTION_ASHMEM_BITMAP DISABLED
Test: on cheetah with media applications
Change-Id: I6320b000ed4a3785b67c8574aa3ad3b3195ee273
diff --git a/AconfigFlags.bp b/AconfigFlags.bp
index 14658e5..e3714df 100644
--- a/AconfigFlags.bp
+++ b/AconfigFlags.bp
@@ -81,6 +81,7 @@
         "com.android.internal.pm.pkg.component.flags-aconfig-java",
         "com.android.media.flags.bettertogether-aconfig-java",
         "com.android.media.flags.editing-aconfig-java",
+        "com.android.media.flags.performance-aconfig-java",
         "com.android.media.flags.projection-aconfig-java",
         "com.android.net.thread.platform.flags-aconfig-java",
         "com.android.server.flags.services-aconfig-java",
@@ -533,6 +534,21 @@
     defaults: ["framework-minus-apex-aconfig-java-defaults"],
 }
 
+// Media Performance
+aconfig_declarations {
+    name: "com.android.media.flags.performance-aconfig",
+    package: "com.android.media.performance.flags",
+    srcs: [
+        "media/java/android/media/flags/performance.aconfig",
+    ],
+}
+
+java_aconfig_library {
+    name: "com.android.media.flags.performance-aconfig-java",
+    aconfig_declarations: "com.android.media.flags.performance-aconfig",
+    defaults: ["framework-minus-apex-aconfig-java-defaults"],
+}
+
 // Media TV
 aconfig_declarations {
     name: "android.media.tv.flags-aconfig",