Initial trace-based startup metric in AOSP

- Partitions the trace into spans based on the initial intent
- Correlates these spans with an actual launching event
- Breaks down main thread by task state

Bug: b/132775271
Change-Id: I14765c5591f787f269d47b5fe217e458de2eb28e
diff --git a/Android.bp b/Android.bp
index 05add93..0e4b6eb 100644
--- a/Android.bp
+++ b/Android.bp
@@ -20,6 +20,9 @@
     "src/trace_processor/metrics/android/android_mem.sql",
     "src/trace_processor/metrics/android/android_mem_lmk.sql",
     "src/trace_processor/metrics/android/android_mem_proc_counters.sql",
+    "src/trace_processor/metrics/android/android_startup.sql",
+    "src/trace_processor/metrics/android/android_startup_launches.sql",
+    "src/trace_processor/metrics/android/android_task_state.sql",
   ],
   cmd: "$(location tools/gen_merged_sql_metrics.py) --cpp_out=$(out) $(in)",
   out: [
@@ -1063,6 +1066,7 @@
   name: "perfetto_protos_perfetto_metrics_android_zero_gen",
   srcs: [
     "protos/perfetto/metrics/android/mem_metric.proto",
+    "protos/perfetto/metrics/android/startup_metric.proto",
   ],
   tools: [
     "aprotoc",
@@ -1071,6 +1075,7 @@
   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",
+    "external/perfetto/protos/perfetto/metrics/android/startup_metric.pbzero.cc",
   ],
 }
 
@@ -1079,6 +1084,7 @@
   name: "perfetto_protos_perfetto_metrics_android_zero_gen_headers",
   srcs: [
     "protos/perfetto/metrics/android/mem_metric.proto",
+    "protos/perfetto/metrics/android/startup_metric.proto",
   ],
   tools: [
     "aprotoc",
@@ -1087,6 +1093,7 @@
   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",
+    "external/perfetto/protos/perfetto/metrics/android/startup_metric.pbzero.h",
   ],
   export_include_dirs: [
     "protos",