tree d6aeed9bf24d498385334a5906255489fad20385
parent 27dacc90acf4bcc31a23ad602c33e0ec08f9969a
author Alex Pankhurst <pankhurst@google.com> 1693966764 +0000
committer Alex Pankhurst <pankhurst@google.com> 1694190890 +0000

Distribute registry as an asset

The registry is checked in as both a text proto and a binary proto,
however the binary proto is the only file shipped in the APK. The text
proto is used to validate the binary proto registry contents and build
time, i.e. the build will fail if they're out of sync with a message
about how to regenerate the binary proto.

*** Mean showmap private dirty bytes ***
* Control (no Cobalt): 11,735,204
* Registry asset     : 12,054,200
* Registry resource  : 14,473,298

* Collected with

```
adb shell am instrument -w -e class \
  android.platform.test.scenario.adservices.GetTopicsApiCallMicrobenchmark \
  -e process-names com.google.android.adservices.api \
  -e listener android.device.collectors.ShowmapSnapshotListener \
  -e iterations 25 \
  android.platform.test.scenario/androidx.test.runner.AndroidJUnitRunner
```

*** Mean topics API cold start latency ***
* Control (no Cobalt): 524
* Registry asset     : 543
* Registry resource  : 589

* Collected with

```
adb shell am instrument -w -e class \
  android.platform.test.scenario.adservices.GetTopicsApiCallMicrobenchmark \
  -e process-names com.google.android.adservices.api \
  -e listener android.device.collectors.TopicsLatencyCollector \
  -e iterations 25 \
  android.platform.test.scenario/androidx.test.runner.AndroidJUnitRunner
```

Bug: 298651580

Test: atest CobaltRegistryLoaderTest
Test: Deleted bytes from binary proto asset, build failed and saw
      message with instructions to update

Change-Id: Ic1c67f53908455c1014afb427cdca5f2277ede62
