Home | History | Annotate | Download | only in health
      1 /*
      2  * Copyright (C) 2016 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package android.os.health;
     18 
     19 /**
     20  * Keys for {@link HealthStats} returned from
     21  * {@link SystemHealthManager#takeUidSnapshot(int) SystemHealthManager.takeUidSnapshot(int)},
     22  * {@link SystemHealthManager#takeMyUidSnapshot() SystemHealthManager.takeMyUidSnapshot()}, and
     23  * {@link SystemHealthManager#takeUidSnapshots(int[]) SystemHealthManager.takeUidSnapshots(int[])}.
     24  */
     25 public final class UidHealthStats {
     26 
     27     private UidHealthStats() {
     28     }
     29 
     30     /**
     31      * How many milliseconds this statistics report covers in wall-clock time while the
     32      * device was on battery including both screen-on and screen-off time.
     33      */
     34     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
     35     public static final int MEASUREMENT_REALTIME_BATTERY_MS = HealthKeys.BASE_UID + 1;
     36 
     37     /**
     38      * How many milliseconds this statistics report covers that the CPU was running while the
     39      * device was on battery including both screen-on and screen-off time.
     40      */
     41     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
     42     public static final int MEASUREMENT_UPTIME_BATTERY_MS = HealthKeys.BASE_UID + 2;
     43 
     44     /**
     45      * How many milliseconds this statistics report covers in wall-clock time while the
     46      * device was on battery including both screen-on and screen-off time.
     47      */
     48     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
     49     public static final int MEASUREMENT_REALTIME_SCREEN_OFF_BATTERY_MS = HealthKeys.BASE_UID + 3;
     50 
     51     /**
     52      * How many milliseconds this statistics report covers that the CPU was running while the
     53      * device was on battery including both screen-on and screen-off time.
     54      */
     55     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
     56     public static final int MEASUREMENT_UPTIME_SCREEN_OFF_BATTERY_MS = HealthKeys.BASE_UID + 4;
     57 
     58     /**
     59      * Key for a TimerStat for the times a
     60      * {@link android.os.PowerManager#FULL_WAKE_LOCK full wake lock}
     61      * was acquired for this uid.
     62      */
     63     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMERS)
     64     public static final int TIMERS_WAKELOCKS_FULL = HealthKeys.BASE_UID + 5;
     65 
     66     /**
     67      * Key for a TimerStat for the times a
     68      * {@link android.os.PowerManager#PARTIAL_WAKE_LOCK full wake lock}
     69      * was acquired for this uid.
     70      */
     71     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMERS)
     72     public static final int TIMERS_WAKELOCKS_PARTIAL = HealthKeys.BASE_UID + 6;
     73 
     74     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMERS)
     75     public static final int TIMERS_WAKELOCKS_WINDOW = HealthKeys.BASE_UID + 7;
     76 
     77     /**
     78      * Key for a TimerStat for the times a system-defined wakelock was acquired
     79      * to allow the application to draw when it otherwise would not be able to
     80      * (e.g. on the lock screen or doze screen).
     81      */
     82     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMERS)
     83     public static final int TIMERS_WAKELOCKS_DRAW = HealthKeys.BASE_UID + 8;
     84 
     85     /**
     86      * Key for a map of Timers for the sync adapter syncs that were done for
     87      * this uid.
     88      */
     89     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMERS)
     90     public static final int TIMERS_SYNCS = HealthKeys.BASE_UID + 9;
     91 
     92     /**
     93      * Key for a map of Timers for the {@link android.app.job.JobScheduler} jobs for
     94      * this uid.
     95      */
     96     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMERS)
     97     public static final int TIMERS_JOBS = HealthKeys.BASE_UID + 10;
     98 
     99     /**
    100      * Key for a timer for the applications use of the GPS sensor.
    101      */
    102     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    103     public static final int TIMER_GPS_SENSOR = HealthKeys.BASE_UID + 11;
    104 
    105     /**
    106      * Key for a map of the sensor usage for this uid. The keys are a
    107      * string representation of the handle for the sensor.
    108      */
    109     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMERS)
    110     public static final int TIMERS_SENSORS = HealthKeys.BASE_UID + 12;
    111 
    112     /**
    113      * Key for a HealthStats with {@link PidHealthStats} keys for each of the
    114      * currently running processes for this uid.
    115      */
    116     @HealthKeys.Constant(type=HealthKeys.TYPE_STATS)
    117     public static final int STATS_PIDS = HealthKeys.BASE_UID + 13;
    118 
    119     /**
    120      * Key for a HealthStats with {@link ProcessHealthStats} keys for each of the
    121      * named processes for this uid.
    122      */
    123     @HealthKeys.Constant(type=HealthKeys.TYPE_STATS)
    124     public static final int STATS_PROCESSES = HealthKeys.BASE_UID + 14;
    125 
    126     /**
    127      * Key for a HealthStats with {@link PackageHealthStats} keys for each of the
    128      * APKs that share this uid.
    129      */
    130     @HealthKeys.Constant(type=HealthKeys.TYPE_STATS)
    131     public static final int STATS_PACKAGES = HealthKeys.BASE_UID + 15;
    132 
    133     /**
    134      * Key for a measurement of number of millseconds the wifi controller was
    135      * idle but turned on on behalf of this uid.
    136      */
    137     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    138     public static final int MEASUREMENT_WIFI_IDLE_MS = HealthKeys.BASE_UID + 16;
    139 
    140     /**
    141      * Key for a measurement of number of millseconds the wifi transmitter was
    142      * receiving data for this uid.
    143      */
    144     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    145     public static final int MEASUREMENT_WIFI_RX_MS = HealthKeys.BASE_UID + 17;
    146 
    147     /**
    148      * Key for a measurement of number of millseconds the wifi transmitter was
    149      * transmitting data for this uid.
    150      */
    151     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    152     public static final int MEASUREMENT_WIFI_TX_MS = HealthKeys.BASE_UID + 18;
    153 
    154     /**
    155      * Key for a measurement of the estimated number of mA*ms used by this uid
    156      * for wifi, that is to say the number of milliseconds of wifi activity
    157      * times the mA current during that period.
    158      */
    159     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    160     public static final int MEASUREMENT_WIFI_POWER_MAMS = HealthKeys.BASE_UID + 19;
    161 
    162     /**
    163      * Key for a measurement of number of millseconds the bluetooth controller was
    164      * idle but turned on on behalf of this uid.
    165      */
    166     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    167     public static final int MEASUREMENT_BLUETOOTH_IDLE_MS = HealthKeys.BASE_UID + 20;
    168 
    169     /**
    170      * Key for a measurement of number of millseconds the bluetooth transmitter was
    171      * receiving data for this uid.
    172      */
    173     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    174     public static final int MEASUREMENT_BLUETOOTH_RX_MS = HealthKeys.BASE_UID + 21;
    175 
    176     /**
    177      * Key for a measurement of number of millseconds the bluetooth transmitter was
    178      * transmitting data for this uid.
    179      */
    180     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    181     public static final int MEASUREMENT_BLUETOOTH_TX_MS = HealthKeys.BASE_UID + 22;
    182 
    183     /**
    184      * Key for a measurement of the estimated number of mA*ms used by this uid
    185      * for bluetooth, that is to say the number of milliseconds of activity
    186      * times the mA current during that period.
    187      */
    188     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    189     public static final int MEASUREMENT_BLUETOOTH_POWER_MAMS = HealthKeys.BASE_UID + 23;
    190 
    191     /**
    192      * Key for a measurement of number of millseconds the mobile radio controller was
    193      * idle but turned on on behalf of this uid.
    194      */
    195     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    196     public static final int MEASUREMENT_MOBILE_IDLE_MS = HealthKeys.BASE_UID + 24;
    197 
    198     /**
    199      * Key for a measurement of number of millseconds the mobile radio transmitter was
    200      * receiving data for this uid.
    201      */
    202     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    203     public static final int MEASUREMENT_MOBILE_RX_MS = HealthKeys.BASE_UID + 25;
    204 
    205     /**
    206      * Key for a measurement of number of millseconds the mobile radio transmitter was
    207      * transmitting data for this uid.
    208      */
    209     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    210     public static final int MEASUREMENT_MOBILE_TX_MS = HealthKeys.BASE_UID + 26;
    211 
    212     /**
    213      * Key for a measurement of the estimated number of mA*ms used by this uid
    214      * for mobile data, that is to say the number of milliseconds of activity
    215      * times the mA current during that period.
    216      */
    217     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    218     public static final int MEASUREMENT_MOBILE_POWER_MAMS = HealthKeys.BASE_UID + 27;
    219 
    220     /**
    221      * Key for a measurement of number of millseconds the wifi controller was
    222      * active on behalf of this uid.
    223      */
    224     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    225     public static final int MEASUREMENT_WIFI_RUNNING_MS = HealthKeys.BASE_UID + 28;
    226 
    227     /**
    228      * Key for a measurement of number of millseconds that this uid held a full wifi lock.
    229      */
    230     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    231     public static final int MEASUREMENT_WIFI_FULL_LOCK_MS = HealthKeys.BASE_UID + 29;
    232 
    233     /**
    234      * Key for a timer for the count and duration of wifi scans done by this uid.
    235      */
    236     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    237     public static final int TIMER_WIFI_SCAN = HealthKeys.BASE_UID + 30;
    238 
    239     /**
    240      * Key for a measurement of number of millseconds that this uid was performing
    241      * multicast wifi traffic.
    242      */
    243     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    244     public static final int MEASUREMENT_WIFI_MULTICAST_MS = HealthKeys.BASE_UID + 31;
    245 
    246     /**
    247      * Key for a timer for the count and duration of audio playback done by this uid.
    248      */
    249     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    250     public static final int TIMER_AUDIO = HealthKeys.BASE_UID + 32;
    251 
    252     /**
    253      * Key for a timer for the count and duration of video playback done by this uid.
    254      */
    255     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    256     public static final int TIMER_VIDEO = HealthKeys.BASE_UID + 33;
    257 
    258     /**
    259      * Key for a timer for the count and duration this uid had the flashlight turned on.
    260      */
    261     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    262     public static final int TIMER_FLASHLIGHT = HealthKeys.BASE_UID + 34;
    263 
    264     /**
    265      * Key for a timer for the count and duration this uid had the camera turned on.
    266      */
    267     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    268     public static final int TIMER_CAMERA = HealthKeys.BASE_UID + 35;
    269 
    270     /**
    271      * Key for a timer for the count and duration of when an activity from this uid
    272      * was the foreground activitiy.
    273      */
    274     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    275     public static final int TIMER_FOREGROUND_ACTIVITY = HealthKeys.BASE_UID + 36;
    276 
    277     /**
    278      * Key for a timer for the count and duration of when this uid was doing bluetooth scans.
    279      */
    280     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    281     public static final int TIMER_BLUETOOTH_SCAN = HealthKeys.BASE_UID + 37;
    282 
    283     /**
    284      * Key for a timer for the count and duration of when this uid was in the "top" process state.
    285      */
    286     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    287     public static final int TIMER_PROCESS_STATE_TOP_MS = HealthKeys.BASE_UID + 38;
    288 
    289     /**
    290      * Key for a timer for the count and duration of when this uid was in the "foreground service"
    291      * process state.
    292      */
    293     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    294     public static final int TIMER_PROCESS_STATE_FOREGROUND_SERVICE_MS = HealthKeys.BASE_UID + 39;
    295 
    296     /**
    297      * Key for a timer for the count and duration of when this uid was in the "top sleeping"
    298      * process state.
    299      */
    300     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    301     public static final int TIMER_PROCESS_STATE_TOP_SLEEPING_MS = HealthKeys.BASE_UID + 40;
    302 
    303     /**
    304      * Key for a timer for the count and duration of when this uid was in the "foreground"
    305      * process state.
    306      */
    307     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    308     public static final int TIMER_PROCESS_STATE_FOREGROUND_MS = HealthKeys.BASE_UID + 41;
    309 
    310     /**
    311      * Key for a timer for the count and duration of when this uid was in the "background"
    312      * process state.
    313      */
    314     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    315     public static final int TIMER_PROCESS_STATE_BACKGROUND_MS = HealthKeys.BASE_UID + 42;
    316 
    317     /**
    318      * Key for a timer for the count and duration of when this uid was in the "cached" process
    319      * state.
    320      */
    321     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    322     public static final int TIMER_PROCESS_STATE_CACHED_MS = HealthKeys.BASE_UID + 43;
    323 
    324     /**
    325      * Key for a timer for the count and duration this uid had the vibrator turned on.
    326      */
    327     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    328     public static final int TIMER_VIBRATOR = HealthKeys.BASE_UID + 44;
    329 
    330     /**
    331      * Key for a measurement of number of software-generated user activity events caused
    332      * by the UID.  Calls to userActivity() reset the user activity countdown timer and
    333      * keep the screen on for the user's preferred screen-on setting.
    334      */
    335     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    336     public static final int MEASUREMENT_OTHER_USER_ACTIVITY_COUNT = HealthKeys.BASE_UID + 45;
    337 
    338     /**
    339      * Key for a measurement of number of user activity events due to physical button presses caused
    340      * by the UID.  Calls to userActivity() reset the user activity countdown timer and
    341      * keep the screen on for the user's preferred screen-on setting.
    342      */
    343     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    344     public static final int MEASUREMENT_BUTTON_USER_ACTIVITY_COUNT = HealthKeys.BASE_UID + 46;
    345 
    346     /**
    347      * Key for a measurement of number of user activity events due to touch events caused
    348      * by the UID.  Calls to userActivity() reset the user activity countdown timer and
    349      * keep the screen on for the user's preferred screen-on setting.
    350      */
    351     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    352     public static final int MEASUREMENT_TOUCH_USER_ACTIVITY_COUNT = HealthKeys.BASE_UID + 47;
    353 
    354     /**
    355      * Key for a measurement of number of bytes received for this uid by the mobile radio.
    356      */
    357     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    358     public static final int MEASUREMENT_MOBILE_RX_BYTES = HealthKeys.BASE_UID + 48;
    359 
    360     /**
    361      * Key for a measurement of number of bytes transmitted for this uid by the mobile radio.
    362      */
    363     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    364     public static final int MEASUREMENT_MOBILE_TX_BYTES = HealthKeys.BASE_UID + 49;
    365 
    366     /**
    367      * Key for a measurement of number of bytes received for this uid by the wifi radio.
    368      */
    369     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    370     public static final int MEASUREMENT_WIFI_RX_BYTES = HealthKeys.BASE_UID + 50;
    371 
    372     /**
    373      * Key for a measurement of number of bytes transmitted for this uid by the wifi radio.
    374      */
    375     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    376     public static final int MEASUREMENT_WIFI_TX_BYTES = HealthKeys.BASE_UID + 51;
    377 
    378     /**
    379      * Key for a measurement of number of bytes received for this uid by the bluetooth radio.
    380      */
    381     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    382     public static final int MEASUREMENT_BLUETOOTH_RX_BYTES = HealthKeys.BASE_UID + 52;
    383 
    384     /**
    385      * Key for a measurement of number of bytes transmitted for this uid by the bluetooth radio.
    386      */
    387     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    388     public static final int MEASUREMENT_BLUETOOTH_TX_BYTES = HealthKeys.BASE_UID + 53;
    389 
    390     /**
    391      * Key for a measurement of number of packets received for this uid by the mobile radio.
    392      */
    393     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    394     public static final int MEASUREMENT_MOBILE_RX_PACKETS = HealthKeys.BASE_UID + 54;
    395 
    396     /**
    397      * Key for a measurement of number of packets transmitted for this uid by the mobile radio.
    398      */
    399     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    400     public static final int MEASUREMENT_MOBILE_TX_PACKETS = HealthKeys.BASE_UID + 55;
    401 
    402     /**
    403      * Key for a measurement of number of packets received for this uid by the wifi radio.
    404      */
    405     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    406     public static final int MEASUREMENT_WIFI_RX_PACKETS = HealthKeys.BASE_UID + 56;
    407 
    408     /**
    409      * Key for a measurement of number of packets transmitted for this uid by the wifi radio.
    410      */
    411     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    412     public static final int MEASUREMENT_WIFI_TX_PACKETS = HealthKeys.BASE_UID + 57;
    413 
    414     /**
    415      * Key for a measurement of number of packets received for this uid by the bluetooth radio.
    416      */
    417     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    418     public static final int MEASUREMENT_BLUETOOTH_RX_PACKETS = HealthKeys.BASE_UID + 58;
    419 
    420     /**
    421      * Key for a measurement of number of packets transmitted for this uid by the bluetooth radio.
    422      */
    423     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    424     public static final int MEASUREMENT_BLUETOOTH_TX_PACKETS = HealthKeys.BASE_UID + 59;
    425 
    426     /**
    427      * Key for a timer for the count and duration the mobile radio was turned on for this uid.
    428      */
    429     @HealthKeys.Constant(type=HealthKeys.TYPE_TIMER)
    430     public static final int TIMER_MOBILE_RADIO_ACTIVE = HealthKeys.BASE_UID + 61;
    431 
    432     /**
    433      * Key for a measurement of the number of milliseconds spent by the CPU running user space
    434      * code for this uid.
    435      */
    436     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    437     public static final int MEASUREMENT_USER_CPU_TIME_MS = HealthKeys.BASE_UID + 62;
    438 
    439     /**
    440      * Key for a measurement of the number of milliseconds spent by the CPU running kernel
    441      * code for this uid.
    442      */
    443     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    444     public static final int MEASUREMENT_SYSTEM_CPU_TIME_MS = HealthKeys.BASE_UID + 63;
    445 
    446     /**
    447      * An estimate of the number of milliamp-microsends used by this uid.
    448      *
    449      * @deprecated this measurement is vendor-dependent and not reliable.
    450      */
    451     @Deprecated
    452     @HealthKeys.Constant(type=HealthKeys.TYPE_MEASUREMENT)
    453     public static final int MEASUREMENT_CPU_POWER_MAMS = HealthKeys.BASE_UID + 64;
    454 
    455     /**
    456      * @hide
    457      */
    458     public static final HealthKeys.Constants CONSTANTS = new HealthKeys.Constants(UidHealthStats.class);
    459 }
    460 
    461