trace_processor: implement first android mem metric!

We fill the LMK field for now: more metrics will be filled in following
CLs.

Context: go/perfetto-metrics
Bug: 129747127
Change-Id: If3d7de375e16bbfd15a8b19bda05d3162ae30308
diff --git a/Android.bp b/Android.bp
index 0b5991d..515e736 100644
--- a/Android.bp
+++ b/Android.bp
@@ -14,6 +14,20 @@
 //
 // This file is automatically generated by tools/gen_android_bp. Do not edit.
 
+genrule {
+  name: "gen_merged_sql_metrics",
+  srcs: [
+    "src/trace_processor/metrics/android/android_mem.sql",
+  ],
+  cmd: "$(location tools/gen_merged_sql_metrics) --cpp_out=$(out) $(in)",
+  out: [
+    "src/trace_processor/metrics/sql_metrics.h",
+  ],
+  tool_files: [
+    "tools/gen_merged_sql_metrics",
+  ],
+}
+
 // GN target: //:heapprofd
 cc_binary {
   name: "heapprofd",
@@ -1034,6 +1048,76 @@
   ],
 }
 
+// GN target: //protos/perfetto/metrics/android:zero_gen
+genrule {
+  name: "perfetto_protos_perfetto_metrics_android_zero_gen",
+  srcs: [
+    "protos/perfetto/metrics/android/mem_metric.proto",
+  ],
+  tools: [
+    "aprotoc",
+    "perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_",
+  ],
+  cmd: "mkdir -p $(genDir)/external/perfetto/protos && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/protos --proto_path=external/perfetto/protos --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/protos $(in)",
+  out: [
+    "external/perfetto/protos/perfetto/metrics/android/mem_metric.pbzero.cc",
+  ],
+}
+
+// GN target: //protos/perfetto/metrics/android:zero_gen
+genrule {
+  name: "perfetto_protos_perfetto_metrics_android_zero_gen_headers",
+  srcs: [
+    "protos/perfetto/metrics/android/mem_metric.proto",
+  ],
+  tools: [
+    "aprotoc",
+    "perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_",
+  ],
+  cmd: "mkdir -p $(genDir)/external/perfetto/protos && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/protos --proto_path=external/perfetto/protos --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/protos $(in)",
+  out: [
+    "external/perfetto/protos/perfetto/metrics/android/mem_metric.pbzero.h",
+  ],
+  export_include_dirs: [
+    "protos",
+  ],
+}
+
+// GN target: //protos/perfetto/metrics:zero_gen
+genrule {
+  name: "perfetto_protos_perfetto_metrics_zero_gen",
+  srcs: [
+    "protos/perfetto/metrics/metrics.proto",
+  ],
+  tools: [
+    "aprotoc",
+    "perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_",
+  ],
+  cmd: "mkdir -p $(genDir)/external/perfetto/protos && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/protos --proto_path=external/perfetto/protos --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/protos $(in)",
+  out: [
+    "external/perfetto/protos/perfetto/metrics/metrics.pbzero.cc",
+  ],
+}
+
+// GN target: //protos/perfetto/metrics:zero_gen
+genrule {
+  name: "perfetto_protos_perfetto_metrics_zero_gen_headers",
+  srcs: [
+    "protos/perfetto/metrics/metrics.proto",
+  ],
+  tools: [
+    "aprotoc",
+    "perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_",
+  ],
+  cmd: "mkdir -p $(genDir)/external/perfetto/protos && $(location aprotoc) --cpp_out=$(genDir)/external/perfetto/protos --proto_path=external/perfetto/protos --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_protoc_plugin___gn_standalone_toolchain_gcc_like_host_) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/protos $(in)",
+  out: [
+    "external/perfetto/protos/perfetto/metrics/metrics.pbzero.h",
+  ],
+  export_include_dirs: [
+    "protos",
+  ],
+}
+
 // GN target: //protos/perfetto/trace/android:lite_gen
 genrule {
   name: "perfetto_protos_perfetto_trace_android_lite_gen",
@@ -3069,6 +3153,8 @@
     ":perfetto_protos_perfetto_common_zero_gen",
     ":perfetto_protos_perfetto_config_lite_gen",
     ":perfetto_protos_perfetto_config_zero_gen",
+    ":perfetto_protos_perfetto_metrics_android_zero_gen",
+    ":perfetto_protos_perfetto_metrics_zero_gen",
     ":perfetto_protos_perfetto_trace_android_lite_gen",
     ":perfetto_protos_perfetto_trace_android_zero_gen",
     ":perfetto_protos_perfetto_trace_chrome_lite_gen",
@@ -3175,10 +3261,13 @@
     "libsqlite",
   ],
   generated_headers: [
+    "gen_merged_sql_metrics",
     "perfetto_protos_perfetto_common_lite_gen_headers",
     "perfetto_protos_perfetto_common_zero_gen_headers",
     "perfetto_protos_perfetto_config_lite_gen_headers",
     "perfetto_protos_perfetto_config_zero_gen_headers",
+    "perfetto_protos_perfetto_metrics_android_zero_gen_headers",
+    "perfetto_protos_perfetto_metrics_zero_gen_headers",
     "perfetto_protos_perfetto_trace_android_lite_gen_headers",
     "perfetto_protos_perfetto_trace_android_zero_gen_headers",
     "perfetto_protos_perfetto_trace_chrome_lite_gen_headers",