Pass the model as an HIDL component.

Major rework where instead of serializing the model and
passing it in a shared memory, we pass it via HIDL.

The runtime/test code does two run, one goes through the
default CPU path, the other through any available driver.

Note: The code in hardware/../sample was written by Michael Buttler.

Bug: 63905942
Test: Runs both the CPU path and through the sample driver.
Change-Id: Ie3ee975d33056ba299895b13193f4698a690dd04
diff --git a/common/Android.bp b/common/Android.bp
index 8f00067..85aea54 100644
--- a/common/Android.bp
+++ b/common/Android.bp
@@ -14,10 +14,16 @@
  * limitations under the License.
  */
 
+cc_library_headers {
+    name: "libneuralnetworks_common_headers",
+    host_supported: false,
+    export_include_dirs: ["include"],
+}
+
 cc_library_static {
     name: "libneuralnetworks_common",
     defaults: ["neuralnetworks_defaults"],
-    host_supported: true,
+    host_supported: false,
     export_include_dirs: ["include"],
 
     srcs: [
@@ -26,7 +32,18 @@
         "OperationsUtils.cpp",
         "Utils.cpp",
     ],
-
+    shared_libs: [
+        "libbase",
+        "libhidlbase",
+        "libhidltransport",
+        "libhidlmemory",
+        "liblog",
+        "libnativehelper",
+        "libutils",
+        "[email protected]",
+        "[email protected]",
+        "[email protected]",
+    ],
     header_libs: [
         "libneuralnetworks_headers",
     ],