- 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.
This adds some new debugging code to make it easier to see why a process is at
a certain oom_adj level -- for example telling you that a certain other process
has a binding to a certain one of its services. This has helped a lot in
identifying cases where processes are holding references to other processes that
they don't need and thus not allowing the system to get memory it needs.
Also fix a few problems with leaking entries on the service restarting and
service stopping lists.
Squashed commit of the following:
commit 2bc4c29dab22d8a541dfca0a20320b307ba64cfb
Author: Suchi Amalapurapu <asuchitra@google.com>
Date: Tue Aug 4 16:24:55 2009 -0700
fix issue with gids not being added for packages with shared user id
can happen if services are going away as the AccessibilityManagerService
is trying to dispatch notifications to these services. Catching this
exception and bailing because having this exception means that there
are no more services around that need to get this notification.
Re-arrange various things to ensure that the search dialog is told about system windows being
closed before it is told about the navigation back to home.
* changes:
Fix resource code and version attributes Create a new package setting object for updated system apps rather than moving around the same setting. This updates the resource, code and version correctly. For updating system packages, disable the package first which removes the entry from internal structures, create a new package setting, add it to list of user id's then rest of installation steps, kill the process if needed via ActivityManager then add this setting if everything was successful. This also fixes issues with updating values prematurely.
Create a new package setting object for updated system apps rather than moving
around the same setting. This updates the resource, code and version correctly.
For updating system packages, disable the package first which removes the entry
from internal structures, create a new package setting, add it to list of user id's
then rest of installation steps, kill the process if needed via ActivityManager
then add this setting if everything was successful. This also fixes issues with
updating values prematurely.
When a new version of system package is available via OTA, just physically remove
entries for pkg. Note that the component and other info will be eventually updated
later on when scanning the package.
Also move certificate verification slightly ahead before scanning packages.
Some null checks
New api's in ActivityManager to kill an application pkg before finishing installation
by surface flinger in compatiblity mode. The original approach confused the app because
the surface size and the view size were different.
* a few clean up. removed unsed arguments, obsolete conditions from getTranslator()
(expandable check was a bug)
This was previously hard-coded to 0. Now set to the value of the
"ro.opengles.version" system property. The default value is
ConfigurationInfo.GL_ES_VERSION_UNDEFINED.
Instead of a list, we now just have a single boolean indicating whether an
application is density aware, and this set set to true by default as of
Donut.
This changes the names of the directories in aapt, to what you see
in the list of DpiTest resources. Also adds a new "long" configuration
for wide screens, which the platform sets appropriate, and introduces
a new kind of resizeability for not large but significantly larger
than normal screens which may have compatibility issues.
* FullScreen mode was not hiding status bar for app in compatibility mode
* fixed fillsScreenLw to take compatibility window into account
* Fixed the logic in needsBackgroundFiller to be consistent with other places.
* Fix NPE in WindowManagerService#applyAnimationLocked LayoutParam can be null.
* More surface view fix.
- correct event translation on surface view.
- use compatible window
* removed FLAG_NO_COMPATIBILITY_SCALE. It was my misunderstanding of how SurfaceView works, and this was not necessary.
* Added compatibility related info to package dumpsys
Quick and dirty solution: a new --packages argument allows you to specify an explicit
set of packages to include in the dump. There is also now a new GServices setting
that can provide a value for it.
* changes:
* Use Fede In/Out animation if one of opening/closing apps is in compatibility mode. * preserve compatibility window flag when the app updates window's layout params. * Added assertion in DEFAULT_COMPATIBILITY_INFO object to prevent unintentional modification. * A few minor updates * log/dump message improvement * Removed unnecessary method in FadeInOutAnimator * Fixed 100 char issue in WindwoManagerServer.java
* preserve compatibility window flag when the app updates window's layout params.
* Added assertion in DEFAULT_COMPATIBILITY_INFO object to prevent unintentional modification.
* A few minor updates
* log/dump message improvement
* Removed unnecessary method in FadeInOutAnimator
* Fixed 100 char issue in WindwoManagerServer.java
* changes:
MountListener: When we connect to vold, explicitly mount external storage. Vold no longer mounts storage automatically so it doesnt interfere with the framework booting.
Actually I don't think it is really an issue here, because the status bar doesn't
start itself up like this until after we have booted, but let's be safe.
And DO NOT MERGE since this code has changed in master.