Merge commit 'b6391d6377883586995127c9926c1b5b8035fd60'
* commit 'b6391d6377883586995127c9926c1b5b8035fd60':
Allow arrays of values for power profile data.
Parse arrays for data that has different levels with non-linear
power increase.
Track radio data awake_time from kernel and mobile/total data
transfers.
Use dummy values for default power_profile.xml. Actual values will
be in a product overlay.
Merge commit '9e09e0f439ab30b8856d46827623652d09b7477b'
* commit '9e09e0f439ab30b8856d46827623652d09b7477b':
zygote: Add CAP_SYS_NICE to system server capabilities
Merge commit 'df01deaacff82b918b4f0ba774d5ad3087543629'
* commit 'df01deaacff82b918b4f0ba774d5ad3087543629':
More restore plumbing, plus add suggested-backoff to transport API
Adds most of the code for a background-thread restore process, structured much
like the backup thread. Broke some common functionality out into a helper
function for doing a synchronous wait for a requested agent to attach.
Added a method to IBackupTransport whereby the transport will be asked for
an opinion on whether this is a good time for a backup to happen. It will
reply with the results of its policymaking around backoff intervals, time-of-day
selection, etc.
We now supply an array of RestoreSet objects instead of wacky Bundle
shenanigans. Also, pushed beginRestoreSession() out to the BackupManager
concrete interface class so that SetupWizard can use it.
(beginRestoreSession() is @hide, non-privileged apps cannot use it. It's
also guarded by android.permission.BACKUP enforcement.)
Restore is a fairly complicated, somewhat stateful process, so we introduce
a new interface to encapsulate the various bits and pieces into a nicely
separable component. In particular, this will make it much cleaner to
open and interrogate an expensive-to-construct transport and then reuse it
for the actual restore process itself.
Merge commit 'b4a6188a74273611abcae05f3a3b1f0547548301'
* commit 'b4a6188a74273611abcae05f3a3b1f0547548301':
Add rough-draft restore API set to IBackupTransport
* getAvailableBackups returns the list of backup sets available for restore
* getAppSet() returns the set of apps available from a given backup set
* getRestoreData() streams the full backup data for a given application
(within a given backup set) into a FD; that data will be handed to the
app's backup agent for processing.
Instead of just passing a package name to performBackup, pass the whole
PackageInfo struct, explicitly including the list of signatures for the package.
No need to make each transport look this up individually when it's a necessary
part of the backup payload for each app.
* Put in some permission enforcement around agent connection notification
and full-backup scheduling.
* Full backup now applies to any package, not just backup participants who
have declared their own android:backupAgent
* The process of running the backup operation on the set of apps who have
been queued for it is now done in a separate thread, with a notification
mechanism from the main Backup Manager service to pass along new-agent
binding knowledge. There's no longer one do-backup message on the primary
Handler per target application.
* The new backup thread sets up the desired transport now and passes
along the newly backed-up data to it for each backup target. Two
transports have been defined so far, GoogleTransport and AdbTransport;
both are stubs at present.
Note that at present the backup data output file seems to be properly
created, but after doBackup() is called on the test app's agent it's
still zero size.
* Put in some permission enforcement around agent connection notification
and full-backup scheduling.
* Full backup now applies to any package, not just backup participants who
have declared their own android:backupAgent
* The process of running the backup operation on the set of apps who have
been queued for it is now done in a separate thread, with a notification
mechanism from the main Backup Manager service to pass along new-agent
binding knowledge. There's no longer one do-backup message on the primary
Handler per target application.
* The new backup thread sets up the desired transport now and passes
along the newly backed-up data to it for each backup target. Two
transports have been defined so far, GoogleTransport and AdbTransport;
both are stubs at present.
Note that at present the backup data output file seems to be properly
created, but after doBackup() is called on the test app's agent it's
still zero size.
Track the foreground CPU time of an activity so that we can tell if apps are
spending more time in the background compared to foreground.
Update power profile values for screen backlight and GPS.
Fix some javadoc bugs (milliseconds vs. microseconds).
Merge commit '2ba3223cc9a4deb2980ba3c15a9b25c5652166a8'
* commit '2ba3223cc9a4deb2980ba3c15a9b25c5652166a8':
Add a new method to load html data into the WebView.
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.
Merge commit 'aa9833885d89d42a0cd0b4202485e67b63d51412'
* commit 'aa9833885d89d42a0cd0b4202485e67b63d51412':
Qualify a type and add some explanatory comments.
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.
Merge commit '15e74b9da8b4cda11ee54da1e77a02d1a86c944a'
* commit '15e74b9da8b4cda11ee54da1e77a02d1a86c944a':
Temporarily suppress flaky test LocationManagerProximityTest until test harness support can be rolled out.
Fix build breakage
Revise the ImageButton class description to include information
Record statistics about whether HTTP connections are reused.
Merge commit 'd1f7b3a5720a4d6d92c4eea5a1fe812a790a7442'
* commit 'd1f7b3a5720a4d6d92c4eea5a1fe812a790a7442':
New feature to track down #1846038. Adds the ability to export flags encoded in int values so as to make them human readable in HierarchyViewer.
* changes:
New feature to track down #1846038. Adds the ability to export flags encoded in int values so as to make them human readable in HierarchyViewer.
* 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.
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.
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.
Merge commit '2bc9e139655666e3c6a58d8fa74a12111b06cafd'
* commit '2bc9e139655666e3c6a58d8fa74a12111b06cafd':
TypedProperties: add getStringInfo() to help deal with null strings