21c241e061de29a538008ca42df9c878184bcfb8 |
|
08-Mar-2012 |
Dianne Hackborn <hackbod@google.com> |
Add new Intent API for associating a ClipData with an Intent. Allows applications to propagate multiple URI grants through an Intent. Later on, we should probably redefine the share actions to be based on this ClipData with the old extras-based approach only there for compatibility. Even if we don't do that, though, this allows you to do a multi-select share that grants multiple URI permissions by stuffing the URIs in a ClipData. Also add some documentation in various places telling people how they can grant URI permissions. Change-Id: Id4ba8e72c11caf7e1f1f438cb7af058d1586a37c
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
a0c283eac33dd2da72235751bbfa4f2d9898d5ea |
|
09-Feb-2012 |
Dianne Hackborn <hackbod@google.com> |
Add new feature for running services in "isolated" sandbox processes. This reserves a range of uids (for each user) in which these processes run. These uids are not associated with an application, so they effectively run with no permissions. When a Service requests to run in such a process through android:isolatedProcess="true", each time it is brought up a new isolated process is started with its own unique uid. What we have so far gives us the basic infrastructure; more work remains to further lock down what these uids have access to. Change-Id: Ibfd27c75619cba61f528f46ede9113f98dc5f45b
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
742a67127366c376fdf188ff99ba30b27d3bf90c |
|
04-May-2011 |
Amith Yamasani <yamasani@google.com> |
Multi-user - 1st major checkin Switching activity stacks Cache ContentProvider per user Long-press power to switch users (on phone) Added ServiceMap for separating services by user Launch PendingIntents on the correct user's uid Fix task switching from Recents list AppWidgetService is mostly working. Commands added to pm and am to allow creating and switching profiles. Change-Id: I15810e8cfbe50a04bd3323a7ef5a8ff4230870ed
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
90c52de28691ca0bbbf7c039ef20f85ce46882cc |
|
23-Sep-2011 |
Dianne Hackborn <hackbod@google.com> |
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
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
a301fe61c8573c06be754d5788a84d19188ee2d3 |
|
04-May-2011 |
Marco Nelissen <marcone@google.com> |
Fix dumpsys output. Change-Id: If3f51fbc4608ac295fa22d0aee4008f8dce4fa50
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
0c5001d776d56bae02a5cc2663286a125d99bc5e |
|
13-Apr-2011 |
Dianne Hackborn <hackbod@google.com> |
Add APIs to remove tasks. You can remove sub-tasks inside of a task, or an entire task. When removing an entire task, you can have its process killed as well. When the process is killed, any running services will get an onTaskRemoved() callback for them to do cleanup before their process is killed (and the service possibly restarted). Or they can set a new android:stopWithTask attribute to just have the service automatically (cleanly) stopped at this point. Change-Id: I1891bc2da006fa53b99c52f9040f1145650e6808
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
e17aeb31030cfeed339a39a107912ad5e9178390 |
|
08-Apr-2011 |
Dianne Hackborn <hackbod@google.com> |
Improve activity manager debug dumps. Activity manager now does all dump requests into apps asynchronously, so it can nicely timeout if there is an app problem. Also lots of general cleanup of the am dump output. Change-Id: Id0dbccffb217315aeb85c964e379833e6aa3f5af
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
eaa0718780a29df8fbe42c59beecee5557fdf785 |
|
24-Sep-2010 |
Joe Onorato <joeo@android.com> |
Crash apps when they provide bad notifications instead of crashing the system process. Bug: 2958415 Change-Id: I9cbef340fb20a64eca8493950b814399c26ce197
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
7e269644fcc319835f1e7f762f3cbd8087e3e22f |
|
26-Aug-2010 |
Dianne Hackborn <hackbod@google.com> |
Don't retain global ref to last inflated context. Also rework URI permission granting to support upcoming clipboard use. Change-Id: I9842920350955531c5a511c2ecc5215e8c783343
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
43d9ac81f7722bb539ee67023f10b9f43abbf202 |
|
26-Aug-2010 |
Dianne Hackborn <hackbod@google.com> |
Fix a fun bug with multiple service bindings from an activity. There was a flaw in the service management, when the same activity is doing a bindService() for the same service IBinder. In this case the activity would correctly keep a list of all generated connections, however some other data structures would assume there is only one connection per IBinder, and thus only remember the last. When that last connection was unbound, the service would be destroyed since it thought there were no more connections. Then when the activity was finished, it would try to destroy the service again and end up with an ANR because the service was already gone and would not respond. Change-Id: I59bde38bc24e78147b90b0a7cd525c2a1d20489f
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
39792d2262352ae775091876d5488d2412a2ff92 |
|
20-Aug-2010 |
Dianne Hackborn <hackbod@google.com> |
Fix bugs with granting permissions through onNewIntent(). It would grant the permission to the temporary ActivityRecord, not the real one, so it never got cleaned up. Also allow granting of permissions to services because... well, it would be really really useful. And it introduces some refactoring that we'll need to support cut/paste. Change-Id: If521f509042e7baad7f5dc9bec84b6ba0d90ba09
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
1ebccf531d1049853b3b0630035434619682c016 |
|
15-Aug-2010 |
Dianne Hackborn <hackbod@google.com> |
Fix problems with determining when to kill apps for wake usage. Also improve debug printing of various times. Change-Id: Ifcc288fd1bcbf44c069875ba97925b9e7ffe9a48
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
9adb9c3b10991ef315c270993f4155709c8a232d |
|
13-Aug-2010 |
Dianne Hackborn <hackbod@google.com> |
Various battery info things: - Now track wake locks in battery history. - Now track sensors in battery history. - Some filtering of sensory data. - Fixes to some data that wasn't cleared when resetting battery stats. - Print amount discharged since last charge. And the big part -- keep track of wake locks held per process, and kill processes that hold wake locks too much while they are in the background. This includes information in the battery stats about the process being killed, which will be available to the developer if the app is reported. Change-Id: I97202e94d00aafe0526ba2db74a03212e7539c54
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
d0a2f86f357f346639a6648b4004266865c979b4 |
|
03-Aug-2010 |
Daniel Sandler <dsandler@android.com> |
Fix crash when startForeground posts a broken Notification. The NotificationManager tries to crash the calling app, but in the case of a service calling startForeground, the caller is the ActivityManager, so system_server goes down. NotificationManagerService#enqueueNotificationInternal is a new internal-only method that accepts a UID/PID to use when punishing bogus notifications (such as the one in http://b/2869787). Change-Id: I84a9854bae630bc90288cebb94f174809d5dac8c
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
8a9b22056b13477f59df934928c00c58b5871c95 |
|
27-Feb-2010 |
Joe Onorato <joeo@android.com> |
Switch the services library to using the new Slog
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
9e0f5d9a63ba88c2bf69df0557f8c9696db370c4 |
|
23-Feb-2010 |
Dianne Hackborn <hackbod@google.com> |
Fix some random bugs. 2185256: After open &close of device keyboard shortcut does not added to Home desktop. ActivityThread was losing the last saved state when restarting or launching into a paused state. 2366174: defaults not cleared when they should be PackageManagerService now removes any preferred activity records for a package when it is uninstalled. 2154556: Battery stats can have an unbounded number of wake locks We now start combining wake locks into one shared record when we hit a maximum limit (currently 20). 2442519: Foreground services can have no notification by providing a bogus one. If the notification manager rejects our notification, the service is forced to no longer be in the foreground. 2442383: Finalization issues in com.android.server.am.PendingIntentRecord.java Cleaned up finalization to call super class and avoid the big activity manager lock (we still need to use the locks inside of the message system, but these are much less likely to be a problem). 2284190: Cannot call a phone number using adb We weren't getting the calling uid/pid in startActivity() if the caller did not supply an application record.
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
34fcf971037f33605e8009946d3acc686819dd6d |
|
18-Feb-2010 |
Joe Onorato <joeo@android.com> |
Don't crash the system process when apps give us a bad foreground service notification.
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
b1c4a2a3b37fccf68e6a9563cccf1685df2bf3e7 |
|
20-Jan-2010 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #2364506: Phone locked up while listening to music and attempting to download an update Make sure calls into the notification manager are not done with the activity manager lock held. Change-Id: Ib53c3b9f46160d94ee1e7079b1a5123e0d1225d8
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
6ccd2aff3eb4450c6f1021637d18e4e5d9346bf0 |
|
27-Aug-2009 |
Dianne Hackborn <hackbod@google.com> |
resolved conflicts for merge of 301b97ac to eclair Change-Id: I0fb70cbe0a52006ad14f43a02c30b72aad457c48
|
fd12af4e768fec852c4c5dfee3b9bd7403b4b347 |
|
27-Aug-2009 |
Dianne Hackborn <hackbod@google.com> |
Various tweaks to try to improve low memory behavior. - Reduce the amount that we ask processes to GC after a significant operation occurs, but introducing a minimum time between GCs and using this in various ways to schedule them. - Don't spam all of the processes with onLowMemory(). Now deliver these using the same gc facility, so we do the processes one at a time, and don't allow the same process to get this call more than once a minute. - Increase the time a service must run before we will reset its restart delay to 30 minutes (from 10). - Increase the restart delay multiplication factor from 2 to 4. - Ensure that we don't restart more than one service every 10 seconds (unless some external event causes a service's process to be started for some other reason of course). - Increase the amount of time that a service must run before we decide to lower it to a background process. And some other things: - Catch IllegalArgumentException in ViewRoot like we do for no resources to avoid the system process crashing. - Fix a number of places where we were missing breaks between the activity manager's message dispatch func(!!). - Fix reason printed for processes in the background. - Print the list of processing waiting to GC.
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
f6f9f2d0256930ce0bb4913b2260b8480914edc2 |
|
22-Aug-2009 |
Dianne Hackborn <hackbod@google.com> |
Add more control over a service's start state. One of the problems I have been noticing is background services sitting around running and using resources. Some times this is due to the app developer doing this when they shouldn't, but there are also a number of issues with the current Service interaction model that make it very difficult (or impossible) to avoid getting services stuck in the started state. This is a change/enhancement to the Service API to try to address this. The main change is that Service.onStart() has been deprecated, replaced with a new Service.onStartCommand() that allows the service to better control how the system should manage it. The key part here is a new result code returned by the function, telling the system what it should do with the service afterwards: - START_STICKY is basically the same as the previous behavior, where we usually leave the service running. The only difference is that it if it gets restarted because its process is killed, onStartCommand() will be called on the new service with a null Intent instead of not being called at all. - START_NOT_STICKY says that, upon returning to the system, if its process is killed with no remaining start commands to deliver, then the service will be stopped instead of restarted. This makes a lot more sense for services that are intended to only run while executing commands sent to them. - START_REDELIVER_INTENT is like START_NOT_STICKY, except if the service's process is killed before it calls stopSelf() for a given intent, that intent will be re-delivered to it until it completes (unless after 4 or more tries it still can't complete, at which point we give up). Change-Id: I978f5ca420d70023d1b5e7f97de639d09381f8ad
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
d8a43f61680bacf0d4b52a03ff3c7a07307377fc |
|
18-Aug-2009 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #2047139: Remove Service.setForeground() This API is becoming seriously abused, so now it is deprecated and has become a no-op. As an alternative, there is now a new API that allows you to make a service be in the foreground but requires providing a persistent notification to go along with this state, allowing the user to know about and control it.
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
1d442e0d990b581357f33f5463c7c5cb49b551e8 |
|
21-Apr-2009 |
Dianne Hackborn <hackbod@google.com> |
More optimization of dumpsys output. There are three major classes of changes here: - Avoid writing lines where their values are often empty, false, or some other typical thing. - Use partial writes to the PrintWriter to avoid creating temporary strings. - Use StringBuilder where we need to generate real String objects (and where possible cache the result).
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
f210d6b75e2c0fe60b90c074ff9f615c1137f23e |
|
14-Apr-2009 |
Dianne Hackborn <hackbod@google.com> |
Let's do bug #1769910 actually right. My original implementation was computing averages and medians. Now we do binning, as requested. So much simpler, too! In addition, it fixes a bug where when hoping across activities we were only accounting for the last activity as the total time; now we count the time from the start of the initial activity. This also includes some reduction and optimization of the activity manager dumpsys output.
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
f013e1afd1e68af5e3b868c26a653bbfb39538f8 |
|
18-Dec-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Code drop from //branches/cupcake/...@124589
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|
54b6cfa9a9e5b861a9930af873580d6dc20f773c |
|
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
/frameworks/base/services/java/com/android/server/am/ServiceRecord.java
|