20e809870d8ac1e5b848f2daf51b2272ef89bdfc |
|
01-Sep-2012 |
Dianne Hackborn <hackbod@google.com> |
Add registering for explicit users. New API to register as an explicit user, which allows you to also select ALL to see broadcasts for all users. New BroadcastReceiver API to find out which user the broadcast was sent to. Use this in app widget service to handle per-user package broadcasts and boot completed broadcasts correctly. Change-Id: Ibbe28993bd4aa93900c79e412026c27863019eb8
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
82b131f27418ecdd60d52638a72d01d4ad2b109f |
|
12-Jun-2012 |
Dianne Hackborn <hackbod@android.com> |
am f6e39b06: am a03696dc: Merge "ApplicationThread: Check interface before invoking scheduleLowMemory" * commit 'f6e39b068d1d5491dc3d73d73f598790688a1c4e': ApplicationThread: Check interface before invoking scheduleLowMemory
|
6ae8d1821822296df0606c9cd1c46708cc21cb58 |
|
23-May-2012 |
Dianne Hackborn <hackbod@google.com> |
Fix (mostly) issue #5109947: Race condition between retrieving a... ...content provider and updating its oom adj This introduces the concept of an "unstable" reference on a content provider. When holding such a reference (and no normal stable ref), the content provider dying will not cause the client process to be killed. This is used in ContentResolver.query(), .openAssetFileDescriptor(), and .openTypedAssetFileDescriptor() to first access the provider with an unstable reference, and if at the point of calling into the provider we find it is dead then acquiring a new stable reference and doing the operation again. Thus if the provider process dies at any point until we get the result back, our own process will not be killed and we can safely retry the operation. Arguably there is still the potential for a race -- if somehow the provider is killed way late by the OOM killer after the query or open has returned -- but this should now be *extremely* unlikely. We also continue to have the issue with the other calls, but these are much less critical, and the same model can't be used there (we wouldn't want to execute two insert operations for example). The implementation of this required some significant changes to the underlying plumbing of content providers, now keeping track of the two different reference counts, and managing them appropriately. To facilitate this, the activity manager now has a formal connection object for a client reference on a content provider, which hands to the application when opening the provider. These changes have allowed a lot of the code to be cleaned up and subtle issues closed. For example, when a process is crashing, we now have a much better idea of the state of content provider clients (olding a stable ref, unstable ref, or waiting for it to launch), so that we can correctly handle each of these. The client side code is also a fair amount cleaner, though in the future there is more than should be done. In particular, the two ProviderClientRecord and ProviderRefCount classes should be combined into one, part of which is exposed to the ContentResolver internal API as a reference on a content provider with methods for updating reference counts and such. Some day we'll do that. Change-Id: I87b10d1b67573ab899e09ca428f1b556fd669c8c
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
92a8b22e7410e74e1cba1b856333116652af8a5c |
|
10-Mar-2012 |
Siva Velusamy <vsiva@google.com> |
ActivityManager: add option to allow OpenGL trace. This patch adds an option to enable tracing of OpenGL functions. OpenGL tracing can be enabled by passing "--opengl-trace" option to am start. This option requires either a device in debug mode, or that the application itself has debug permission set. Change-Id: I77788bfe97c9108943b1f947ce81afe8293d78a0
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
e94a3e7f84c4e47f013be07901f8f1ceeedefb6e |
|
02-Feb-2012 |
Vairavan Srinivasan <vairav@codeaurora.org> |
ApplicationThread: Check interface before invoking scheduleLowMemory Change-Id: I51317386e1729366d19f7e3a1747b05170b9305a
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
6754ba24f12a54b97b3ca1c5d29fc23c15980abe |
|
15-Dec-2011 |
Jeff Brown <jeffbrown@google.com> |
Add plumbing for dumping database info using dumpsys. Change-Id: I51b0364c3d3d41aa38a759fbce48e625fff1b2dd
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
18cb28756caf02bf2b2f5e67c68451edaf719b47 |
|
15-Nov-2011 |
Marco Nelissen <marcone@google.com> |
Add ContentProvider.dump() This is similar to the existing dump() facility for services. ContentProviders can now implement dump() and that info will be shown when running "dumpsys activity provider" and when taking a bugreport. Change-Id: I33b3b132e3c4f920153355cc368eda2f725a715f
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
58f42a59bda3bc912d0d2f81dc65a9d31d140eaa |
|
10-Oct-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #5405788: Device continuously opening and closing... ...the "Complete action using" dialog When an application goes idle, it sends back to the activity manager the configuration it last used, to make sure the two don't get out of sync. Fix a bunch of edge cases here in dealing with that, and be sure to also send the current configuration when launching an activity so the client is always up-to-date when launching. Also a small fix to not show the upgrading dialog during first boot. Change-Id: I14ed366a87cd689d1c78787369e052422290ac6f
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
5d927c2d8e832fcfcb0154c8741f896001141ef4 |
|
02-Sep-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #5150899: Call activity takes 15MB we never get back. Persistent process can no longer use hardware acclerated drawing when running on a low-memory device. Change-Id: I3110335617af1c98fcede9bf41f4a1d0c20d0e87
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
62f20ecf492d2b29881bba307c79ff55e68760e6 |
|
16-Aug-2011 |
Dianne Hackborn <hackbod@google.com> |
Add new am option to profile the launching of an activity. Change-Id: Ie71a8043eafe41f53a0b3dbb5170276d87acbc9b
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
b437e090ec03a2bab10bdfcb9484577a7f34e157 |
|
06-Aug-2011 |
Dianne Hackborn <hackbod@google.com> |
Improved memory use reporting. Change-Id: I38e53e6228bba92a142bafeedb5af8df4e4e5724
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
9a8c5cefcab3d5dec6ff63f0e99553e1aa9a4af8 |
|
22-Jul-2011 |
Romain Guy <romainguy@google.com> |
Ouput looper traces as traceview traces Change-Id: I96c8e85fd7497d970febbf6f5aefc4ab903add8e
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
7eabe55db6b113f83c2cefcd06812648927de877 |
|
21-Jul-2011 |
Romain Guy <romainguy@google.com> |
Add looper profiling to adb shell am To profile the looper, run the following command: adb shell am profile looper start <process> <file> adb shell am profile looper stop <process> Change-Id: I781f156e473d7bdbb6d13aaffeeaae88bc01a69f
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
0e3328fbdd3845b0e2bec364e951498eaee6b079 |
|
17-Jul-2011 |
Dianne Hackborn <hackbod@google.com> |
Rework and fix "adb shell dumpsys meminfo" We now collect more detailed information splitting the maps into additional useful categories. Fixed some bugs in account, such as not correctly handling all of the current dalvik allocations. The activity manager now prints a final summary of all pss organized by the apps and the categories. Change-Id: Iafc5f27c998095812b1483c6803b8e0f0587aeae
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
ce86ba86df61de8b34b226a4eb6c23ec33e866e0 |
|
14-Jul-2011 |
Dianne Hackborn <hackbod@google.com> |
Improve handling of low memory. Now classify background processes into a set of bins of how much memory they should try to clear. The last bin also involves destroying all activities in that process. Removed the old code for the simulator that is no longer needed (yay). The debugging features it had are now integrated into the regular oom adj code. Small fixes to load average service. Change-Id: Ic8df401714b188c73b50dbc8f8e6345b58f1f3a0
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
aa9d84c37e05f696ec158dac98ce38cf41e18314 |
|
10-May-2011 |
Dianne Hackborn <hackbod@google.com> |
resolved conflicts for merge of 05be6d6f to master Change-Id: Ic6a6c5bb300f6f1d43f9ed550b284282b4f16212
|
e2515eebf42c763c0a2d9f873a153711778cfc17 |
|
28-Apr-2011 |
Dianne Hackborn <hackbod@google.com> |
Better compat mode part one: start scaling windows. First step of improving app screen size compatibility mode. When running in compat mode, an application's windows are scaled up on the screen rather than being small with 1:1 pixels. Currently we scale the application to fill the entire screen, so don't use an even pixel scaling. Though this may have some negative impact on the appearance (it looks okay to me), it has a big benefit of allowing us to now treat these apps as normal full-screens apps and do the normal transition animations as you move in and out and around in them. This introduces fun stuff in the input system to take care of modifying pointer coordinates to account for the app window surface scaling. The input dispatcher is told about the scale that is being applied to each window and, when there is one, adjusts pointer events appropriately as they are being sent to the transport. Also modified is CompatibilityInfo, which has been greatly simplified to not be so insane and incomprehendible. It is now simple -- when constructed it determines if the given app is compatible with the current screen size and density, and that is that. There are new APIs on ActivityManagerService to put applications that we would traditionally consider compatible with larger screens in compatibility mode. This is the start of a facility to have a UI affordance for a user to switch apps in and out of compatibility. To test switching of modes, there is a new variation of the "am" command to do this: am screen-compat [on|off] [package] This mode switching has the fundamentals of restarting activities when it is changed, though the state still needs to be persisted and the overall mode switch cleaned up. For the few small apps I have tested, things mostly seem to be working well. I know of one problem with the text selection handles being drawn at the wrong position because at some point the window offset is being scaled incorrectly. There are probably other similar issues around the interaction between two windows because the different window coordinate spaces are done in a hacky way instead of being formally integrated into the window manager layout process. Change-Id: Ie038e3746b448135117bd860859d74e360938557
/frameworks/base/core/java/android/app/ApplicationThreadNative.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/core/java/android/app/ApplicationThreadNative.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/core/java/android/app/ApplicationThreadNative.java
|
54d068ec6af0ee6d261a135400efe6816c6f5ffe |
|
02-Mar-2011 |
Svetoslav Ganov <svetoslavganov@google.com> |
Add system wide management of core settings bug:3505060 Since we want to have some settings that are used very frequently by many applications (long-press timeout is one example) these should be managed efficiently to reduce lookups from different processes because in the case of a cache miss a disk I/O is performed. Now the system manages such core settings and propagates them to the application processes. Change-Id: Ie793211baf8770f2181ac8ba9d7c2609dfaa32a7
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
4eba96bb314d8ff773ea33d6cb3179f25751ecce |
|
21-Jan-2011 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #3377999: Activities need to be stopped when sleeping This is a band-aid over the existing kludgy stopping mechanism where the semantics of stop are different in the activity manager than in the clients. This change is intended to be as unobtrusive as possible, only impacting the sleep case. I have a different change that completely reworks how we stop activities to simply this all a lot by unifying the semantics between the server and client. However, it is too late in HC for such an extensive change. Later I'll revert this one and put in the better solution. Change-Id: Id77f2db1ec83469cdd888acb8fbc4679daa7766e
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
30d7189067524000c738c188c4ff91f84f474d25 |
|
11-Dec-2010 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #3274841: Orientation change problem with a paused activity Plus a bunch of debug output improvements. And some new Intent helpers for dealing with restarting an app. Change-Id: I50ec56bca6a86c562156b13fe8a6fdf68038a12e
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
434203a277cd2f237a71508a3d5a7d1602126cd5 |
|
12-Oct-2010 |
Robert Greenwalt <rgreenwalt@google.com> |
Notify all VMs when proxy changes. bug:2700664 Change-Id: I74cc6e0bd6e66847bf18f524ce851e3e9d2c4e87
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
03595d01188d88c169e8c9dd51b357fd545e69cc |
|
02-Nov-2010 |
Robert Greenwalt <rgreenwalt@google.com> |
Tell each VM to flush their DNS cache. bug:3095357 Change-Id: I93de24e3e5a7d8b94d55f4facfffc863a2b8c202
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
625ac271f80777668f832a344486a6fcdc06d0ae |
|
18-Sep-2010 |
Dianne Hackborn <hackbod@google.com> |
Work on fragments in layouts. - Change semantics if IDs associated with these fragments, to work correctly when placed in a container. If the container has an ID or you have supplied a tag, the fragment's ID is optional. - To do this, there is a new LayoutInflater API that allows code creating views to access the parent container that view will be in. - Fix issues with state management around these fragments. Now correctly retains state when switching to a layout that doesn't include the fragment. Also: - Add new simple list layouts for items that want to show an activated state. - Add new Activity.dump() that can be invoked with adb shell dumpsys; the default implementation dumps fragment state. Change-Id: I192f35e3ea8c53fbd26cf909095f2a994abfc1b6
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
824c510752fd6a30cdba5ed7324cb80a5043ce26 |
|
10-Jul-2010 |
Andy McFadden <fadden@android.com> |
Allow "am" to initiate heap dumps. This was mostly cloned from the "am profile" implementation. It's intended to replace the old "kill -10" approach used by "runhat". We could really use a native heap dump, so I pass a "managed" flag through that indicates whether we want to dump the native or managed heap. We don't currently have a native heap dump-to-file function, so it currently just logs a warning. (android.ddm.DdmHandleNativeHeap.getLeakInfo is a good start -- it copies /proc/maps and then calls get_malloc_leak_info to get some goodies. Needs some formatting to make it human-readable. I didn't want to cram all that into this change.) It would be useful if "am" didn't exit until the heap dump operation completed, but I'm not sure how to do that. Bug 2759474. Change-Id: I46bc98067738d8c72ac0fc10002ca67bb4929271
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
c27181c7f3e11170ec82807cfa416f0a906ff574 |
|
30-Jun-2010 |
Christopher Tate <ctate@google.com> |
Remove memory monitoring from the system watchdog This was originally written as an in-case-we-need-it facility, but was never actually used in production. It also soaked up a surprising amount of cpu on occasion, as well as doing sketchy things like demoting the system_server's primary looper thread to the background cgroup at times. Change-Id: I9a81a8d1e9caea9e0a1277d97785fe96add438d7
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
9d39d0cb361c5d3bba04a6bacf299be2162a6e92 |
|
25-Jun-2010 |
Dianne Hackborn <hackbod@google.com> |
Make bad notifications crash their application. Implement notification manager handling of bad notifications, to call a new activity manager to have the owner's process crashed (if there is one). Change-Id: Ib15e8d0c598756f3b39c99cc2045c18e054daf6b
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
4416c3d6e4becd9ed39b89a03db0239c8225a135 |
|
05-May-2010 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #2643754: Launcher is caching widget layouts for too long With the .apk file names now changing during an update, we need to make sure to flush all caches related to a package when the package is removed. Otherwise we can continue to use the old package, since its old file may still exist if we try to load it too soon. Change-Id: I15f08dffca3feac999dbca4f24bef12a30ca0a66
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
871ecdce67fb59a2603c1b93db657fe8b65695bd |
|
12-Dec-2009 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #2304284: contacts/dialer/recentcalls constantly flashing Make sure the application is always given the most recent configuration when launcher. Use the current configuration, instead of whatever happens to be set by the app, for reporting what it was launched with. Change-Id: I2ffe306f56cc9092b640546dd0a28d2c29b9c0b3
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
68d881cf2d2b252f6f795cd64d43e316a1d736e5 |
|
05-Oct-2009 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #2166755: BroadcastReceiver trying to return result during a non-ordered broadcast Tell the broadcast receiver whether it is getting an initial sticky value, so it will be quiet about attempts to do ordered broadcast stuff. Note that the original bug being reported was not actually a crash, just an error log. So all we are doing here is making the log quieter. Change-Id: Iaf1b718d82093ec1197142410a64feff47eb3859
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
5e1ab335e6e8fbfa19c64d53880a22f472010953 |
|
02-Sep-2009 |
Christopher Tate <ctate@android.com> |
Expand apps' control over the settings restore process Applications can now specify two more aspects of the restore process: whether they need to run with their own custom Application subclass rather than being launched in the usual restricted mode during restore, and whether it's okay for the backup manager to kill the app process once restore has completed. The new manifest attributes for these are, respectively, android:restoreNeedsApplication and android:killAfterRestore. If unspecified in the manifest, restoreNeedsApplication is false, and killAfterRestore is true. In order to support kill-after-restore cleanly, this change also adds a new system-process-only interface to the Activity Manager, which will schedule a "commit suicide" event on the target app's main thread looper. The framework backup agents have been given the appropriate new backup attributes as well.
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
3025ef332c29e255388f74b2afefe05f64bce07c |
|
01-Sep-2009 |
Dianne Hackborn <hackbod@google.com> |
Various infrastructure to support a running services UI. Some of this is temporary (in particular the two approaches for getting process memory, one working but horrible, the other not working but preferred) until I figure out the best way to do it. Change-Id: I8c8f25062d481fcea22a47d459b083d2fd8a5040
/frameworks/base/core/java/android/app/ApplicationThreadNative.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/core/java/android/app/ApplicationThreadNative.java
|
d884f43ffa47f1966e9c63d1ac4722994e037c0b |
|
23-Jul-2009 |
Christopher Tate <ctate@android.com> |
BackupAgent-related lifecycle APIs need to be oneway Bad Things(tm) happen if some of the lifecycle interfaces on IActivityThread are oneway but others are not [notably, out-of-order method delivery, i.e. catastrophe]. This change makes the methods added for backup-agent management oneway like the rest of the API.
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
b06ea706530e6d19eb2a1a9a7ae6c5dd77d80af0 |
|
13-Jul-2009 |
Dianne Hackborn <hackbod@google.com> |
Add reporting of activity movement for search manager. This adds a new API with the activity manager to find out about movement between activities. For my sanity, the old IActivityWatcher is now renamed to IActivityController, and the new activity movement interface is named IActivityWatcher. This changes the search manager itself to use the new API to manage its state. Note that there are still problems when going back to the search dialog after it was hidden -- the suggestions window no longer appears until you explicitly dismiss and re-show it.
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
9c8dd55a9d829c29a3feee9469d8c2f27a9f5516 |
|
24-Jun-2009 |
Dianne Hackborn <hackbod@google.com> |
Fix bug 1829561 ("am profile" with bad filename kills process). The am command is now the one that takes care of opening the target file, handling the opened file descriptor to the process that will be profiled. This allows you to send profile data to anywhere the shell can access, and avoids any problems coming up from the target process trying to open the file.
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
1ccac75e1f1b97eccb916a8de04fc1012b30f6e5 |
|
12-Jun-2009 |
Suchi Amalapurapu <asuchitra@google.com> |
Remove circular dependency in PackageManager. api freeStorage uses PendingIntent from android.app Create a new public IntentSender class that can be used by PackageManager instead. This new class uses IIntentSender internally and can only be created by PendingIntent for now. Provide a new getIntentSender api in PendingIntent to create an instance of this class. Move IIntentSender and IIntentReceiver from android.app to android.content Change imports of IIntentSender and IIntentReceiver to reflect the new package name The PackageManager api has been named as freeStorageWithIntent and will be renamed as freeStorage once the older api(which has been deprecated) will be removed shortly.
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
1885b37913181230c36d6485bdd389f89fa90f43 |
|
05-Jun-2009 |
Christopher Tate <ctate@google.com> |
Fix backup agent unbind The handwritten binder transaction passing wasn't propagating the agent-destroy transaction to the client side. Oops. Also, remove obsolete run-one-agent code from the backup manager service.
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
181fafaf48208978b8ba2022683ffa78aaeddde1 |
|
14-May-2009 |
Christopher Tate <ctate@google.com> |
Retool the backup process to use a new 'BackupAgent' class Backups will be handled by launching the application in a special mode under which no activities or services will be started, only the BackupAgent subclass named in the app's android:backupAgent manifest property. This takes the place of the BackupService class used earlier during development. In the cases of *full* backup or restore, an application that does not supply its own BackupAgent will be launched in a restricted manner; in particular, it will be using the default Application class rather than any manifest-declared one. This ensures that the app is not running any code that may try to manipulate its data while the backup system reads/writes its data set.
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
06de2ea752171f52a4e6e6872cb3a0689e591dcb |
|
21-May-2009 |
Dianne Hackborn <hackbod@google.com> |
Activity Manager changes the scheduling group of processes. The algorithm for this is currently very simple: all persistent processes are always in the normal scheduling group, all other processes are normal if their oom_adj is as good or better than VISIBLE, otherwise they are in the background group. Note that this currently results in a fair number of log messages about not being able to change the group, since the system process does not have permission to do so. Once a kernel fix is in, these will go away and the code will start working.
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
f5b4b98fada53d91c4c2ebeb5a1d33ccc95c94d2 |
|
06-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@136745
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 |
|
04-Mar-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
f1e484acb594a726fb57ad0ae4cfe902c7f35858 |
|
22-Jan-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //branches/cupcake/...@127436
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
9266c558bf1d21ff647525ff99f7dadbca417309 |
|
16-Jan-2009 |
The Android Open Source Project <initial-contribution@android.com> |
auto import from //branches/cupcake/...@126645
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|
54b6cfa9a9e5b861a9930af873580d6dc20f773c |
|
21-Oct-2008 |
The Android Open Source Project <initial-contribution@android.com> |
Initial Contribution
/frameworks/base/core/java/android/app/ApplicationThreadNative.java
|