Commit Graph

582 Commits

Author SHA1 Message Date
Dianne Hackborn
3c585e92ed am 52245ac7: Merge "Fix issue #5713576: Home redraws after returning from app on Nexus S 4G" into ics-mr1
* commit '52245ac7c41735c561199d9ec7e9577d592ca852':
  Fix issue #5713576: Home redraws after returning from app on Nexus S 4G
2011-12-05 19:09:19 -08:00
Dianne Hackborn
77eaaf04c6 Fix issue #5713576: Home redraws after returning from app on Nexus S 4G
Turn of destroying of activities during memory trimming.

Change-Id: Ibea415c13fca4f67f56adefe81a1495f5f9ad273
2011-12-05 19:00:42 -08:00
Dianne Hackborn
59aaeb9f2e am 55e81bd0: Merge "Improve how we manage the previous app." into ics-mr1
* commit '55e81bd0f219acbe00bbeebc8d33ef9c67a4aa60':
  Improve how we manage the previous app.
2011-12-01 12:49:24 -08:00
Dianne Hackborn
50685606cf Improve how we manage the previous app.
Setting it when a new activity is being resumed is too soon, because
things like an activity launching an exiting (without being seen by
the user) can knock out the real previous app that we want.

So now we set it when an activity is stopped.  At this point it is
going to move from the preceptible to background oom adj, so it is
a good point to determine whether it should be a previous app to
instead put it to that oom adj.  This also avoids things like
activities that start and immediately finish from impacting the
previous app.

Further, we keep track of the time each activity was last shown, and
use this to further filter what is set as the previous app.

Change-Id: I72d1cac4de0cc2d4598170296028f11b06918d4f
2011-12-01 12:23:37 -08:00
Dianne Hackborn
3d11e09ef4 am f8d20bd6: Merge "Turn off debug log." into ics-mr1
* commit 'f8d20bd6495883e98e23827a2e5ed03766fe483b':
  Turn off debug log.
2011-11-30 14:13:28 -08:00
Dianne Hackborn
bbb09aceb6 Turn off debug log.
Change-Id: I1d4612133580d493d81d0b15752e009202e95ce0
2011-11-30 11:40:40 -08:00
Dianne Hackborn
3538271d85 am 1808f214: Merge "Fix issue #5636525: ANR observed in setup wizard after changing language" into ics-mr1
* commit '1808f214b0cd7a62628b273b93a1ea688f262565':
  Fix issue #5636525: ANR observed in setup wizard after changing language
2011-11-29 15:31:13 -08:00
Dianne Hackborn
8bf0aa9b2b Fix issue #5636525: ANR observed in setup wizard after changing language
We could sometimes allow a process to be killed while still waiting for
an activity in it to finish stopping.

Change-Id: Ibf89665c4ad6da6be22de04a82b19ef778a7fda0
2011-11-29 13:54:43 -08:00
Dianne Hackborn
d9c1e6d966 am 50b20425: Merge "Another attempt at getting OOM reports to batch." into ics-mr1
* commit '50b2042502bc459b40430fe3b3b83d7d61e5daf9':
  Another attempt at getting OOM reports to batch.
2011-11-29 13:08:52 -08:00
Dianne Hackborn
672342c309 Another attempt at getting OOM reports to batch.
We now generate a stack-trace looking thing at the top of the report.

Also fix a bug I hit where the phone window manager was sending a
broadcast before the boot had completed.

Change-Id: I0cee16180e4d05c9bd3fe715212a28f504ec91ac
2011-11-29 12:55:50 -08:00
Dianne Hackborn
61ecac1a37 am 4c6a65bc: Merge "Maybe fix issue #5627399: java.lang.RuntimeException - While sign in..." into ics-mr1
* commit '4c6a65bc319feab120d40553d93b160908db2f6d':
  Maybe fix issue #5627399: java.lang.RuntimeException - While sign in...
2011-11-16 14:06:06 -08:00
Dianne Hackborn
ee9aef0b42 Maybe fix issue #5627399: java.lang.RuntimeException - While sign in...
...through setup wizard after wipe data

Deal with finish() being called when there are no running activities
on the stack.

Also some improved debugging output.

Change-Id: Ia1d3f3f7e7b79c06ca95c738081322fc80282e0d
2011-11-16 13:21:46 -08:00
Dianne Hackborn
ae3184f75d am cdec187a: Merge "Whoops, need to acquire lock." into ics-mr1
* commit 'cdec187a27b2acc34cd4df26b836b83362527d6a':
  Whoops, need to acquire lock.
2011-11-15 19:06:19 -08:00
Dianne Hackborn
7aa6d31240 Whoops, need to acquire lock.
Also increase time between reports to try to reduce the amount
of redundant spam we get.

Change-Id: Iedd7d743826fffa62ee431073cb7dfb49a00cea0
2011-11-15 16:12:30 -08:00
Dianne Hackborn
6cc19eae6b am 5f11d73c: Merge "Improve low memory dropbox reporting." into ics-mr1
* commit '5f11d73c918de72368ac5605c50f5fb9ac0457cb':
  Improve low memory dropbox reporting.
2011-11-15 14:42:13 -08:00
Dianne Hackborn
d8c98fee02 Improve low memory dropbox reporting.
The msg is now constructed to try to bin these reports in
interesting ways.  We'll see.  Also change the tag name from
watchdog to lowmem, since sharkey is kindly taking care of
the back-end to handle this.

Improve how we put processes into low memory states to better
poke things like home and the previous app.

Also clean up some debug output, and add a few new am comment
options for controlling the current debug app.

Change-Id: I562a931a95244a2727bb7a6e1fd80dec259cdae2
2011-11-15 14:15:58 -08:00
Dianne Hackborn
0dfae92851 am 91c2b5ce: Merge "Improve low memory reporting." into ics-mr1
* commit '91c2b5cebe981fb894b7e6f053a8593c1d9db80f':
  Improve low memory reporting.
2011-11-15 09:25:20 -08:00
Jason Simmons
fe48e39aeb resolved conflicts for merge of f10a5364 to ics-aah
Change-Id: I2d6ba86d7a1c4170a30805215ab727fbeac99726
2011-11-14 19:03:26 -08:00
Dianne Hackborn
91c2b5cebe Merge "Improve low memory reporting." into ics-mr1 2011-11-14 18:36:50 -08:00
Dianne Hackborn
8ec8d41aa6 Improve low memory reporting.
Change-Id: I42d56ab8026fd02232dd11dbfbc513fbc0a1a851
2011-11-14 18:27:24 -08:00
Dianne Hackborn
813075a678 Maybe fix issue #5405788: Device continuously opening and closing...
...the "Complete action using" dialog

I have never been able to reproduce this consistently, but here is
another stab in the twilight.  It looks like during boot we have
a potential race where we could reset the config sequence number after
we had gone through a config change, causing ActivityThread to ignore
a following config change.  Maybe this change will help.

Change-Id: I4b731df5fd5c63894ca2e9bd34693b31ab1c0565
2011-11-14 17:45:19 -08:00
Dianne Hackborn
391545ed22 am be70785f: Make activity manager more robust in the face of app activity leaks.
* commit 'be70785f9b2dbd2c52fd8676d99bc64b22784201':
  Make activity manager more robust in the face of app activity leaks.
2011-11-11 16:13:23 -08:00
Dianne Hackborn
be70785f9b Make activity manager more robust in the face of app activity leaks.
This came up from bug #5601885: Memory increase (leak?) in system_server
Stingray MR1

This isn't *really* a leak in the system process -- it is a leak in an
application process that is causing the system process to keep around
a bunch of ActivityRecord objects longer than it should, until that app
process is ultimately killed.

Unfortunately these days leaking an ActivityRecord also often means
leaking a thumbnail, which is a big slab of memory.

So make the activity manager better about this, using a weak reference
from the handle the object has so we can still clean away most of the
state associated with the ActivityRecord even if the client side leaks
its own reference.

Change-Id: Idbab45e09749cdfb54899203da7981e7b3576e25
2011-11-11 15:05:59 -08:00
Jason Simmons
f981686779 resolved conflicts for merge of 3af8b88d to ics-aah
Change-Id: I2b68cd7c904e68a16565b7274560e7105c643c87
2011-11-09 10:08:21 -08:00
Dianne Hackborn
e4d4fbc8c0 Add drop box reports of low memory.
We are tagging these as "watchdog" to make them visible in the
reporting tools.

Also new am command to kill all background processes, mostly to make
it easier to test this stuff.

Change-Id: Ib9dc4747cd8bd44156fdf11d6a087cd4272203eb
2011-11-08 15:44:34 -08:00
Dianne Hackborn
23d1092a75 am 6581043a: am 7311bd4b: Merge "Print out memory info when we get into a low memory situation." into ics-mr0
* commit '6581043a44ab46a47f09080eeb7c9fc9d0a2d0c0':
  Print out memory info when we get into a low memory situation.
2011-11-05 07:36:22 +00:00
Dianne Hackborn
6581043a44 am 7311bd4b: Merge "Print out memory info when we get into a low memory situation." into ics-mr0
* commit '7311bd4b709750384b058d8e988e2e983c97b3f2':
  Print out memory info when we get into a low memory situation.
2011-11-05 07:34:03 +00:00
Dianne Hackborn
04d6db380f Print out memory info when we get into a low memory situation.
Change-Id: I2c8b8847a0f38135d8bf9ff9b7198517c3b0262e
2011-11-04 20:07:24 -07:00
Dianne Hackborn
87aa95b18c am 17bd9a22: Merge "More performance work:" into ics-mr1
* commit '17bd9a22ec993fc9eba060950bc5cecd1e06ffb1':
  More performance work:
2011-11-03 05:32:46 +00:00
Dianne Hackborn
28695e0c70 More performance work:
- ActivityManager now keeps track of previous app as you
  move across the home app.
- Better debug info about why an activity is being destroyed.
- New performance tests.

Change-Id: I3a5ae7cb1b9f1624c6792a4f6184353f532b8f3b
2011-11-02 22:08:41 -07:00
Joe Onorato
e332aa1431 Make ActivityManagerService just kill apps when they crash on tungsten.
Change-Id: I62e6a7b5e0a9b19e4906219292eb0ac9b9774141
2011-11-02 20:50:08 -07:00
Dianne Hackborn
f30880d154 am 39cec406: Merge "Add new OOM adjustment for the "previous" process." into ics-mr1
* commit '39cec40697ab3d1d106e0c0c21458b2085c96f00':
  Add new OOM adjustment for the "previous" process.
2011-11-02 04:12:26 +00:00
Dianne Hackborn
f35fe23669 Add new OOM adjustment for the "previous" process.
This is the process that you had previously been interacting with
in the UI before the current one.  Treating it specially should
allow us to improve the scenario of switching back and forth
between two apps.

Also add API constent for ICS MR1.

Change-Id: Ib3fe4df36b270be11dfd6b7e8d107c9994058a4d
2011-11-01 19:25:20 -07:00
Dianne Hackborn
88175571f2 am f136aa34: Merge "Various performance and other work." into ics-mr1
* commit 'f136aa341abaaf7fd6f7632d41a30b2989d93985':
  Various performance and other work.
2011-11-01 17:44:04 +00:00
Dianne Hackborn
2c84cfc001 Various performance and other work.
- IME service now switches between visible and perceptible depending on
  whether it is being showm, allowing us to more aggressively free its
  memory when not shown.

- The activity display time is no longer delayed by the activity
  transition animation.

- New -R (repeat) option for launching activities with the am command.

- Improved some documentation on Loader to be clear about some methods
  that apps should not normally call.

- FrameworkPerf test now allows you to select individual tests to run.

Change-Id: Id1f73de66dc93d63212183958a72119ad174318b
2011-10-31 16:52:34 -07:00
Ed Heyl
92537e6ff2 merged by hand (services/java/com/android/server/PowerManagerService.java needs to be reviewed)
Change-Id: I86d1111d86cd1646ebc8a88d58aa393089e9f928
2011-10-31 06:06:27 -07:00
Dianne Hackborn
e02c88af79 Work on process management.
Introduce a new concept of "B" services.  All running services are
classified as either A or B.  B services are later in the LRU list.
Their oom_adj is after the home app.  This allows us to better pick
services to kill based on how long they have running, and should
reduce the amount that we end up killing the home app.

This temporarly turns on a debug log when the oom_adj of a process
is changed.  Sorry, I know it is noisy.  This is needed to try to
track down why some processes are being killed.

Also add a flag to the SyncManager's service binding to allow the
syncing process to be more aggressively killed if it has done UI.
This is to address cases we have seen where sync is causing an 80MB
gmail process to be kept around, preventing other process from running.
Now what will happen is that the syncing process will aggressively be
killed by the system, and can then be restarted in a much lighter-weight
state.

Do a little tweak in the power manager to allow us to still do smooth
brightness changes even when the fancy TV off animation is in use.

And get rid of a debug log in the window manager that was accidentally
left in.

Change-Id: I64a8eeaaa1f096bab29c665fbff804c7f1d029e2
2011-10-28 17:15:08 -07:00
Jeff Sharkey
a353d2654a Differentiate between system_server and unknown.
Bug: 5531966
Change-Id: I2b64b04f3f5a8760a2314729e8b90e9dd6699cb4
2011-10-28 11:13:27 -07:00
Mike Lockwood
d070dca89f Fix problems dispatching media button events on headless devices
Change-Id: I57444f2b0b51b08fda561d5acecb66316fb3f4a7
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-10-28 10:14:50 -04:00
Mike Lockwood
bc06928ef3 ActivityManager: Make sure BOOT_COMPLETED Intent is sent when running headless
Change-Id: Ibf4ea989ef031a93d96ee0a0f7b24284edf2517c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-10-28 10:14:49 -04:00
Mike Lockwood
a0a8b249bc Add headless mode for running the framework without the surface flinger
Enabled by setting system property ro.config.headless to 1
This will allow the framework to run without starting activities,
system UI and the keyguard.
Framework can still run services, content providers and broadcast receivers.

Change-Id: I96606609a4ede57a2c4c7fb2b6ff060ebf31e3b4
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-10-28 10:14:47 -04:00
Dianne Hackborn
98cfebc6e8 Fix issue #5461497: Landed on Welcome screen after a tap on 'Next' in Screen 500
The basic problem was that at some points during setup wizard, this would
happen:

1. The app's process is killed.
2. The app's process is restarted, but not to actually resume the
   setup wizard activity, just to put it in the stopped state.
   When doing this, the saved state is cleared but the app will
   never provide a new one.
3. The app's process is killed again.  At this point, because the
   saved state is cleared, the activity is completely removed.
4. Eventually the entire activity stack becomes empty, and a new
   setup wizard activity needs to be created as the home app.

There is a combination of bad stuff going on here.

First, why is the process being killed?  At this point the setup
wizard is the home app, so it shouldn't be killed.  There were two
reasons why this was happening:

- CryptKeeper still was not completely cleanly going away.  To fix
  this, I removed the check in the activity manager to not allow
  an activity to finish if it is the only activity on the stack and
  maybe-kindof looks like the home app.  This really wasn't necessary
  (we always take care of starting a new home activity if we find the
  stack is empty), and outright dangerous with all of these things
  purporting to be home but not.

- There was an issue in computing the oom_adj where the home app
  would not be marked as "not hidden", and if we had to re-compute
  its oom adj in the current sequence would then give it an
  adjustment as a background process...  and with all the processes
  we spin through during boot, it quickly got down to background
  #16 and killed.

Second, what is going on with the state?  This is easier, the code
in the activity manager to create a new activity but put it in the
stopped state was still clearing the saved state.  The saved state
should only be cleared when going in to the resumed state.  When
going in to the stopped state, we can just keep holding the same
saved state.

Change-Id: I7d21cdcfa082d98ca70c79d9923e29605ee4353e
2011-10-18 13:41:10 -07:00
Dianne Hackborn
38cc8960cb Fix issue #5446988: WindowManager warns BOOT TIMEOUT,...
...dev.bootcomplete flags is set before boot animation is out

Also:

- Fix crash in recent apps if the intent for an old app didn't
happen to have the new task flag set.
- Fix issue where a crash in system UI would cause the crash
dialog to be displayed below it, effectively locking the UI.  Now
the crash dialog for persistent processes is shown above everything
else.

Change-Id: I0312001a92beeae5f644c7c3e5c5e19f6716df36
2011-10-13 12:55:57 -07:00
Kenny Root
3abd75ba3a Add DUMP permission checks to services
Some services have info that is not readily available any other way. Add
a permission check to those services.

Bug: 5389201
Change-Id: I5a9724ec89e1c11ef7813eeb52a6a05b3ea92af5
2011-09-29 11:04:15 -07:00
Dianne Hackborn
90c52de286 Fix issue #5173952: Opening a Notification From Lock Screen...
...Should Skip Unsecure Lockscreen (ICS)

Also while I am in there, clean up logging of intent objects to include
even less sensitive information, while showing the true Intent in dump
output (since apps can't get to that).

Change-Id: I35fed714645b21e4304ba38a11ebb9c4c963538e
2011-09-23 13:39:33 -07:00
Dianne Hackborn
80a7ac1063 Fix issue #5321282: Force Stop Button in Battery Screen Not disabled correctly
If the app had activities still finishing, when we checked whether it was
now stopped we would get told no.  Also some other improvements:

- Schedule an idle as part of the force stop, to get any finishing
  activities out of the stack soon rather than waiting for some activity
  to idle.
- Don't filter out stopped system apps.  This is dangerous because
  system apps may have no way for the user to explicitly launch them,
  so they could get put into a stopped state for which there is no way
  to get them out.  Also if the user really wants a system app to not
  run, the new disabling mechanism is more appropriate.

Change-Id: I34003f21dac29e2ca0f66a23b88c710de41bab99
2011-09-22 18:32:52 -07:00
Dianne Hackborn
2a6bcda03b Fix issue #5253941: ICS ignoring provider's android:process flag
Provider was not being removed from the class map because it was using
the wrong key.  D'oh.

Also a little cleanup.

Change-Id: I318e8b1a265318ac1474e0a7f14f27f89f357505
2011-09-21 15:07:05 -07:00
Dianne Hackborn
e123612c08 Merge "Work on issue #5144065: Tap on Music icon from Home screen - a different app opens" 2011-09-09 14:53:53 -07:00
Dianne Hackborn
e5ba16a7af Work on issue #5144065: Tap on Music icon from Home screen - a different app opens
When force stopping an app, when removing its activities also finish any
activities from other apps above it in the task.  This avoids some situations
where the task gets into a bad state where its root becomes a different app.

Change-Id: I79e5cd520ae321bec80adefd2ccc2b0370ace372
2011-09-09 14:48:13 -07:00
Dianne Hackborn
eeb1dca393 Fix issue #5139085: Some Recents items can't be killed
Change-Id: Ib4fa413266c4aa2223576ce0299be743358fdc26
2011-09-08 13:30:11 -07:00