1 /* 2 * Copyright (C) 2015 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.app; 18 19 /** {@hide} */ 20 oneway interface IUidObserver { 21 // WARNING: when these transactions are updated, check if they are any callers on the native 22 // side. If so, make sure they are using the correct transaction ids and arguments. 23 // If a transaction which will also be used on the native side is being inserted, add it to 24 // below block of transactions. 25 26 // Since these transactions are also called from native code, these must be kept in sync with 27 // the ones in frameworks/native/include/binder/IActivityManager.h 28 // =============== Beginning of transactions used on native side as well ====================== 29 30 /** 31 * Report that there are no longer any processes running for a uid. 32 */ onUidGone(int uid, boolean disabled)33 void onUidGone(int uid, boolean disabled); 34 35 /** 36 * Report that a uid is now active (no longer idle). 37 */ onUidActive(int uid)38 void onUidActive(int uid); 39 40 /** 41 * Report that a uid is idle -- it has either been running in the background for 42 * a sufficient period of time, or all of its processes have gone away. 43 */ onUidIdle(int uid, boolean disabled)44 void onUidIdle(int uid, boolean disabled); 45 46 /** 47 * General report of a state change of an uid. 48 * 49 * @param uid The uid for which the state change is being reported. 50 * @param procState The updated process state for the uid. 51 * @param procStateSeq The sequence no. associated with process state change of the uid, 52 * see UidRecord.procStateSeq for details. 53 */ onUidStateChanged(int uid, int procState, long procStateSeq)54 void onUidStateChanged(int uid, int procState, long procStateSeq); 55 56 // =============== End of transactions used on native side as well ============================ 57 58 /** 59 * Report when the cached state of a uid has changed. 60 * If true, a uid has become cached -- that is, it has some active processes that are 61 * all in the cached state. It should be doing as little as possible at this point. 62 * If false, that a uid is no longer cached. This will only be called after 63 * onUidCached() has been reported true. It will happen when either one of its actively 64 * running processes is no longer cached, or it no longer has any actively running processes. 65 */ onUidCachedChanged(int uid, boolean cached)66 void onUidCachedChanged(int uid, boolean cached); 67 } 68