Add native lib for the android display backend

It's not used by crosvm yet. And there are many TODOs left.

* Rename to libandroid_display_backend.so
* Use binderRPC over UDS
* Don't copy frames (b/331900473)
* Write in Rust

Bug: 325929966
Test: m
Change-Id: Ib4e5589d6200c5758a06e95fb5103e70b837bdae
diff --git a/libs/android_display_backend/Android.bp b/libs/android_display_backend/Android.bp
new file mode 100644
index 0000000..f818951
--- /dev/null
+++ b/libs/android_display_backend/Android.bp
@@ -0,0 +1,54 @@
+aidl_interface {
+    name: "libcrosvm_android_display_service",
+    srcs: [
+        "aidl/android/crosvm/ICrosvmAndroidDisplayService.aidl",
+    ],
+    include_dirs: [
+        "frameworks/native/aidl/gui",
+    ],
+    local_include_dir: "aidl",
+    unstable: true,
+    backend: {
+        java: {
+            enabled: true,
+        },
+        cpp: {
+            enabled: false,
+        },
+        rust: {
+            enabled: false,
+        },
+        ndk: {
+            enabled: true,
+            // To use Surface
+            additional_shared_libraries: [
+                "libnativewindow",
+            ],
+            apex_available: [
+                "//apex_available:platform",
+                "com.android.virt",
+            ],
+        },
+    },
+}
+
+cc_library_static {
+    name: "libcrosvm_android_display_client",
+    srcs: [
+        "crosvm_android_display_client.cpp",
+    ],
+    stl: "libc++_static",
+    whole_static_libs: [
+        "libcrosvm_android_display_service-ndk",
+        "libyuv",
+        "libc++_static",
+    ],
+    shared_libs: [
+        "libbinder_ndk",
+        "libnativewindow",
+    ],
+    apex_available: [
+        "//apex_available:platform",
+        "com.android.virt",
+    ],
+}