199 Commits

Author SHA1 Message Date
Amith Yamasani
244fa5c05b Initial checkin for App Fuel Gauge infrastructure.
This adds the PowerProfile class and data file that provides power consumption numbers
for different subsystems. Also added Audio/Video subsystems to track on a per UID basis.
2009-05-22 14:36:07 -07:00
Mike Lockwood
fd6e5f0dda location: Replace ILocationCollector interface with new ILocationProvider method
This change replaces ILocationCollector with a more general mechanism that
passes locations received from a provider to all other providers.
The network location provider now uses this to implement the location collector.
In the future, this could be used to inject network locations to the GPS
as aiding data.

This change also removes the now obsolete permission INSTALL_LOCATION_COLLECTOR.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-05-21 11:28:20 -04:00
Joe Onorato
d2110dbce0 Hook up the backup data writer, and add a utility to read the backup data files. 2009-05-20 11:24:20 -07:00
Android (Google) Code Review
a5ca3425f9 Merge change 2017 into donut
* changes:
  Increment BatteryStatsImpl's VERSION. That'll make it stop trying to interpret older records with the new format. Also applied other comments involving name changes to remove un-needed 'Wifi' labels in WifiManager API, etc.
2009-05-20 09:06:22 -07:00
Jacek Surazski
f5b9c72022 ActivityManagerService sends bug reports on crashes and ANRs
If an installerPackageName was specified when the app was installed,
looks for a receiver of ACTION_APP_ERROR in that package. If found,
this is the bug report receiver and the crash/ANR dialog will get a
"Report" button. If pressed, a bug report will be delivered.
2009-05-20 10:52:04 +02:00
Dianne Hackborn
95fc68f24a Fix issue where apps could prevent the user from going home.
Now we have a 5-second time after home is pressed, during which
only the home app (and the status bar) can switch to another app.
After that time, any start activity requests that occurred will
be executed, to allow things like alarms to be displayed.  Also
if during that time the user launches another app, the pending
starts will be executed without resuming their activities and
the one they started placed at the top and executed.
2009-05-19 18:46:53 -07:00
Robert Greenwalt
58ff0217a6 Increment BatteryStatsImpl's VERSION.
That'll make it stop trying to interpret older records with the new format.
Also applied other comments involving name changes to remove un-needed 'Wifi' labels in WifiManager API, etc.
2009-05-19 15:53:54 -07:00
Mike Lockwood
ac61f6bc2b Telephony: Allow getCellLocation() if client has permission ACCESS_FINE_LOCATION
ACCESS_FINE_LOCATION should imply ACCESS_COARSE_LOCATION, so either of these
permissions should be sufficient to allow TelephonyManager.getCellLocation().

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-05-19 13:53:24 -04:00
Mihai Preda
c3320dbe1c Minor performance improvement when filtering intents by package.
Don't consider the activities that have no intent filters.
2009-05-19 14:15:14 +02:00
Android (Google) Code Review
2f11599eb3 Merge change 1579 into donut
* changes:
  Teleca 2b changes
2009-05-18 22:26:25 -07:00
Wink Saville
e9b06d754a Teleca 2b changes 2009-05-18 21:47:50 -07:00
Android (Google) Code Review
7e4c34329c Merge change 1881 into donut
* changes:
  WifiService: Wifi power management change
2009-05-18 13:17:38 -07:00
Mike Lockwood
d9c32bc838 WifiService: Wifi power management change
Put Wifi into an idle state immediately if the screen is turned off and the Wifi interface has no IP address.
We will continue to keep Wifi up for 15 minutes in the case where the screen is turned off when Wifi is fully connected.
This will allow us to go into a low power mode faster when Wifi is not actively being used.
It also avoids bringing up Wifi if the user just turns on the screen for a few seconds to check the clock, etc.

Fixes bug b/1736920

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-05-18 15:54:16 -04:00
Suchi Amalapurapu
d1a9337380 Add a new window flag to display a window when keyguard is shown. 2009-05-18 10:47:24 -07:00
Mihai Preda
074edef7c4 remove unused ContentResolver parameter from IntentResolver.queryIntent. 2009-05-18 17:13:31 +02:00
Dianne Hackborn
a96cbb435d Implement compatibility support for WRITE_SDCARD permission.
Now old applications will automatically be granted it.  Also renamed it from
SDCARD_WRITE to WRITE_SDCARD to be consistent with our other permissions,
and re-arranged how we do targetSdkVersion to actually be usuable for this
kind of stuff.

Note that right now this results in basically all apps being given the
WRITE_SDCARD permission, because their targetSdkVersion is not set.  I will
be dealing with that in a future change.
2009-05-15 18:02:47 -07:00
Mihai Preda
eae850cefe Allow intent resolution to be constrained by package name. 2009-05-15 12:32:07 +02:00
svetoslavganov
75986cf9bc Accessibility feature - framework changes (replacing 698, 699, 700, 701 and merging with the latest Donut) 2009-05-14 23:47:05 -07:00
Android (Google) Code Review
2a5cfe5192 Merge change 1590 into donut
* changes:
  Add wifi multicast filter api (enable/disable). Fixes 1833432.  Automatically re-disables any request when the app exits/crashes.  Also hooked into Battery Stats for power managment analysis.
2009-05-14 13:24:52 -07:00
Android (Google) Code Review
aa642c0cc2 Merge changes 1591,1596 into donut
* changes:
  Add a new feature to android.os.Debug to add the ability to inject only specific fields when calling setFieldsOn().
  Fixes #1836075. Adds consistency checks for the View hierarchy. To enable them, you need a debug build and ViewDebug.sConsistencyCheckEnabled set to true in debug.prop. This change also lets you easily enable drawing and layout profiling in ViewRoot by setting ViewRoot.sProfileDrawing, ViewRoot.sProfileLayout and ViewRoot.sShowFps in debug.prop with a debug build.
2009-05-14 11:59:33 -07:00
Joe Onorato
290bb011c5 Get the backup calling through to the file backup helper.
This includes some cleanup to make the parameters match
between BackupService.onBackup and FileBackupHelper.performBackup.
2009-05-14 09:39:32 -04:00
Dianne Hackborn
b910811136 am 5d6d773: AI 148824: Fix issue #1851541 (sharedUserId requests not bei
Merge commit '5d6d773fab559fdc12e553d60d789f3991ac552c' into donut

* commit '5d6d773fab559fdc12e553d60d789f3991ac552c':
  AI 148824: Fix issue #1851541 (sharedUserId requests not being checked for matching signatures on .apk).
2009-05-13 18:13:17 -07:00
Dianne Hackborn
5d6d773fab AI 148824: Fix issue #1851541 (sharedUserId requests not being checked for matching signatures on .apk).
To address issues where we could leave half-installed applications around if there was a failure during the install, we split getPackageLP() into two phases: the first would create the record, and only after doing all verification checks would we call insertPackageSettingLP() to do the remaining part of the original implementation and actually insert the record into the data structures.
  Unfortunately it was only in insertPackageSettingLP() that we would set the sharedUser field of the PackageSetting structure, so when before that we went to verify certificates, we didn't think it had requested a shared user ID, and let it through without checking.
  This fix simply sets the sharedUser field when the PackageSetting structure is first created, so we will actually check against its certs.  We still also set this again in insertPackageSettingLP(), but there is no harm in this because the only time we call this function is in that big install func, which just passes in the same shared user that it had when first getting the package.
  BUG=1851541

Automated import of CL 148824
2009-05-13 18:09:56 -07:00
Romain Guy
13922e0303 Fixes #1836075. Adds consistency checks for the View hierarchy. To enable them, you need a debug build and ViewDebug.sConsistencyCheckEnabled set to true in debug.prop. This change also lets you easily enable drawing and layout profiling in ViewRoot by setting ViewRoot.sProfileDrawing, ViewRoot.sProfileLayout and ViewRoot.sShowFps in debug.prop with a debug build. 2009-05-13 15:42:23 -07:00
Robert Greenwalt
5347bd4cda Add wifi multicast filter api (enable/disable).
Fixes 1833432.  Automatically re-disables any request when the app
exits/crashes.  Also hooked into Battery Stats for power managment analysis.
2009-05-13 15:10:16 -07:00
Joe Onorato
8ad028117d With this, the BackupService onBackup method is called.
It took a bunch of refactoring inside BackupManagerService,
which is unfortunately all temporary anyway, but it unblocks
a bunch of stuff.
2009-05-13 01:41:44 -04:00
Dianne Hackborn
ade3ecad94 Implement issue #1783881 (manifest option for adb-install-only apps)
You can now use android:testOnly="true" to not allow your .apk to be installed
as a normal app.  The only way to do so is with the pm command and giving the
-t option, which sets a new INSTALL_ALLOW_TEST flag when installing.

I also used this to clean up the install API...  actually, mostly to hide
it, since it is not accessible to apps so shouldn't be in the SDK.  We
will be doing some more work on it, so this will prevent adding yet
another backwards-compatibility-for-no-reason version.
2009-05-12 16:09:43 -07:00
Jacek Surazski
c64322c352 PackageManager keeps track of who installed what.
Stores the package name of the installer app in packages.xml
2009-05-12 23:16:20 +02:00
Mike Lockwood
3681f2614f LocationManager: Recover if process containing NetworkLocation provider crashes
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-05-12 10:52:03 -04:00
Dianne Hackborn
1655be46d2 Fix issue #1837610 and #1753079
Issue 1837610 Adding a Widget before Running the Associated App Causes a Force Close

We were not retrieving the shared libraries of an application when deliving a
broadcast to an explicit component.

Issue 1753079 loading class path of instrumented app into instrumentation may load wrong path when instrumented app shares process with other apps:

We were using the ApplicationInfo that was used to originally create the process, not the one that the
instrumentation is against.
2009-05-11 11:14:26 -07:00
Dianne Hackborn
851a54143c Implement targetSdkVersion and maxSdkVersion, plus version code names.
This adds new attributes for specifying a targetSdkVersion and maxSdkVersion.
There is a new ApplicationInfo flag that is set if the application has set
its targetSdkVersion to the current platform or later.  Also you can now
use a string for minSdkVersion and targetSdkVerion, to indicate you are
building against a development tree instead of an official platform.
2009-05-08 15:15:36 -07:00
Android (Google) Code Review
c39aae0ee0 Merge change 1278 into donut
* changes:
  Squashed commit of the following:
2009-05-08 14:46:41 -07:00
Android (Google) Code Review
7b59fe316e Merge change 1275 into donut
* changes:
  Make the internal storage monitor work correctly when internal storage is very large.
2009-05-08 14:46:21 -07:00
Suchi Amalapurapu
c2af31f89b Squashed commit of the following:
commit 85585eb0860e52a3dc3b8efe57ef8b30ee35c98d
Author: Suchi Amalapurapu <asuchitra@google.com>
Date:   Thu May 7 11:59:24 2009 -0700

    Remove new error code in PackageManager.
    Remove version check in installation code path. Let the install continue irrespective of version number.
    Check if data needs to be wiped(for downgrades only) in uninstallation code path.
    Also remove only code and resources when checking for updated system packages(via ota)
    Add version attribute when persisting package settings

commit f90797348c5170e6263d249e4fc77f1c0328eb27
Author: Suchi Amalapurapu <asuchitra@google.com>
Date:   Thu May 7 10:54:07 2009 -0700

    remove trailing white spaces
    hide new install code in PackageManager

commit 397eb81265160f73caf9827d381ed6622041d54e
Author: Suchi Amalapurapu <asuchitra@google.com>
Date:   Thu May 7 10:33:23 2009 -0700

    Add version check in install and uninstall code paths.
    New error code for invalid upgrades in PackageManager
2009-05-08 14:44:41 -07:00
Marco Nelissen
0bfbae2c32 Make the internal storage monitor work correctly when internal storage is very large. 2009-05-08 14:28:40 -07:00
Dianne Hackborn
55280a9188 Improve shutdown process to send broadcast for applications.
This introduces a new class in the base platform for performing a clean
shutdown (which was copied from the classes in the policies).  It
includes new features to send a shutdown broadcast for applications
to do cleanup, and ot have the activity manager pause the current
activity before proceeding with the shutdown.  These facilities are
also use to write at the most recent stat files for sync, battery
and user activity.
2009-05-08 12:59:21 -07:00
Joe Onorato
b1a7ffef3a More backup tests 2009-05-07 15:32:48 -07:00
Mike Lockwood
95427cdbd8 location: Fix mock provider support
Allow mock providers to be used for proximity alerts.
Clear calling identity so mock provider support does not fail due to
lack of INSTALL_LOCATION_PROVIDER permission.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-05-07 13:27:54 -04:00
Mike Lockwood
8dfe5d8c6b location: Remove two unnecessary variables.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-05-07 11:49:01 -04:00
Mike Lockwood
0528b9b26a location: Location Manager wakelock cleanup
Location Providers are now responsible for their own wakelocks and scheduling.

Also fixed a deadlock in LocationManagerService in the code for releasing
wakelocks after client notifications have been received.
The fix is to use the Receiver object and mWakeLock for synchronization
 instead of the global mLock lock.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-05-07 11:02:22 -04:00
Michael Chan
05d24afb61 Merge branch 'readonly-p4-donut' into donut 2009-05-06 17:39:50 -07:00
Christopher Tate
3799bc241b Track install/removal/update of packages that provide backup services 2009-05-06 16:13:56 -07:00
Christopher Tate
b1d790b63e Pass null as savedState to indicate a full backup is required 2009-05-06 12:38:21 -07:00
Christopher Tate
4675812386 Add a Backup Manager interface to request a full backup
Given a package name, the Backup Manager schedules a *full* (i.e. non-
incremental) backup pass for that package.  Also added the state-file
handling for distinguishing to the target between the full and incremental
backup requests.
2009-05-06 11:24:27 -07:00
Michael Chan
e96440fa15 AI 148368: Decrease CPU usage by throttling touch events
We are decreasing CPU usage at the cost of event latency. Events are queued up
  and released to the app at the specified rate. You can
  experiment with different values via:
  adb shell setprop windowsmgr.max_events_per_sec 35
  The new value is picked up when you let go and retouch the screen. No
  reboot needed.
  Also the following changes were made after profiling:
  - In WindowManagerService, limit the call to userActivity() when we
  have a flood touch events.
  - In PowerManagerService, skip checking of permission if the caller
  is system user.
  - In PowerManagerService, integrated the functionality of gatherState()
  into reactivateWakeLocksLocked(). They loop through the same data
  structure and are called back to back.
  BUG=1692771

Automated import of CL 148368
2009-05-06 10:27:36 -07:00
Android (Google) Code Review
dccc39b17a Merge change 777 into donut
* changes:
  Rewrite SyncStorageEngine to use flat files and in-memory data structures.
2009-05-05 16:17:25 -07:00
Android (Google) Code Review
3ed8b3dc42 Merge change 1018 into donut
* changes:
  If no battery stats are found, return status_unknown
2009-05-05 16:15:53 -07:00
Rebecca Schultz Zavin
e7e6fa3fbf If no battery stats are found, return status_unknown
If the battery files can't be found return status_unkown instead of an
error.  On systems where we haven't brought up battery stats yet they
assume the battery is dead and turn off as soon as the runtime starts

Signed-off-by: Rebecca Schultz Zavin <rebecca@android.com>
2009-05-05 16:15:36 -07:00
Christopher Tate
f417247fa6 Further development of backup file handling
Put backup data in flight into /cache
    Close the files and delete the intermediates after backup pass
2009-05-05 15:50:03 -07:00
Dianne Hackborn
231cc608d0 Rewrite SyncStorageEngine to use flat files and in-memory data structures.
The previous implementation used a database for storing all of its state, which could cause
a significant amount of IO activity as its tables were updated through the stages of a sync.
This new implementation replaces that in-memory data structures, with hand-written code
for writing them to persistent storage.

There are now 4 files associated with this class, holding various pieces of its state that
should be consistent.  These are everything from a main XML file of account information that
must always be retained, to a binary file of per-day statistics that can be thrown away at
any time.  Writes of these files as scheduled at various times based on their importance of
the frequency at which they change.

Because the database no longer exists, there needs to be a new explicit interface for
interacting with the sync manager database.  This is provided by new APIs on IContentService,
with a hidden method on ContentResolver to retrieve the IContentService so that various
system entities can use it.  Other changes in other projects are required to update to the
new API.

The goal here is to have as little an impact on the code and functionality outside of
SyncStorageEngine, though due to the necessary change in API it is still somewhat extensive.
2009-05-05 15:40:53 -07:00