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
|