Commit Graph

1598 Commits

Author SHA1 Message Date
Craig Mautner
db5c4fb864 Fix incorrect looping limits.
One cannot iterate across an entire list if one both removes an entry
and increments the index into the list. Do one or the other or you
will end up with bugs like 11556768 which is now fixed.

Change-Id: I57f1ad13075a005cae3c1cbfae10e230d9af143a
2013-11-06 13:55:08 -08:00
Dianne Hackborn
d64744cc76 Merge "Help out with issue #11497149: Clock app crashes when opened during..." into klp-dev 2013-11-05 18:17:01 +00:00
Dianne Hackborn
23037419e3 Help out with issue #11497149: Clock app crashes when opened during...
...the repeated hour in DST transition

Record the last crash info that caused an app to be marked as a bad app.

Also for the battery work, add a system property tuning parameter to be
able to control the background service start delay, so we can easily
run experiments with it turned off if we want.

Change-Id: Ic33dc464d8011c918a39b912da09ea4f0fb28874
2013-11-04 18:11:29 -08:00
Craig Mautner
76be9d2595 Remove harmful visibility test.
Previously inserted requirment that an activity be visible in order to
block visibility of the home screen is removed.

Fixes bug 11515761.

Change-Id: Ia47cfb4a0b6d90bbbca2b42e12a6048b1644d7cb
2013-11-04 16:01:22 -08:00
Dianne Hackborn
7b492723e4 Fix issue #11223338: Not retaining service started state while restarting
Actually, the state representation seems fine, but there was a problem
we are now hitting where the restart interval could get reset back to
0 when it shouldn't be.  Also tune the restart parameters a bit.

Change-Id: I364f38e52f5387b2ec3f81009ccc78976ff48891
2013-11-01 10:32:46 -07:00
Dianne Hackborn
fbefe9bf74 Merge "Fix issue #11168649: LRU logic for Chrome renderers seems..." into klp-dev 2013-11-01 00:18:12 +00:00
Dianne Hackborn
db92608de9 Fix issue #11168649: LRU logic for Chrome renderers seems...
...not to work on KitKat (was: Janky exit animation)

Reworking the LRU list (splitting it into an activity vs. empty
section) accidentally broken the old behavior of "client activity"
processes being prioritized with activity processes.  In fact, we
were no longer marking "client activity" processes at all.

In this change, we rework how we manage "client activity" processes
by putting them on the main activity LRU section.  This is generally
simple -- ActiveServices now keeps track of whether a process is
a "client activity" process based on its bindings, and updateLruProcess
treats these as regular activity processes.  However, we don't want
to allow processes doing this to spam our LRU list so that we lose
everything else, so there is some additional complexity in managing
that list where we spread client activity processes across is so
that the intermingle with other activity processes.

The rest of the change is fairly simple -- the old client activity
process management is gone, but that doesn't matter because it wasn't
actually running any more.  There is a new argument to updateLruProcess
to indicate a client process it comes from (since we now need to update
this based on bindings) which is just used to limit how high in the
LRU list we can move things.  The ProcessRecord.hasActivities field is
simply removied, because ProcessRecord.activities.size() > 0 means the
same thing, and that is actually what all of the key mechanisms are using
at this point.

Finally, note there is some commented out code of a new way to manage
the LRU movement.  This isn't in use, but something I would like to
move to in the next release so it is staying there for now for further
development.

Change-Id: Id8a21b4e32bb5aa9c8e7d443de4b658487cfbe18
2013-10-31 16:32:44 -07:00
Craig Mautner
91eb54d119 Merge "Do not fetch tasks that don't have activities." into klp-dev 2013-10-30 17:13:20 +00:00
Igor Murashkin
e5c1208ef9 Merge "am: Increase dropbox buffer size to 256KB (from 128KB)" into klp-dev 2013-10-29 21:20:54 +00:00
Craig Mautner
5cbaaa3cb5 Do not fetch tasks that don't have activities.
Fixes NullPointerException bug 11432611.

Change-Id: I62e765750e2613ecfb79e13021631ed2cd4e79f3
2013-10-29 13:39:26 -07:00
Dianne Hackborn
3a702cb5d7 Merge "Fix issue #11391003: Allow dumpsys meminfo to be used with native processes" into klp-dev 2013-10-28 21:59:18 +00:00
Craig Mautner
dfe0d9a040 Merge "Change order of operations so flag is not overwritten" into klp-dev 2013-10-28 14:38:32 +00:00
Dianne Hackborn
e77187d018 Fix issue #11391003: Allow dumpsys meminfo to be used with native processes
Change-Id: I005e4dc763deafac95dc3aa6261c06d1808fdaff
2013-10-25 16:32:41 -07:00
Dianne Hackborn
19d79659ee Merge "Fix issue #11374840: adb shell am startservice not working any more" into klp-dev 2013-10-25 22:30:35 +00:00
Dianne Hackborn
de0e83bc39 Fix issue #11374840: adb shell am startservice not working any more
The startService() and stopServie() calls had a redundant check for
the incoming user ID being valid, but with its own custom implementation
that doesn't match the normal handleIncomingUser flow.  In fact, for
both of these we are going to do handleIncomingUser anyway when we get
to retrieveServiceLocked(), so there was just no need for this.

Change-Id: I14409a03781a14a5f1a786aceb31dcc77efb062c
2013-10-25 14:34:18 -07:00
Craig Mautner
b53d97c457 Change order of operations so flag is not overwritten
The effects of the flag, Intent.FLAG_ACTIVITY_TASK_ON_HOME was being
overwritten by the call immediately after it was set. Changing the
order of operations leaves the effect intact.

Fixes bug 11376962.

Change-Id: I27371e0efeb0c08d1e14514a9e3a63157f6d34d8
2013-10-25 11:54:37 -07:00
Craig Mautner
6f6d56fd4d Do not take screenshots when launching activities...
Unless they are in another task.

Fixes bug 11374158.

Change-Id: I961d4ce9520bc84a182806db2ccb072501c8357a
2013-10-24 16:02:07 -07:00
Craig Mautner
4d4dd1e173 Merge "Search further than one task for fullscreen." into klp-dev 2013-10-23 22:35:25 +00:00
Craig Mautner
39e1c5a75e Search further than one task for fullscreen.
When a non-fullscreen task over home launches another non-fullscreen
task then the home task might not be displayed. Looking all the way
down the task stacks until reaching a visible, fullscreen activity or
home provides the right information.

Fixes bug 11273803.

Change-Id: I8dab0956c1cda06ddb7850ea3ffac7f6a223c6ad
2013-10-23 15:14:22 -07:00
Igor Murashkin
44d04aa0ac am: Increase dropbox buffer size to 256KB (from 128KB)
Minor changes for dumping stack traces:
- Print the native traces right after foreground/persistent apps
- Also include mediaserver, sdcard, and surfaceflinger in traces

Bug: 11321322
Change-Id: Ic09b7da316a5f197dda0ac3bde06f75574cc2166
2013-10-23 14:43:05 -07:00
Dianne Hackborn
2d76a1a068 Merge "Fix issue #11323037: Android apk incorrectly marked as running in app processes" into klp-dev 2013-10-23 17:44:11 +00:00
Dianne Hackborn
237cefbcee Fix issue #11323037: Android apk incorrectly marked as running in app processes
The android package is now a special case, not being added to the package list
when creating a multi-process component.  There is no need, since this package
is actually the framework itself which must be loaded in every process.

Also cleaned up some of the procstats dump output to help see what is going
on here.

Change-Id: If65d35ecd562f3154bdebfded69c454af6ce8c96
2013-10-22 19:15:49 -07:00
Craig Mautner
4000630999 Merge "Check for home activity when switching focus." into klp-dev 2013-10-22 20:01:12 +00:00
Craig Mautner
04f0b70c13 Check for home activity when switching focus.
When finishing or stopping an activity the code was automatically
refocusing to the next activity on the same stack independent of the
task's onTopOfHome flag. When the activity eventually finished or
stopped it would then honor the onTopOfHome flag.

This fix examines the onTopOfHome flag and arranges the focus
correctly if home is the next activity to run.

Fixes bug 11318263.

Change-Id: I73a8f5e82de04b01acaffe366b085f9e475e1451
2013-10-22 12:31:01 -07:00
Craig Mautner
7408234985 Merge "Make sure mFocusedStack is never the home stack." into klp-dev 2013-10-22 17:36:57 +00:00
Craig Mautner
d1bbdb462a Make sure mFocusedStack is never the home stack.
There were circumstances where mFocusedStack could be assigned the
home stack. If this were ever to occur then all subsequent tasks would
be put on the home stack. This fix ensures that there is no way that
mFocusedStack will ever be assigned to the home task.

Fixes bug 11271189.

Change-Id: I7ddd9b6bcbf2787cbe2f44b461ad057ae2241f00
2013-10-22 09:53:20 -07:00
Craig Mautner
19d9bd54d3 Do not delete stacks that are not empty.
The possibility existed that an activity was set to a task that it was
already being set to. If that were to happen, and it was the only
activity in the only task of the stack the stack would be deleted.
This fixes that situation and logs it as well to confirm that it does
fix bug 11272935. Logging to be deleted upon successful monkey run
exhibiting the log.

Change-Id: I436fdcc9a3734adad81d3ef90f29b93b3ac4dfcd
2013-10-21 20:05:26 -07:00
Dianne Hackborn
fc69e2b5ad Merge "Increase size of broadcast history lists on non-svelte devices." into klp-dev 2013-10-17 16:13:24 +00:00
Dianne Hackborn
4c51de4933 Increase size of broadcast history lists on non-svelte devices.
Change-Id: Ibd25379778dac8eb1aed30d4788e032f290d9b69
2013-10-16 23:34:35 -07:00
Dianne Hackborn
2a272d42a3 Fix issue #11217255: Setup Wizard ANR when adding new user profile from settings.
Two problems addressed here:

- If a call to startActivity() comes in on an activity that is finishing, we can
  end up putting the new activity in a stack that isn't actually in use any more
  (if the finishing activity is the last one on that stack).  This is a bad case,
  anyway, so if this happen the treat it as not being called on an existing
  activity and switch to NEW_TASK to find a task for it.

- There was a bug in handling PACKAGE_CHANGE broadcasts that would result in the
  app's processes being killed, even though the cleanup through the activities
  was done.  This could leave the activity stack in a bad state.  Fix this to
  correctly provide an app id for the changing package so that its processes are
  killed.

Change-Id: Iece04e0cf95025c3d30353d68bf3d14fd39d44c3
2013-10-16 13:34:33 -07:00
Craig Mautner
4270ebc7db Merge "Remove debug logging." into klp-dev 2013-10-16 00:27:50 +00:00
Craig Mautner
a7f2bd4da7 Remove debug logging.
Change-Id: I5d7c11e8b8525bfc8eb87bb0fff4f71337b4a39d
2013-10-15 16:13:50 -07:00
Craig Mautner
4f1df4faed Restore window manager stack order on user switch.
Only the activity stacks were being restored. Also add needed debug
logs.

Fixes bug 11223831.

Change-Id: Ief42688721c49e8cea14277619c797bf7c25b859
2013-10-15 15:44:14 -07:00
Craig Mautner
cf8a6ca9aa Merge "Clear displayStartTime whenever starting activity." into klp-dev 2013-10-15 01:28:48 +00:00
Craig Mautner
1e8b872edc Clear displayStartTime whenever starting activity.
setLaunchTime() was only being called from resumeTopActivityLaunched()
but also needed to be called from minimalResumeActivityLocked().

Fixes bug 11104901.

Change-Id: I35c994562dffaf75de014021c775e398224eb3a3
2013-10-14 18:24:52 -07:00
Dianne Hackborn
878deb3c7b Fix issue #11223335: APR: Lots of failures in procstats due to...
...bad cleanup of crashing processes

We now have a special path for crashing processes, to silently
clean up their state.

Also some tweaks to Log/Slog.wtf to get better stack crawl
summaries in APR.

Change-Id: Ieced26989907a6e7615b6fa033813fced78d7474
2013-10-14 17:15:40 -07:00
Jeff Sharkey
b5da7b23df Merge "Throw when taking non-existant Uri permission." into klp-dev 2013-10-14 17:24:14 +00:00
Jeff Sharkey
582f712406 Throw when taking non-existant Uri permission.
Bug: 11080911
Change-Id: Ib73a20f497b447aebe69c88266369605e69a7812
2013-10-14 10:01:33 -07:00
Craig Mautner
ea7c1e24a2 Merge "Add null check when determining mOnTopOfHome" into klp-dev 2013-10-14 16:38:48 +00:00
Craig Mautner
d99384d067 Add null check when determining mOnTopOfHome
Fixes bug 11198896.

Change-Id: I7b35c8a7156f03f8dab0598b55ef327e593f6427
2013-10-14 07:09:18 -07:00
Craig Mautner
e1db0dd089 Test for task in front must include stack in front.
The CL that ensured that a dying task must be in front of the user
(ag/374996) only checked that the task was at the top of /a/ stack,
not on top of the frontmost stack. This checks the stack for being
frontmost before switching to home.

Fixes bug 11208762.

Change-Id: I43f6d380e7a880ec19db03711ada6c7437e15f73
2013-10-14 02:20:57 +00:00
Craig Mautner
2219b751b6 Only return to home if the foreground task is removed.
The previous fix that returned to home when a task on top of home was
removed was too broad. If that task was not the foreground task it was
not a good idea to bring the home screen to the front.

Fixes bug 11198552.

Change-Id: I14e5fdc167011f25e0e8490c3e52c5c1dcbffbff
2013-10-12 11:26:08 -07:00
Craig Mautner
8e5695778f When removing a task that was on home, put home on top.
Killing an app that was launched from home was not relaunching home.
Previous situations relaunched the next app (i.e. home) based on the
task flag. However, when an app dies the relaunch is deferred until
the TaskRecord has long been forgotten. This fix rearranges the stacks
immediately upon the TaskRecord being removed from the stack. Then the
next resumeTopActivities() call will start the home task.

Fixes bug 11189555.

Change-Id: I0e09350a7db55ea8b38cce7bf4b69923a6b99494
2013-10-11 17:36:59 -07:00
Craig Mautner
09cb9bdcc8 Merge "Add test for topmost home stack activity being home." into klp-dev 2013-10-11 19:50:03 +00:00
Craig Mautner
760b2314d9 Add test for topmost home stack activity being home.
And restarts home if test fails.

Fixes bug 11118615.

Change-Id: I3b6c544d479b467f10febff512798c2db8e32f74
2013-10-11 11:57:07 -07:00
Craig Mautner
3474040486 Make an exception for screenshot optimization.
Screenshots were not being made for tasks with the flag
FLAG_EXCLUDE_FROM_RECENTS set. But if the task is in the foreground
the shot should be taken even with the flag set. This fix adds a test
for tasks being in the foreground.

Fixes bug 11170567.

Change-Id: If42db7f43ed1dd8d2b16b68824adc813b31c94f0
2013-10-11 11:05:35 -07:00
Dianne Hackborn
fa8830715d Merge "Fix issue #11175600: Proc stats is aggregating stats in the wrong direction" into klp-dev 2013-10-11 01:29:26 +00:00
Dianne Hackborn
59da67900d Fix issue #11175600: Proc stats is aggregating stats in the wrong direction
Change-Id: I7f06fbde8f52296cb2932003b4da77b2c68a6011
2013-10-10 18:27:24 -07:00
Dianne Hackborn
2c09e8cdf6 Merge "Fix issue #11157301: Bad process stats when apps are binding to long-running services" into klp-dev 2013-10-10 23:11:59 +00:00
Dianne Hackborn
32366b29c4 Fix issue #11157301: Bad process stats when apps are binding to long-running services
We now treat PROCESS_STATE_TOP more specially.  When a process has another
client bound to it that is TOP, it will only allow itself to go in the TOP
state if it is not already running for another significant reason.

Change-Id: Ia3856406bd481bf6e98d55100a5513ccf4060e0d
2013-10-10 16:10:32 -07:00