OLD | NEW |
(Empty) | |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 module arc; |
| 6 |
| 7 // Describes the current process state, as defined by AOSP in |
| 8 // android.app.ActivityManager. |
| 9 enum ProcessState { |
| 10 // Process does not exist. |
| 11 NONEXISTENT = -1, |
| 12 |
| 13 // Process is a persistent system process. |
| 14 PERSISTENT = 0, |
| 15 |
| 16 // Process is a persistent system process and is doing UI. |
| 17 PERSISTENT_UI = 1, |
| 18 |
| 19 // Process is hosting the current top activities. Note that this covers |
| 20 // all activities that are visible to the user. |
| 21 TOP = 2, |
| 22 |
| 23 // Process is hosting a foreground service due to a system binding. |
| 24 BOUND_FOREGROUND_SERVICE = 3, |
| 25 |
| 26 // Process is hosting a foreground service. |
| 27 FOREGROUND_SERVICE = 4, |
| 28 |
| 29 // Same as PROCESS_STATE_TOP but while device is sleeping. |
| 30 TOP_SLEEPING = 5, |
| 31 |
| 32 // Process is important to the user, and something they are aware of. |
| 33 IMPORTANT_FOREGROUND = 6, |
| 34 |
| 35 // Process is important to the user, but not something they are aware of. |
| 36 IMPORTANT_BACKGROUND = 7, |
| 37 |
| 38 // Process is in the background running a backup/restore operation. |
| 39 BACKUP = 8, |
| 40 |
| 41 // Process is in the background, but it can't restore its state so we want |
| 42 // to try to avoid killing it. |
| 43 HEAVY_WEIGHT = 9, |
| 44 |
| 45 // Process is in the background running a service. Unlike oom_adj, this level |
| 46 // is used for both the normal running in background state and the executing |
| 47 // operations state. |
| 48 SERVICE = 10, |
| 49 |
| 50 // Process is in the background running a receiver. Note that from the |
| 51 // perspective of oom_adj receivers run at a higher foreground level, but for |
| 52 // our prioritization here that is not necessary and putting them below |
| 53 // services means many fewer changes in some process states as they receive |
| 54 // broadcasts. |
| 55 RECEIVER = 11, |
| 56 |
| 57 // Process is in the background but hosts the home activity. |
| 58 HOME = 12, |
| 59 |
| 60 // Process is in the background but hosts the last shown activity. |
| 61 LAST_ACTIVITY = 13, |
| 62 |
| 63 // Process is being cached for later use and contains activities. |
| 64 CACHED_ACTIVITY = 14, |
| 65 |
| 66 // Process is being cached for later use and is a client of another cached |
| 67 // process that contains activities. |
| 68 CACHED_ACTIVITY_CLIENT = 15, |
| 69 |
| 70 // Process is being cached for later use and is empty. |
| 71 CACHED_EMPTY = 16, |
| 72 }; |
| 73 |
| 74 // Describes a running ARC process. |
| 75 // This struct is a subset of android.app.ActivityManager.RunningAppProcessInfo. |
| 76 struct RunningAppProcessInfo { |
| 77 // Name of the process. |
| 78 string process_name; |
| 79 |
| 80 // PID (within ARC's PID namespace) of the process. |
| 81 uint32 pid; |
| 82 |
| 83 // Current process state. |
| 84 ProcessState process_state; |
| 85 }; |
| 86 |
| 87 interface ProcessInstance { |
| 88 // Requests ARC instance to return the current process list. |
| 89 RequestProcessList() => (array<RunningAppProcessInfo> processes); |
| 90 }; |
OLD | NEW |