cf4b2542fae9d6c5d3788c6a935824094fb1c1ea |
|
17-Jun-2015 |
Yusuke Sato <yusukes@google.com> |
Trace Process.killProcessGroup calls in server/am/ to make it easier to find boot time regressions like 21813611 and 21861473. Process.killProcessGroup is a blocking call and usually takes about 50ms to finish on a recent device even when the process group contains only one process. Since Process.killProcessGroup tends to be called in a loop, the function can be a bottleneck. Bug: 21813611 Change-Id: I9c1727c0c0b321a30c96321198cc02f438496ded
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
ab4bb9d1fec685dab0fce9232c9a3477fab356b3 |
|
06-Jun-2015 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #21571700: Need to be smarter about how foreground... ...services get out of app idle Introduce a new process state to even better distinguish foreground services from other states. Rework the INTERACTION reporting to usage stats to do it less when the screen is off -- require that an app sit in the foreground service or top activity state for at least 30 minutes before we consider it an interaction. Also eradicate a bunch of logging in package manager. Change-Id: I94249e67f9a9c62e9a92ae104710e6747b16327e
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
d23e0d6901935588f9472bd7073fea0009581e9b |
|
16-May-2015 |
Dianne Hackborn <hackbod@google.com> |
Update power manager to track uid state like netstats. To follow the correct semantics for when restricts due to device idle can be applied, power manager need to know about uid process states like net policy so that it can allow wake locks from apps that are in the foreground. Since this is being added to a second place, I reworked things so that the activity manager now keeps track of per-uid process states and allows apps to register to listen to those, rather than having to track lower-level process states and transform them into an overall uid state. Both net policy and power manager use this new facility. Change-Id: I77359164c40d0f36fe1ef296dd9f9c3062431148
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
76126c62b2626eb9e6ebcea05a86d04bcb0d9f3f |
|
06-Apr-2015 |
Olawale Ogunwale <ogunwale@google.com> |
am 8e2ab719: am 694a8ef9: am baedbfbb: Merge "[ProcessStas] fix index out of bounds when add duration." * commit '8e2ab71935251cf47234cce47f4fa38590548cf9': [ProcessStas] fix index out of bounds when add duration.
|
baedbfbbb1181829bcffb1be3732b6f26a315bd8 |
|
06-Apr-2015 |
Olawale Ogunwale <ogunwale@google.com> |
Merge "[ProcessStas] fix index out of bounds when add duration."
|
4c5c6f43dd81031c2501e35b355fad5ebbf0ab87 |
|
25-Mar-2015 |
Ronnie Leng <ronnie.leng@gmail.com> |
[ProcessStas] fix index out of bounds when add duration. Root Cause: There is a defect in current ProcessStats design and following is the scenario: 1. Process A is started due to activity with name of A 2. Process A creates ProessState with application uid of A 3. Process B is started due to isolated service declared in application A with name of A 4. Process B uses ProcessState of Process A as it uses same application uid of A 5. Process B is finished and it leads to ProcessState marked as dead 6. Process A still keeps using the invalid ProcessState in dead state 7. IndexOutOfBoundsException is triggered when system tries to update process state of Process A Resolution: use process uid to replace application uid for getProcessStatLocked. Change-Id: I881ad9fc492c9e1a892c9e957180cebcfef8352d Signed-off-by: Ronnie Leng <ronnie.leng@gmail.com>
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
29382d29618f9f51fe8cde77d2dfd8e0b6e1071d |
|
31-Mar-2015 |
Wale Ogunwale <ogunwale@google.com> |
resolved conflicts for merge of 6abcec1d to master Change-Id: I28986f8863298a767a8290b02d5418d4d1d42d17
|
6793fc328ab4532202d86f64fe4fdbc3fb047bc4 |
|
31-Mar-2015 |
riddle_hsu <riddle_hsu@htc.com> |
[ActivityManager] Fix index out of bounds when updating next pss time. Symptom: System server crash. Root Cause: The value curProcState for array index is -1 if the process has not attached yet. Solution: Skip computing for process which is not attached or curProcState is nonexistent state. Change-Id: I71aaf45bb78d73097ebe9dfebf76b72f2d243232
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
e23149f1555303940d212b742707518b7f9f84ab |
|
07-Mar-2015 |
Wale Ogunwale <ogunwale@google.com> |
Converted some AMS log points to use ActivityManagerDebugConfig. Change-Id: I0563bafd29ae0bbe596ed8c06fcc573b5ead50b7
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
b9a5e4ad30c9add140fd13491419ae66e947809d |
|
04-Mar-2015 |
Dianne Hackborn <hackbod@google.com> |
Add new debug feature to automatically create heap dumps. Not yet working, unless you turn off SELinux enforcing. We need to update SElinux to allow the system process to give apps access to /data/system/heapdump/javaheap.bin. Currently watching can only be enabled through the shell, such as: adb shell am set-watch-heap com.android.systemui 1024 The last number is the process pss size in bytes, so this is asking us to warn if it goes about 1K which will be all the time. Change-Id: I2089e5db2927afca0bf01a363c6247ee5dcb26e8
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
b3d4cb369e37b1b7e85832cc035226dc7cc8f380 |
|
09-Jan-2015 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #18942959: Phone getting stuck then restarts after unplugging from Audi FastPrintWriter needs to have its own lock for each instance, or else one getting blocked can cause others to block and whacky deadlocks result. Also: - Improve error reporting of SystemConfig to tell you which config file is the problem. - Fix CoreSettingsProvider to not spew errors if a setting is not defined (it should just use a default value). - Get rid of noisy init output of ConditionProviders. - Reduce log noise of starting a process; move some of that information to ProcessRecord to print on demand. Change-Id: I1032d141ddd449968b74ab7b88ab36f2d228ad1a
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
d412563922f46feb4d3c3ba1500f34bddd21d73c |
|
22-Sep-2014 |
Dianne Hackborn <hackbod@google.com> |
Work on issue #17581375: Nexus 5 getting low on RAM Try to catch any cases where we remove a ProcessRecord from the LRU list when it may still have a process associated with it, report that this happened, and try to make sure the process is killed. Change-Id: Icd74439caba5e1c283c01a49a46dae926a00ba71
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
89ad456ea49cb62615ebdcac83a2515743bbe5fa |
|
25-Aug-2014 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #16311398: Limit number of documents a process can open In application processes, monitor for when we start getting close to the Dalvik heap limit, and ask the activity manager to try to prune old activity instances in that case. Add an explicit API for apps to ask that they have their own activity instances cleaned up, if they want. Fix some bugs in launching activities that were not correctly applying the "multi task" behavior in the appropriate situations of document-centric recents. Clean up the activity manager's process removal code to all share a common path. Add a new "Spam" option to ActivityTests, which continually creates new tasks, checking that the activity manager will now prune old tasks rather than letting the app run out of RAM. And while I was was doing this, I found problems with the path for bringing an empty task to the foreground -- it could make a new task instead of re-starting the root activity in the existing task. This is fixed, and some code in the recents UI for working around the bug is removed. And as long as I am doing that, we now have nice hooks in to the activity manager for AppTask to give some APIs for better managing the task, so add those along with more tests for these APIs in ActivityTests. We should look at also having the activity manager try to prune old tasks when it sees app processes being killed, to better balance memory use across multiple processes when some processes may host many documents. That however is for another CL... Change-Id: I2bb81c3f92819350c868c7a7470b35817eb9bea9
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
810c052d9b117217152c2a609ccec056a2a61d1e |
|
25-Jul-2014 |
Primiano Tucci <primiano@google.com> |
Cherry pick Introduce startIsolatedProcess private API in ActivityManager DO NOT MERGE The new API spawns a isolated process, using a custom uid, entrypoint and abi. Such API is used by the WebViewFactory to spawn its unpriviledged but trusted process (hence the fixed uid) which rewrites the rerlo file on boot / when an update occurs. Since both the ActivityManager service and the WebViewUpdate service live in the SystemServer their calls be dispatched locally and no binder interface needs to be exposed for the new startIsolatedProcess API. Original BUG:16403706 Original Change-Id: I327b59735c12698595e0dbcc4da5d759c9103b0a Bug: 16723226 Change-Id: Iecb49888e11eec9d302d9712953fd498db5821af
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
fee756ff91ab4d8f0e09ddb050d22d88ebb66ae7 |
|
17-Jul-2014 |
Dianne Hackborn <hackbod@google.com> |
Implement issue #16330060: Inform ActivityManager about WebView... ...state changes. Add a new API to tell the activity manager about a new dependency one process has on another package. Start using it already for when apps is Context.createPackageContext() to load code from another app. Also do some work on getting the monitoring of proc/uid states in shape so it can be used by unundled code, along with an AppImportanceMonitor class for doing so. Some small fixes and additions to VoiceInteractionService. Improve handling of unaccounted/overcounted battery use so that they aren't shown to the user unless they are significant. Change-Id: I22dd79a73f4e70103d3f8964494aebc8a31f971c
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
fdb1956ff71ff57fcdaafaaeb7f42c19de3d7c2f |
|
12-Jul-2014 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #15681802: Missing RESET:TIME in complete battery histories But wait, there's more! - Keep track of sync durations in the aggregated stats. - Add events for users that are running and in the foreground. - Rework the activity manager's tracking of stuff using battery in the background to be based on proc stats, which allows it to be better about determing when it should reset its tracking of background work. - Also add tracking of scheduled job execution, like we are doing for syncs. - And once I started hooking battery stats in to JobSchedulerService, I found a few things I couldn't stop myself from changing: (1) make it very explicit that it doesn't start scheduling jobs until we have reached the point in system boot where third party apps are allowed to run, and (2) adjust the various for loops to not use iterators. Change-Id: I69d812e27bcfee9e58a614f0f6b1c7545d7530b1
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
3251b9075246841a7b1ddecf10859b1abd858f33 |
|
20-Jun-2014 |
Dianne Hackborn <hackbod@google.com> |
Add some wifi tracking to battery stats. Now track supplicant state and wifi signal strength. Output looks like this: +12m45s235ms (1) 095 +wifi_full_lock +wifi_running wifi_signal_strength=3 wifi_suppl=scanning +12m46s095ms (1) 095 -wifi_full_lock wifi_suppl=associated +12m46s469ms (2) 095 wifi_suppl=completed +proc=u0a74:"com.google.android.videos" +12m52s103ms (1) 095 +wifi_full_lock wifi_suppl=disconn Also modify history dump so that when we hit a RESET or START command, we clear our previous history data, so the next event will include new data. This means if you are scanning through the output, you must at this point clear any binary stats you have like "running" or "wake_lock" or else you will continue to think they are on until whatever point later they get turned on and then back off. And a small bug fix in proc stats that would cause the system process to crash. Change-Id: Ibec416a1ef786d428bd0d1d86e6e3296c41f7648
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
f7097a5b697fedb6976774e55a51471405a23c0e |
|
13-May-2014 |
Dianne Hackborn <hackbod@google.com> |
Add kernel and native memory data to procstats. We now collect memory use data in the kernel and native application for aggregation in procstats. This should allows us to do aggregated summaries of how memory use is distributed across the system -- how much is free vs. how much is in use. Fix a bug in how we were tracking per-app version codes: apps that used a shared user id to have multiple packages run in the same process could get their version codes cross-wired. Now we keep track of version codes in the list of packages associated with a process. Bumped the checkin version code to 5, so that we can distinguish checkins that have this corrected data. Also fix a bug in battery stats monitoring radio state. Change-Id: I1c849f2df442df679a34ad7b0ca0c5870bfac8df
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
684bf34ee8acc41931fac23762b13e14a22011db |
|
30-Apr-2014 |
Dianne Hackborn <hackbod@google.com> |
Switch IProcessObserver to report process state When IProcessObserver was created, the only information we had for the state of a process was its "importance". Now we have the process state, which is much more useful. Switch to reporting that. Change-Id: Icdb3eea8cf96f4eff7ed3d584f940a1bd9cc3884
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
f0f94d129b6eb3c48624e915898d86d4f2de59ff |
|
18-Mar-2014 |
Dianne Hackborn <hackbod@google.com> |
Treat IME processes as hosting activities When we stop using an IME process, we still treat that process as if it is hosting activities (in the activity part of the LRU list), to try to keep it around. This is intended to help the experience of switching between IMEs, reducing the chance of your previous IME process being killed and thus requiring much more time to switch. Change-Id: Ie5793fd9b40d980fa18f80246326511ed6ae0597
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
8472e6189cd4e0520c047bdb28457abc728b373f |
|
24-Jan-2014 |
Dianne Hackborn <hackbod@google.com> |
Add app version codes to procstats. Now the per-package proc stats data is also per-app-version-code. In addition to changing the data structure to have one more SparseArray and passing a version code all over, this also required improving how we reset the stats so that we can prune a multi-package process record back to a single package. Otherwise, as you install updates to apps, the proc stats data would continue to explode as the data for each of those app's processes got turned to a multi-package due to tracking the old and new versions at the same time. This also bumps the checkin version code, since the package entries also include a new field for the app version code. Change-Id: I80de36addb0a75c7b08aef747c6f6c8012d01ee4
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
099bc627c463d9941e23e480f25a78a154429c55 |
|
22-Jan-2014 |
Dianne Hackborn <hackbod@google.com> |
Battery stats improvements. - Adjust total power use when there is unaccounted power so that our percentages don't end up > 100%. - Fix accounting of isolated uids to be against the owning real app uids. - Rework how we put cpu use into the battery stats to no longer need this uid name cache that can confuse the uid it is associated with. - Finish implementing events in the history, adding a string pool and reading/writing/dumping them. - Add first two events: processes starting and finishing. - Fix alarm manager reporting of wakeup alarms to be adjusted by the WorkSource associated with the alarm, so they are blamed on the correct app. - New "--history" dump option allows you to perform a checkin of only the history data. - Fixed BitDescription bug that would cause incorrect printing of changes in some states. Change-Id: Ifbdd0740132ed178033851c58f165adc0d50f716
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|
9158825f9c41869689d6b1786d7c7aa8bdd524ce |
|
22-Nov-2013 |
Amith Yamasani <yamasani@google.com> |
Move some system services to separate directories Refactored the directory structure so that services can be optionally excluded. This is step 1. Will be followed by another change that makes it possible to remove services from the build. Change-Id: Ideacedfd34b5e213217ad3ff4ebb21c4a8e73f85
/frameworks/base/services/core/java/com/android/server/am/ProcessRecord.java
|