A long time ago, we had a concept of an "empty" process -- this was
a process that didn't have any interesting components in it, which
would be placed below everything else in the LRU list.
Empty processes didn't work out well, because you could get into
bad situations where you have filled your LRU list with things that
have hidden activities, pushing empty processes to the bottom and
being immediately killed as soon as they go into the list. So this
was removed.
This change brings the concept back, but in a slightly different
form, to address a more specific problem: for people who are switching
between N different applications, we would like to try to keep those
activities available in RAM in a consistent manner. Currently the
previous activities would be killed often quickly and suprisingly,
even on devices with lots of RAM. This is for two reasons:
(1) As you sit in one application, other things going on in the
background will go to the top of the LRU list, pushing down the
previous apps you have visited, even though you aren't aware at all
of these other things executing.
(2) There is a hard limit on the number of background processes
(currently 16) after which they are killed regardless of the amount
of available RAM. This is desireable because if there is lots of
RAM we can end up with tons and tons of processes sitting around,
not really serving any purpose, but using up resources.
To improve the situation, we have again a concept of "empty" processes
but now it means one with no activities. Processes that aren't empty
but in the background list are called hidden. We maintain these as
two parallel lists, each getting half of the process limit: so with
a 16 process limit, you can have at most 8 empty and 8 hidden processes.
This allows us to consistently keep up to 8 recent applications around
for fast app switching; we will also keep around 8 other processes to
make it more efficient for background work to execute again if it needs
to.
Change-Id: Iee06e45efc20787da6a1e50020e5421c28204bd7
Use notification manager as an indicator of when to stop the screensaver
due to immediately-needed user interaction.
Any notification with a fullScreenIntent will now exit the screensaver.
Bug: 6976796
Change-Id: Id91cd4c32f3fad018b56f4dfe24b37110bab32d8
Propogate 802.11 tsf details per scan result to the applications
and open up hidden access points
BUg: 2961159
Change-Id: I05658fd0cf010c0b36193db3f79422640e8b3a6b
If the incoming request is to notify of storage unmounted, don't mess
with apps that are in internal ASECs.
Bug: 6948035
Change-Id: I63ffb895c4d994ee03a5a9bd6bb23f69c88e2a87
Moved a bunch of methods from PackageManager to UserManager.
Fix launching of activities from recents to correct user.
Guest creation APIs
Change-Id: I0733405e6eb2829675665e225c759d6baa2b708f
TYPE_DREAM windows are now considered for relevant window
flags alongside application windows.
Bug: 6961616
Change-Id: Idee3303276a8b69c7f07de1d6acdce64c6e1b863
Make signal strength parsing common for all modes
Add Support to calculate LTE
level for UI signal bar display
Update the lowest of Evdo/ CDMA dbm value
in phone status instead of using only CDMA dbm
Change-Id: I41bce658c536dc30558224c8ca76d6d70afb78ee