158 Commits

Author SHA1 Message Date
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
Christopher Tate
22b8787ed4 Squashed commit of the following:
Author: Christopher Tate <ctate@google.com>
Date:   Mon May 4 16:38:11 2009 -0700

    IBackupService now passes ParcelFileDescriptors rather than int fds

    The outlines of backup state file / data file handling are now in place as well
    in the BackupManagerService.

Author: Christopher Tate <ctate@google.com>
Date:   Thu Apr 30 12:40:19 2009 -0700

    Hide the backup stuff for now

    Also adjust based on comments:
    + changed service intent string to conform to usage guidelines
    + only publish the IBackupService binder when invoked with the right
      intent action
    + docs tweaks
2009-05-04 20:19:21 -07:00
Owen Lin
3413b8983a Let screenOrientation="behind" works as expected 2009-05-01 19:31:33 -07:00
Mike Lockwood
275555c8eb location: Add support for location providers outside of the system process.
Also added new permissions android.permission.INSTALL_LOCATION_PROVIDER
and android.permission.INSTALL_LOCATION_COLLECTOR to the public API.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-05-01 15:06:31 -04:00
Mike Lockwood
15e3d0f082 location: Use ILocationProvider Binder interface for all location providers.
This change eliminates the LocationProviderImpl class which had been used
for location providers running in the system process.
Now the LocationProvider base class is only used to implement the
LocationManager.createProvider() method for retrieving provider information.
Added a new IGpsStatusProvider interface for providers that serve GPS status.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-05-01 08:24:47 -04:00
Marco Nelissen
54796e7405 Make the home screen come up in the simulator. 2009-04-30 15:16:30 -07:00
Christopher Tate
a8bf815c61 Add android.backup.BackupManager
Also tweak the dataChanged() api to have the client supply a package name.  We
don't necessarily TRUST this, but we use it to narrow the set of packages requesting
a backup pass, no longer blithely scheduling a pass for all packages associated
with the caller's uid.
2009-04-30 11:36:21 -07:00
Christopher Tate
487529a70c First baby steps towards settings backup
This change adds a sketched outline of the backup system architecture, with
all of the major pieces represented other than client-side helpers for
specific types of data.  IBackupManager and BackupService are public so that
we can write test apps against SDK-domain symbols from the outset.

What code exists in this change hasn't been tested and may crash.  It's the
beginnings of the real implementation but of course is barely begun.
2009-04-29 14:49:30 -07:00
Mike Lockwood
662ea09a71 location: Optimize use of mProviders ArrayList.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-28 21:38:06 -04:00
Mike Lockwood
b8adcad61d location: Remove obsolete fake provider support.
Now that we have GPS support in the emulator and public APIs for mock providers,
the fake provider support is no longer needed.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-28 13:23:57 -04:00
Mike Lockwood
79762a3ee3 location: Move DummyLocationProvider.java and LocationProviderImpl.java to the internal package.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-28 12:42:08 -04:00
Mike Lockwood
3d12b51ee3 location: Run LocationManagerService in a separate thread.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-28 07:28:33 -04:00
Mike Lockwood
48f1751822 location: Location Manager wakelock cleanup, phase 2
Remove two second timeout for wakelock when broadcasting events to
location listeners. Instead, hold wakelock until receipt of the event
is acknowledged, either via a Binder call or the
PendingIntent.OnFinished interface.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-23 19:27:41 -07:00
Android (Google) Code Review
0b8ffd17bc Merge change 460 into donut
* changes:
  More optimization of dumpsys output.
2009-04-22 18:33:57 -07:00
Dianne Hackborn
1d442e0d99 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).
2009-04-22 18:03:21 -07:00
Mike Lockwood
a0e3cd3853 Fix timing problem that was introduced when we removed location provider polling
The wake lock was not being held until after we enabled location tracking,
so the check to see if the wake lock was held before propogating a
new location prevented us from receiving a network location as soon as we
enabled the provider.
This check is not necessary anyway, so this change removes it.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-21 21:27:33 -07:00
Mike Lockwood
9ce7217c8e location: Remove support for a message that never actually gets sent.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-21 20:18:41 -07:00
Mike Lockwood
61fc286e8f location: Remove unnecessary code that monitors the screen on/off state.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-21 20:02:52 -07:00
Android (Google) Code Review
3ea1f8759d Merge change 372 into donut
* changes:
  WifiService: Cleanup parsing of wifi scan results.
2009-04-21 15:12:25 -07:00
Mike Lockwood
b30475ecef WifiService: Cleanup parsing of wifi scan results.
Also add support for possitive RSSI values, fixing b/1786306

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-21 13:55:07 -07:00
Mike Lockwood
6de3154674 location: Add some null pointer checks.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-21 12:13:35 -07:00
Android (Google) Code Review
31d40ab260 Merge change 360 into donut
* changes:
  location: Location Manager wakelock cleanup, phase 1
2009-04-21 09:40:38 -07:00
Mike Lockwood
e2b44c5aaf location: Location Manager wakelock cleanup, phase 1
Move cell and wifi lock from LocationManagerService to NetworkLocationProvider

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-21 09:38:18 -07:00
Dmitry Shmidt
6d31eb8953 Merge branch 'readonly-p4-donut' into donut 2009-04-20 09:50:17 -07:00
Dmitry Shmidt
42554c10b6 AI 146934: Make TI Wifi driver choice framework-independent - part 1
BUG=1786365

Automated import of CL 146934
2009-04-20 09:48:54 -07:00
Mike Lockwood
98cb667974 More Location Manager cleanup:
Move LocationCollector support out of GpsLocationProvider.
Don't disable GPS when screen is off.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-17 18:06:18 -04:00
Mike Lockwood
2f82c4eb0b location: Generalize support for location provider usage tracking.
This replaces two different mechanisms that were used for GPS and Netork
location provider tracking.
Move BatteryStats logging of GPS usage from LocationManagerService to
GpsLocationProvider.
Clean up tracking of location listeners in LocationManagerService and remove
some HashMaps that are no longer needed.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-17 17:00:32 -04:00
Mike Lockwood
a55c321329 location: Move geocoding support from ILocationProvider to a new interface.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-04-15 11:17:37 -04:00
Android (Google) Code Review
f2aad4a468 Merge change 132 into donut
* changes:
  Let's do bug #1769910 actually right.
2009-04-14 13:15:43 -07:00
Dianne Hackborn
f210d6b75e 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.
2009-04-13 18:42:49 -07:00
Android (Google) Code Review
0887540fa8 Merge change 63 into donut
* changes:
  Remove references to android.util.Config
2009-04-13 14:12:27 -07:00
Christopher Tate
06ba55476e Integrate new power connnect/disconnect broadcasts
Two new broadcasts, Intent.ACTION_POWER_CONNECTED and
Intent.ACTION_POWER_CONNECTED, that are issued when the device is plugged
and unplugged from USB or AC power.  This pulls two changes from the
open-source Gerrit repo into the internal Donut codeline:

1241 fda6fae Added broadcasts for external power events.
9491 37f8ca1 Fix system service crash when booting while on battery power

The current.xml API description has also been updated to include the
new Intent fields; the new API was approved in the original OSS change.
2009-04-09 16:03:56 -07:00
Dave Bort
cfe6524071 Remove references to android.util.Config
The semantics of Config.DEBUG will be changing soon, and all other
Config.* fields will become deprecated/hidden.
2009-04-09 14:51:04 -07:00
Nick Pelly
7680d67dc7 Merge branch 'readonly-p4-donut' into donut 2009-04-08 15:10:29 -07:00
Nick Pelly
9ac932179c AI 145201: Hold wakelock while delaying for audio route switch after headset unplug.
Fixes bug where we go to sleep before switching audio, and we lose audio until the apps CPU wakes up again.
  BUG=1774615

Automated import of CL 145201
2009-04-08 15:09:15 -07:00
Dianne Hackborn
6447ca30b8 Fix issue #1769910 (Track activity launch times)
The usage stats service now collects per-activity launch time stats.  There are a number of fixes and improvements to its statistics management and collection; it now operates its calendar in GMT and ensures that for checkin purposes it always reports one day and only one complete day to the checkin service.

Also change the checkin option from "-c" to "--checkin" since it is really a special thing.
2009-04-07 19:50:08 -07:00
Mike Lockwood
e932f7f2a4 AI 144663: Use Binder interfaces between NetworkLocationManager and LocationManagerService.
This fixes a hack that was added when NetworkLocationManager was moved out of the framework.
  This also lays the groundwork for supporting location providers outside of the system process.
  BUG=1729031

Automated import of CL 144663
2009-04-06 10:51:26 -07:00
Mike Lockwood
f113fbe67b AI 144620: Clean up interface between NetworkLocationProvider and LocationManagerService (part 1)
Move broadcast receivers for wifi scan results and battery status
  from LocationManagerService to NetworkLocationProvider
  Add a Service for the NetworkLocationProvider, so we can install it from its
  own thread rather than from BOOT_COMPLETED or callback from LocationManagerService.
  (this Service was also required for receiving Intents in NetworkLocationProvider)
  BUG=1729031

Automated import of CL 144620
2009-04-06 05:17:28 -07:00
Mike Lockwood
66eb4acb89 AI 144599: Location Manager cleanup:
Move PhoneStateListener for listening to cell location changes from LocationManagerService
  to the NetworkLocationProvider.
  Move CellState class out of the core framework to the NetworkLocationProvider service.
  NetworkLocationManager now notifies the collector of its state, rather than LocationManagerService.
  BUG=1729031

Automated import of CL 144599
2009-04-05 14:50:22 -07:00
Mike Lockwood
4e50b78bda AI 144452: More Location Manager cleanup:
Remove 1 Hz "heartbeat" polling of location providers from LocationManagerService.
  Now location providers report their location to LocationManagerService via
  LocationManager.setLocation() rather than waiting to be polled.
  This reduces GPS fix latency by up to one second.
  Remove LocationProvderImpl.getLocation().
  Since we are no longer polling, this method is no longer necessary.
  BUG=1729031

Automated import of CL 144452
2009-04-03 08:24:43 -07:00
Mike Lockwood
9637d47489 AI 144372: Cleanup Settings support for enabling and disabling location providers:
LocationManagerService now listens for changes to settings,
  making LocationManager.updateProviders() unnecessary.
  Removed LocationManager.updateProviders()
  Added Settings.Secure.setLocationProviderEnabled(), which is a thread-safe way
  of enabling or disabling a single location provider.
  This is safer than reading, modifying and writing the LOCATION_PROVIDERS_ALLOWED directly.
  BUG=1729031

Automated import of CL 144372
2009-04-02 21:41:57 -07:00
Evan Millar
633a1740ce AI 144333: Change the way the battery level tracking code works in BatteryStats. Before we simply kept track of the last
2 levels as recorded at plug and unplug events. During charge cycles this would be useful because it would tell us
  what the start and end levels were in the last discharge cycle. However during a discharge cycle this information could
  be misleading as it would give you the level at the last unplug event (beginning the the discharge cycle) and last plug
  event (end of the previous discharge cycle).
  Now we are still keeping track of 2 values, but they are "discharge cycle start level" and "discharge cycle current level".
  During a discharge cycle this will give you the level the current discharge cycle started at, and the current level. During
  a charge cycle the same data will be supplied as before (the start/end of the last discharge cycle).
  B=144249

Automated import of CL 144333
2009-04-02 16:36:33 -07:00