IStatsManager.aidl revision 947fbce521d9e8377df03e3c1c31884ed5577f32
15dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato/** 2947fbce521d9e8377df03e3c1c31884ed5577f32yro * Copyright (c) 2017, The Android Open Source Project 35dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato * 45dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato * Licensed under the Apache License, Version 2.0 (the "License"); 55dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato * you may not use this file except in compliance with the License. 65dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato * You may obtain a copy of the License at 75dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato * 85dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato * http://www.apache.org/licenses/LICENSE-2.0 95dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato * 105dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato * Unless required by applicable law or agreed to in writing, software 115dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato * distributed under the License is distributed on an "AS IS" BASIS, 125dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato * See the License for the specific language governing permissions and 145dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato * limitations under the License. 155dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato */ 165dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato 175dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onoratopackage android.os; 185dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato 195dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato/** 201b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz * Binder interface to communicate with the statistics management service. 215dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato * {@hide} 225dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato */ 23b487b5533eba8635232009c7f32a54a0380a532dBookatzinterface IStatsManager { 245dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato /** 251b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz * Tell the stats daemon that the android system server is up and running. 265dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato */ 27b487b5533eba8635232009c7f32a54a0380a532dBookatz oneway void systemRunning(); 28b487b5533eba8635232009c7f32a54a0380a532dBookatz 29b487b5533eba8635232009c7f32a54a0380a532dBookatz /** 30b487b5533eba8635232009c7f32a54a0380a532dBookatz * Tell the stats daemon that the StatsCompanionService is up and running. 31b487b5533eba8635232009c7f32a54a0380a532dBookatz * Two-way binder call so that caller knows message received. 32b487b5533eba8635232009c7f32a54a0380a532dBookatz */ 33b487b5533eba8635232009c7f32a54a0380a532dBookatz void statsCompanionReady(); 341b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz 351b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz /** 361b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz * Tells statsd that an anomaly may have occurred, so statsd can check whether this is so and 371b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz * act accordingly. 38b487b5533eba8635232009c7f32a54a0380a532dBookatz * Two-way binder call so that caller's method (and corresponding wakelocks) will linger. 391b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz */ 401b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz void informAnomalyAlarmFired(); 411b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz 42b487b5533eba8635232009c7f32a54a0380a532dBookatz /** 43b487b5533eba8635232009c7f32a54a0380a532dBookatz * Tells statsd that it is time to poll some stats. Statsd will be responsible for determing 441b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz * what stats to poll and initiating the polling. 45b487b5533eba8635232009c7f32a54a0380a532dBookatz * Two-way binder call so that caller's method (and corresponding wakelocks) will linger. 461b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz */ 471b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz void informPollAlarmFired(); 48de70169109c57787a23c732ec4b361ade2e9850eDavid Chen 49de70169109c57787a23c732ec4b361ade2e9850eDavid Chen /** 50947fbce521d9e8377df03e3c1c31884ed5577f32yro * Tells statsd to store data to disk. 51947fbce521d9e8377df03e3c1c31884ed5577f32yro */ 52947fbce521d9e8377df03e3c1c31884ed5577f32yro void writeDataToDisk(); 53947fbce521d9e8377df03e3c1c31884ed5577f32yro 54947fbce521d9e8377df03e3c1c31884ed5577f32yro /** 55de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * Inform statsd what the version and package are for each uid. Note that each array should 56de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * have the same number of elements, and version[i] and package[i] correspond to uid[i]. 57de70169109c57787a23c732ec4b361ade2e9850eDavid Chen */ 58de70169109c57787a23c732ec4b361ade2e9850eDavid Chen oneway void informAllUidData(in int[] uid, in int[] version, in String[] app); 59de70169109c57787a23c732ec4b361ade2e9850eDavid Chen 60de70169109c57787a23c732ec4b361ade2e9850eDavid Chen /** 61de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * Inform statsd what the uid and version are for one app that was updated. 62de70169109c57787a23c732ec4b361ade2e9850eDavid Chen */ 63de70169109c57787a23c732ec4b361ade2e9850eDavid Chen oneway void informOnePackage(in String app, in int uid, in int version); 64de70169109c57787a23c732ec4b361ade2e9850eDavid Chen 65de70169109c57787a23c732ec4b361ade2e9850eDavid Chen /** 66de70169109c57787a23c732ec4b361ade2e9850eDavid Chen * Inform stats that an app was removed. 67de70169109c57787a23c732ec4b361ade2e9850eDavid Chen */ 68de70169109c57787a23c732ec4b361ade2e9850eDavid Chen oneway void informOnePackageRemoved(in String app, in int uid); 6931eb67b3498d326659b2b164ff367a01a793d641yro 7031eb67b3498d326659b2b164ff367a01a793d641yro /** 71adaf8b344e312853530e276ceff05783133ecf17David Chen * Fetches data for the specified configuration key. Returns a byte array representing proto 72adaf8b344e312853530e276ceff05783133ecf17David Chen * wire-encoded of ConfigMetricsReport. 7331eb67b3498d326659b2b164ff367a01a793d641yro */ 74adaf8b344e312853530e276ceff05783133ecf17David Chen byte[] getData(in String key); 7531eb67b3498d326659b2b164ff367a01a793d641yro 7631eb67b3498d326659b2b164ff367a01a793d641yro /** 77adaf8b344e312853530e276ceff05783133ecf17David Chen * Sets a configuration with the specified config key and subscribes to updates for this 78adaf8b344e312853530e276ceff05783133ecf17David Chen * configuration key. Broadcasts will be sent if this configuration needs to be collected. 79adaf8b344e312853530e276ceff05783133ecf17David Chen * The configuration must be a wire-encoded StatsDConfig. The caller specifies the name of the 80adaf8b344e312853530e276ceff05783133ecf17David Chen * package and class that should receive these broadcasts. 81adaf8b344e312853530e276ceff05783133ecf17David Chen * 82adaf8b344e312853530e276ceff05783133ecf17David Chen * Returns if this configuration was correctly registered. 8331eb67b3498d326659b2b164ff367a01a793d641yro */ 84adaf8b344e312853530e276ceff05783133ecf17David Chen boolean addConfiguration(in String configKey, in byte[] config, in String pkg, in String cls); 85adaf8b344e312853530e276ceff05783133ecf17David Chen 86adaf8b344e312853530e276ceff05783133ecf17David Chen /** 87adaf8b344e312853530e276ceff05783133ecf17David Chen * Removes the configuration with the matching config key. No-op if this config key does not 88adaf8b344e312853530e276ceff05783133ecf17David Chen * exist. 89adaf8b344e312853530e276ceff05783133ecf17David Chen * 90adaf8b344e312853530e276ceff05783133ecf17David Chen * Returns if this configuration key was removed. 91adaf8b344e312853530e276ceff05783133ecf17David Chen */ 92adaf8b344e312853530e276ceff05783133ecf17David Chen boolean removeConfiguration(in String configKey); 935dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato} 94