Support shmem-less ABI for the producer port

This CL introduces an "emulation mode" for the shared memory ABI for
sending trace data from producers to the service without cross-process
shared memory:

1. When the producer IPC client sees a non-unix socket name like TCP or
vsock, it enables the "emulation" mode for the socket ABI to serialize
chunk content (header and payload) into the CommitDataRequest proto
message. Then the chunk is released as free on the producer side.

2. When the service sees serialized data from the CommitDataRequest, it
constructs the chunk by adopting the serialized chunk in the proto
message. The chunk is discarded instead of being released to the shared
memory buffer.

Bug: 284258446
Change-Id: I65f96b4f00553c75b5f8af8c955427c681d10476
diff --git a/Android.bp b/Android.bp
index af3bf28..1d880c5 100644
--- a/Android.bp
+++ b/Android.bp
@@ -11557,6 +11557,7 @@
     name: "perfetto_src_tracing_core_core",
     srcs: [
         "src/tracing/core/id_allocator.cc",
+        "src/tracing/core/in_process_shared_memory.cc",
         "src/tracing/core/null_trace_writer.cc",
         "src/tracing/core/shared_memory_abi.cc",
         "src/tracing/core/shared_memory_arbiter_impl.cc",
@@ -11725,7 +11726,6 @@
         "src/tracing/test/fake_packet.cc",
         "src/tracing/test/mock_consumer.cc",
         "src/tracing/test/mock_producer.cc",
-        "src/tracing/test/test_shared_memory.cc",
         "src/tracing/test/traced_value_test_support.cc",
     ],
 }