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