IStatsManager.aidl revision adaf8b344e312853530e276ceff05783133ecf17
15dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato/**
25dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato * Copyright (c) 2016, 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
1931eb67b3498d326659b2b164ff367a01a793d641yroimport android.os.IStatsCallbacks;
2031eb67b3498d326659b2b164ff367a01a793d641yro
215dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato/**
221b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz  * Binder interface to communicate with the statistics management service.
235dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato  * {@hide}
245dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato  */
25b487b5533eba8635232009c7f32a54a0380a532dBookatzinterface IStatsManager {
265dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato    /**
271b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz     * Tell the stats daemon that the android system server is up and running.
285dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato     */
29b487b5533eba8635232009c7f32a54a0380a532dBookatz    oneway void systemRunning();
30b487b5533eba8635232009c7f32a54a0380a532dBookatz
31b487b5533eba8635232009c7f32a54a0380a532dBookatz    /**
32b487b5533eba8635232009c7f32a54a0380a532dBookatz     * Tell the stats daemon that the StatsCompanionService is up and running.
33b487b5533eba8635232009c7f32a54a0380a532dBookatz     * Two-way binder call so that caller knows message received.
34b487b5533eba8635232009c7f32a54a0380a532dBookatz     */
35b487b5533eba8635232009c7f32a54a0380a532dBookatz    void statsCompanionReady();
361b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz
371b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz    /**
381b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz     * Tells statsd that an anomaly may have occurred, so statsd can check whether this is so and
391b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz     * act accordingly.
40b487b5533eba8635232009c7f32a54a0380a532dBookatz     * Two-way binder call so that caller's method (and corresponding wakelocks) will linger.
411b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz     */
421b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz    void informAnomalyAlarmFired();
431b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz
44b487b5533eba8635232009c7f32a54a0380a532dBookatz    /**
45b487b5533eba8635232009c7f32a54a0380a532dBookatz     * Tells statsd that it is time to poll some stats. Statsd will be responsible for determing
461b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz     * what stats to poll and initiating the polling.
47b487b5533eba8635232009c7f32a54a0380a532dBookatz     * Two-way binder call so that caller's method (and corresponding wakelocks) will linger.
481b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz     */
491b0b114abca0a7c7642b0b7de343e1e2f982ebf0Bookatz    void informPollAlarmFired();
50de70169109c57787a23c732ec4b361ade2e9850eDavid Chen
51de70169109c57787a23c732ec4b361ade2e9850eDavid Chen    /**
52de70169109c57787a23c732ec4b361ade2e9850eDavid Chen     * Inform statsd what the version and package are for each uid. Note that each array should
53de70169109c57787a23c732ec4b361ade2e9850eDavid Chen     * have the same number of elements, and version[i] and package[i] correspond to uid[i].
54de70169109c57787a23c732ec4b361ade2e9850eDavid Chen     */
55de70169109c57787a23c732ec4b361ade2e9850eDavid Chen    oneway void informAllUidData(in int[] uid, in int[] version, in String[] app);
56de70169109c57787a23c732ec4b361ade2e9850eDavid Chen
57de70169109c57787a23c732ec4b361ade2e9850eDavid Chen    /**
58de70169109c57787a23c732ec4b361ade2e9850eDavid Chen     * Inform statsd what the uid and version are for one app that was updated.
59de70169109c57787a23c732ec4b361ade2e9850eDavid Chen     */
60de70169109c57787a23c732ec4b361ade2e9850eDavid Chen    oneway void informOnePackage(in String app, in int uid, in int version);
61de70169109c57787a23c732ec4b361ade2e9850eDavid Chen
62de70169109c57787a23c732ec4b361ade2e9850eDavid Chen    /**
63de70169109c57787a23c732ec4b361ade2e9850eDavid Chen     * Inform stats that an app was removed.
64de70169109c57787a23c732ec4b361ade2e9850eDavid Chen     */
65de70169109c57787a23c732ec4b361ade2e9850eDavid Chen    oneway void informOnePackageRemoved(in String app, in int uid);
6631eb67b3498d326659b2b164ff367a01a793d641yro
6731eb67b3498d326659b2b164ff367a01a793d641yro    /**
68adaf8b344e312853530e276ceff05783133ecf17David Chen     * Fetches data for the specified configuration key. Returns a byte array representing proto
69adaf8b344e312853530e276ceff05783133ecf17David Chen     * wire-encoded of ConfigMetricsReport.
7031eb67b3498d326659b2b164ff367a01a793d641yro     */
71adaf8b344e312853530e276ceff05783133ecf17David Chen    byte[] getData(in String key);
7231eb67b3498d326659b2b164ff367a01a793d641yro
7331eb67b3498d326659b2b164ff367a01a793d641yro    /**
74adaf8b344e312853530e276ceff05783133ecf17David Chen     * Sets a configuration with the specified config key and subscribes to updates for this
75adaf8b344e312853530e276ceff05783133ecf17David Chen     * configuration key. Broadcasts will be sent if this configuration needs to be collected.
76adaf8b344e312853530e276ceff05783133ecf17David Chen     * The configuration must be a wire-encoded StatsDConfig. The caller specifies the name of the
77adaf8b344e312853530e276ceff05783133ecf17David Chen     * package and class that should receive these broadcasts.
78adaf8b344e312853530e276ceff05783133ecf17David Chen     *
79adaf8b344e312853530e276ceff05783133ecf17David Chen     * Returns if this configuration was correctly registered.
8031eb67b3498d326659b2b164ff367a01a793d641yro     */
81adaf8b344e312853530e276ceff05783133ecf17David Chen    boolean addConfiguration(in String configKey, in byte[] config, in String pkg, in String cls);
82adaf8b344e312853530e276ceff05783133ecf17David Chen
83adaf8b344e312853530e276ceff05783133ecf17David Chen    /**
84adaf8b344e312853530e276ceff05783133ecf17David Chen     * Removes the configuration with the matching config key. No-op if this config key does not
85adaf8b344e312853530e276ceff05783133ecf17David Chen     * exist.
86adaf8b344e312853530e276ceff05783133ecf17David Chen     *
87adaf8b344e312853530e276ceff05783133ecf17David Chen     * Returns if this configuration key was removed.
88adaf8b344e312853530e276ceff05783133ecf17David Chen     */
89adaf8b344e312853530e276ceff05783133ecf17David Chen    boolean removeConfiguration(in String configKey);
905dcbc6c015fd56db9381cb7aff58506e8ebcc150Joe Onorato}
91