Special cases persistent processes to not allow their services to be
force stopped if the processes is crashing multiple times. Avoid the
annoying issue with the system bar going away if it is sometimes crashing.
Change-Id: Icf421f45e389827d612d70638030da755a8d3344
ServiceRecord's bindings is a hashmap to keep track of all active
bindings to the service. This is not cleared when the service is
brought down by activity manager. This adds up the references to
IntentBindRecords and its references to ServiceRecord. Fix is to
clear the bindings.
ServiceRecord's restarter is a reference to the service and is not
cleared when the service is brought down by activity manager. This
adds up the references to ServiceRecord. Fix is to set the reference
to null when the service is brought down by activity manager.
Change-Id: Ica448cd5f60192c8adb23209b5d0e2cf0c04e446
Also issue #3281400: Rotating a retained instance fragment leaks the fragment manager
And turn off fragment debug logging.
Change-Id: Ibdd7db82bb35618021bcba421ba92ced7cd691c2
Plus a bunch of debug output improvements.
And some new Intent helpers for dealing with restarting an app.
Change-Id: I50ec56bca6a86c562156b13fe8a6fdf68038a12e
The goal is to fix a bunch of fragment-related bugs caused by various
things trying to do fragment transactions after onPause()... which
currently throws an exception, since this is after the activity's state
has been saved so the new fragment state can be lost.
The basic change is relatively simple -- we now consider processes
hosting paused or stopping activities to be unkillable, and the client
code now does the onSaveInstanceState() as part of stopping the
activity.
For compatibility, if an app's targetSdkVersion is < HONEYCOMB, the
client side will still call onSaveInstanceState() prior to onPause()
and just hold on to that state until it needs to report it in once
being stopped.
Also included here is a change to generate thumbnails by taking
screenshots. The code for generating thumbnails by re-rendering
the view hierarchy is thus removed.
Change-Id: Iac1191646bd3cadbfe65779297795f22edf7e74a
What this adds:
- A new Intent activity flag to completely replace an existing task.
- A new Intent activity flag to bring the current home task up behind
a new task being started/brought to the foreground.
- New versions of startActivity() that take an array of Intents to be
started, allowing applications to start a task in a specific state.
- A public moveTaskToFront() method on ActivityManager, with a new flag
that allows the caller to have the task moved to the front with the
current home task immediately behind it.
Change-Id: Ie8028d09acffb5349d98043c67676daba09f75c8
Who knew there were so many Loopers in the system server?
This adds dropbox logging for the activity manager thread, policy
thread, and window manager thread.
The goal's to catch more stuttering.
Change-Id: I999a6ff4a955f0ef549b12a38796b843ade5fe66
This will be used for StrictMode to annotate violations with
whether or not they janked up an animation.
Change-Id: I5bc691f49b74c45279cd2ae044d2a81dcf1204a9
There is a 60s timeout for this command. I'd rather do it as an individual timeout
for each of the services, but this is easier and will probably cover for busted apps
well enough. Also, this is running last in dumpstate, so if it's lost... oh well.
Also, clean up the formatting of the service dump so it's more readable in bugreport.
Change-Id: Ibd727f4b3366f7af9e7ef1e231868f5cedc48132
Merge commit '13e46665ff69c1a37880762d7d611aacdf02dac7'
* commit '13e46665ff69c1a37880762d7d611aacdf02dac7':
Work on issue #3101415: Crespo apps seem to have their UID changed over time.
3094621: add "wipe sd card" option to factory data reset
3094609: collapse unmount/format into one command
Also since we have decided that it is important to consider
the Crespo storage as internal storage, DevicePolicyManager
gets a new API to be able to wipe it. (No big deal, since
all of the work for this is now done in the implementation
of the new UI.)
Change-Id: I32a77c410f710a87dcdcbf6586c09bd2e48a8807
Merge commit 'c1a564b108c511c0bdd699567c245b031930e718' into gingerbread-plus-aosp
* commit 'c1a564b108c511c0bdd699567c245b031930e718':
Add support for secure system overlays. (DO NOT MERGE)
Merge commit '736f5ec476526f3431d81dec5fb695bdee27e21a' into gingerbread-plus-aosp
* commit '736f5ec476526f3431d81dec5fb695bdee27e21a':
Work on issue #3101415: Crespo apps seem to have their UID changed over time.
Manual merge from Gingerbread.
This change adds a new window type for secure system overlays
created by the system itself from non-secure system overlays that
might be created by applications that have the system alert permission.
Secure views ignore the presence of secure system overlays.
Bug: 3098519
Change-Id: Id876736fd8bf332ff9a5428bde59f5268aa49c3a
This change adds a new window type for secure system overlays
created by the system itself from non-secure system overlays that
might be created by applications that have the system alert permission.
Secure views ignore the presence of secure system overlays.
Bug: 3098519
Change-Id: I8f8398f4fdeb0469e5d71124c21bedf121bd8c07
Merge commit '779d1778b6147ee1b57428af234d1498a26f031e'
* commit '779d1778b6147ee1b57428af234d1498a26f031e':
Include debugger connection status in error entry
Merge commit 'bd1454f5005619b69d887fee6a7a4891b3323d18' into gingerbread-plus-aosp
* commit 'bd1454f5005619b69d887fee6a7a4891b3323d18':
Include debugger connection status in error entry
Merge commit '0a69f597604254bc37721b135ab612eaacdd0cbd' into gingerbread-plus-aosp
* commit '0a69f597604254bc37721b135ab612eaacdd0cbd':
Rub in a little 'ol log-b-gone.
Merge commit 'b763a6dc41dcce76585c56657903ae72c5422ae1'
* commit 'b763a6dc41dcce76585c56657903ae72c5422ae1':
Fixes to granting URI permissions - take into account path perms.
Merge commit '08cf57d791e50ecafe2728a7617a6487aeb6d6d5' into gingerbread-plus-aosp
* commit '08cf57d791e50ecafe2728a7617a6487aeb6d6d5':
Fixes to granting URI permissions - take into account path perms.
Include the debugger connection status when adding error entry
to DropBox if debugger is connected, "Debugger: Connected".
This can be useful to sort out crashes comming from developers
vs from regular usage.
Change-Id: Ic309066c63778af1577f2b91a95ffca0bd40338c
I can't find the bug number for this, but it is needed for some things
we are doing where the app building an intent may not have access to the
URI in the data field. This is for HC, but doing in GB to avoid introducing
integration issues.
Change-Id: I0cac971854198b18775d2a73deb80f23431bfbe2
Merge commit 'd8691d73d158acd9ffc63748126e822afd656707' into gingerbread-plus-aosp
* commit 'd8691d73d158acd9ffc63748126e822afd656707':
Allow all apps to call ContentResolver.getType().
I can't find the bug number for this, but it is needed for some things
we are doing where the app building an intent may not have access to the
URI in the data field. This is for HC, but doing in GB to avoid introducing
integration issues.
Change-Id: I0cac971854198b18775d2a73deb80f23431bfbe2
Merge commit 'ca25d2c31dc20f69597be8f34d6da9167d53b4d0'
* commit 'ca25d2c31dc20f69597be8f34d6da9167d53b4d0':
Fixed some timeout and lock reentrance issues with broadcasts.
Merge commit '4d94a766c3f7cf32dd3f5d543048fa801ad22813' into gingerbread-plus-aosp
* commit '4d94a766c3f7cf32dd3f5d543048fa801ad22813':
Fixed some timeout and lock reentrance issues with broadcasts.
When starting a broadcast, the ActivityManagerService posts a delayed
BROADCAST_TIMEOUT_MSG to handle timeouts. If a premature timeout occurs,
we post a new BROADCAST_TIMEOUT_MSG to extend the timeout time for the
current receiver. However, if the current receiver does timeout, the
message is consumed and no replacement is ever posted.
To fix the dropped timeouts, we track whether we have a pending broadcast
timeout message and setup a new one when we begin working on the next receiver.
As a last resort, performNextBroadcast contains code to detect whether
a broadcast appears to be hung (timeout handling failed). If so, it
calls broadcastTimeout to cause it to timeout immediately.
However, performNextBroadcast is holding on to the ActivityManagerService
lock while doing this but broadcastTimout expected to be called
while the lock was not held since after updating the broadcast record state,
it calls appNotResponding.
To fix the unintentended lock reentrance, changed broadcastTimeout to
assume the lock is already held (and the callers ensure this) then
added code to perform the ANR asynchronously.
Renamed a few methods to add "Locked" suffixes where appropriate and added
a few comments for tricky areas uncovered during review.
Change-Id: I3cb5b06d6b6a4a338f32c0998db721f6acf3b082