Update telemetry for Pre-reboot Dexopt.

- Distinguish system requirement check failures from unexpected
  failures.
- Count packages that have Pre-reboot Dexopt artifacts before the
  reboot.
- Distinguish OTA updates from Mainline updates.

Example proto message:

status: STATUS_FINISHED
optimized_package_count: 21
failed_package_count: 0
skipped_package_count: 91
total_package_count: 112
job_scheduled_timestamp_millis: 1717512730432
job_runs {
  job_started_timestamp_millis: 1717512784302
  job_ended_timestamp_millis: 1717512815902
}
packages_with_artifacts_before_reboot_count: 21
job_type: JOB_TYPE_MAINLINE

Example reported stats:

metric_id: 1111
event_metrics {
  data {
    aggregated_atom_info {
      atom {
        [android.os.statsd.art.prereboot_dexopt_job_ended] {
          status: STATUS_FINISHED
          optimized_package_count: 21
          failed_package_count: 0
          skipped_package_count: 91
          total_package_count: 112
          job_duration_millis: 31600
          job_latency_millis: 53870
          packages_with_artifacts_after_reboot_count: 21
          packages_with_artifacts_usable_after_reboot_count: 21
          job_run_count: 1
          packages_with_artifacts_before_reboot_count: 21
          job_type: JOB_TYPE_MAINLINE
        }
      }
      elapsed_timestamp_nanos: 72785286422
    }
  }
}
is_active: true
estimated_data_bytes: 160

Bug: 336239721
Bug: 311377497
Test: atest ArtServiceTests
Test: -
  1. adb root
  2. adb shell device_config put runtime enable_pr_dexopt true
  3. Install an ART apex.
  4. adb shell cat /data/system/pre-reboot-stats.pb | aprotoc --decode=com.android.server.art.proto.PreRebootStats art/libartservice/service/proto/pre_reboot_stats.proto
  5. adb shell cmd jobscheduler run android 27873781
  6. adb shell cat /data/system/pre-reboot-stats.pb | aprotoc --decode=com.android.server.art.proto.PreRebootStats art/libartservice/service/proto/pre_reboot_stats.proto
  7. adb reboot
  8. statsd_testdrive 883
Change-Id: I06e9dd6ee59792a45fcc1b1291b79b1c7b1bc9bf
7 files changed