Commit Graph

1601 Commits

Author SHA1 Message Date
Dianne Hackborn
ca1bf21c51 Implement wifi part of issue #12973036: Improve power_profile.xml
Add battery stats tracking of wifi state.

Also update when we retrieve the current time to use a more
consistent value across stats tracking.

Change-Id: I6a7c3efd58ff2c8ea86dac141c8f848e7996d63f
2014-02-18 14:43:14 -08:00
Paul Lawrence
a9f387bdf0 Merge "Support default, pattern, pin and password encryption types" 2014-02-14 15:25:01 +00:00
Dianne Hackborn
d39ccd0ad9 Merge "Start tracking radio up time." 2014-02-13 17:56:12 +00:00
Dianne Hackborn
e13c4c0b66 Start tracking radio up time.
We now always turn on network state tracking for mobile,
and push this information down to battery stats.

In battery stats we use this to both log the changes in
the history and keep track of the total time the mobile
radio was active.

Power computation is switched over to using this information
to help determine power use, which will hopefully make it
more accurate (not counting inaccuracies in knowing when it
actually goes down).

Note yet done is aggregating this data per-uid, to better
emphasize which apps are causing the radio to be up.  Right
now we just spread the total time across all uids weighted
by the total number of packets they have sent and received.

Also put in the battery stats infrastructure for bluetooth to
address issue #12973036: Improve power_profile.xml

Change-Id: I39d11b7ff6ae4f336f253d1cba308d8569de7e0d
2014-02-13 17:55:40 +00:00
Paul Lawrence
8e39736f91 Support default, pattern, pin and password encryption types
Java plumbing to expose methods to get/set encryption type in
IMountService, and hooking up of those methods to the Settings app
so the type is set correctly.

Needs matching vold changes from
 https://googleplex-android-review.googlesource.com/#/c/412649/

Bug: 8769627
Change-Id: I70c0ed72d11f5ab6f0958a7f9c101b6822b13baa
2014-02-13 15:46:24 +00:00
Paul Duffin
5ea06c59be am 4de91118: am 0741e11c: am 75d67c6a: am d562a9b5: Merge "Improve Parcel\'s handling of non-primitive arrays"
* commit '4de9111819638b70dd6fb58094d7a61477fc59da':
  Improve Parcel's handling of non-primitive arrays
2014-02-12 23:01:39 +00:00
Paul Duffin
0741e11c65 am 75d67c6a: am d562a9b5: Merge "Improve Parcel\'s handling of non-primitive arrays"
* commit '75d67c6aa051392e711fde3b901a4f2c62f983db':
  Improve Parcel's handling of non-primitive arrays
2014-02-12 19:23:01 +00:00
Paul Duffin
ac5a0828c1 Improve Parcel's handling of non-primitive arrays
Treat arrays other than actual Object arrays (i.e. those whose component type
is actually Object) and the primitive arrays already handled specially by
Parcel as Serializable's.

Issue: 64583
Change-Id: I3ff797f3262e77e4de27f35709bceee5410d1ed4
2014-02-11 16:49:25 +00:00
Kenny Guy
a52dc3eb40 Add concepts of related users and managed profiles to user manager.
Related users are a group that will share things like notifications.
Managed profiles are a profile of another user.

Change-Id: I2d0532f1abf939810f0fa3fc7c77ad13fa567833
2014-02-11 15:33:14 +00:00
Dianne Hackborn
68ac5cef63 Merge "Battery stats: more events, fixes." 2014-02-07 21:56:45 +00:00
Dianne Hackborn
eaf2ac464b Battery stats: more events, fixes.
Add new history events for top application package and
foreground application packages.

Doing this involved a fair amount of improvement to history
events.  The event code is now separated out to have "start"
and "finish" identifies, and we use that to now keep track
of which events are active.  With that, when resetting the
stats, we can spit out all of the currently active events at
the front of the new history.

Also fixed some problems when I re-arranged the history delta
int bits that were conflicting with the packing of the battery
status bits.  These packing structures are changed to work
together correctly.

Change-Id: Ic8b815060dd8a50ff4a0a209efc2e1044215cd88
2014-02-07 13:45:01 -08:00
Jeff Sharkey
ebf8ad5d91 Update DrmOutputStream to use raw FileDescriptor.
This allows DownloadManager to use FDs, paving the way for downloading
directly to content:// Uris.

Also return flag indicating if deleteOlderFiles() actually deleted
anything.  Update tests to verify.

Bug: 5287571
Change-Id: I2579e5e2113f31b2860d7b021bd61c91b6310963
2014-02-06 09:47:38 -08:00
Dianne Hackborn
3d658bf20e Improve logging of first wake lock, history size.
We now try to have a better label for the first wake lock
that is acquired in the log.  This is done in two ways:

- The alarm manager now sorts the alarms it is going to
  execute so that wakeup alarms are first, which are more
  important w.r.t. which one should be logged.
- There is a new power manager facility to make a wake lock
  as "unimportant for logging," which just means in battery
  stats that a wake lock acquired after that can be considered
  the actual one to log.  This is only used by the alarm manager
  to mark its TIME_TICK alarms as unimportant for logging.

Also reworked the battery history code to be cleaner and a bit
smaller.  There is no longer a separate EVENT command, instead
the event code and tag are just another thing that can be included
in an UPDATE command.

The bits used in the first history int are also re-arrange, so
that only the ones that really change a fair amount in the state
bits are up at the top and there is no longer space used for
the command code (since now it is always just UPDATE).  This
allows us to have more room for the time delta at the bottom,
to better avoid situations where we need to write an int delta.

Change-Id: I1bb860ae5b558a248800b090b03a84fbf7acd68a
2014-02-05 16:40:51 -08:00
Dianne Hackborn
e8d916c04c Merge "More battery history improvements." 2014-02-03 21:32:33 +00:00
Dianne Hackborn
71fc13eb58 More battery history improvements.
- Better batching of history items.  Fixed problems where empty
  entries would be created because state toggles got lost.
- The string pool is now a HistoryTag pool, containing both a string
  and uid; now an entry only requires 16 bits in the history data.
- Acquiring the first wake lock also now includes a HistoryTag
  identifying who did the aquisition.
- Cleaned up printing of signal strengths and cell radio types.
- There was code that tried to allow you to add new history entries
  while iterating the history...  but these should never happen
  together, so turned that into a failure...  and fixed an issue
  where we could leave the battery stats in a state where it
  thinks it is continually iterating.

Change-Id: I1afa57ee2d66b186932c502dbdd633cdd4aed353
2014-02-03 10:58:50 -08:00
Narayan Kamath
fd6a44d0b5 am ff62e966: am 149510e0: am b9f960e0: Merge "Fixed cancel() not working correctly"
* commit 'ff62e966b60bb20dc7c3384485816b1e7bf06057':
  Fixed cancel() not working correctly
2014-01-31 16:41:42 +00:00
Narayan Kamath
ff62e966b6 am 149510e0: am b9f960e0: Merge "Fixed cancel() not working correctly"
* commit '149510e010b46a445355a8d7fcdb8401125b92c3':
  Fixed cancel() not working correctly
2014-01-31 16:29:16 +00:00
jl1990
3cd12a5155 Fixed cancel() not working correctly
The method handleMessage(Message msg) from mHandler variable was
not checking if the timer was cancelled, so
sendMessageDelayed(obtainMessage(MSG), delay) was keeping the
timer alive. The patch simply adds a boolean and checks if the
CountDownTimer was cancelled before calling
sendMessageDelayed(obtainMessage(MSG), delay)

bug: https://code.google.com/p/android/issues/detail?id=58668

Change-Id: Ic6bbb9d33a3616f8503db222513cc14ad2270cb8
Signed-off-by: jl1990 <jlcarrasco1990@gmail.com>
2014-01-30 13:46:44 +00:00
Narayan Kamath
ef099b7183 am 4a587146: am 09d07d0d: am e3e4b405: am 9846fb69: am 50afaefd: Merge "AArch64: Make Binder and Parcel 64-bit compatible"
* commit '4a58714606fdeb2e740b0ce51ea5074783e2ecf4':
  AArch64: Make Binder and Parcel 64-bit compatible
2014-01-29 12:50:02 +00:00
Narayan Kamath
4a58714606 am 09d07d0d: am e3e4b405: am 9846fb69: am 50afaefd: Merge "AArch64: Make Binder and Parcel 64-bit compatible"
* commit '09d07d0d33d44fc87c02a8f607ecb7b96dbb4145':
  AArch64: Make Binder and Parcel 64-bit compatible
2014-01-29 10:54:26 +00:00
Narayan Kamath
09d07d0d33 am e3e4b405: am 9846fb69: am 50afaefd: Merge "AArch64: Make Binder and Parcel 64-bit compatible"
* commit 'e3e4b40577032f6fad38bfbeb9c2b40df89f0ef9':
  AArch64: Make Binder and Parcel 64-bit compatible
2014-01-29 10:51:51 +00:00
Narayan Kamath
e3e4b40577 am 9846fb69: am 50afaefd: Merge "AArch64: Make Binder and Parcel 64-bit compatible"
* commit '9846fb695a3c41aabde4ca0061d583b35f9621d1':
  AArch64: Make Binder and Parcel 64-bit compatible
2014-01-29 10:48:52 +00:00
Dianne Hackborn
5f4a5f9536 Add "start time" timestamp to battery stats.
Change-Id: I902269b98b40b2421245bfd8971f34df5ff9214e
2014-01-24 17:27:02 -08:00
Ashok Bhat
8ab665dda4 AArch64: Make Binder and Parcel 64-bit compatible
Changes include
[x] Long is used to store native pointers

[x] Added new method obtain(long obj) to Parcel. Binder
    uses this method instead of obtain(int obj).

[x] obtain(int) has been changed to throw unsupported
    operation exception.

Change-Id: I408e0f2a24deb28c9277d86670653a51eb314266
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Craig Barber <craig.barber@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-23 16:25:19 +00:00
Narayan Kamath
b34a4615f8 Hide android.os.Parcel.obtain(int).
This will break on 64 bit because 64 bit pointers are
wider than java int.

Also, this method technically isn't a public API because
it's a protected method on a final class. It shows up in
our api.txt files because of a quirk in the API generation
system.

Change-Id: I2b574943008ed34696b048195c0cac6af1aa0a3b
2014-01-23 14:26:29 +00:00
Dianne Hackborn
39e79006cf Merge "Battery stats improvements." 2014-01-22 22:18:13 +00:00
Dianne Hackborn
099bc627c4 Battery stats improvements.
- Adjust total power use when there is unaccounted power so that our
  percentages don't end up > 100%.
- Fix accounting of isolated uids to be against the owning real app
  uids.
- Rework how we put cpu use into the battery stats to no longer need
  this uid name cache that can confuse the uid it is associated with.
- Finish implementing events in the history, adding a string pool and
  reading/writing/dumping them.
- Add first two events: processes starting and finishing.
- Fix alarm manager reporting of wakeup alarms to be adjusted by the
  WorkSource associated with the alarm, so they are blamed on the
  correct app.
- New "--history" dump option allows you to perform a checkin of
  only the history data.
- Fixed BitDescription bug that would cause incorrect printing of
  changes in some states.

Change-Id: Ifbdd0740132ed178033851c58f165adc0d50f716
2014-01-22 14:09:02 -08:00
Jeff Brown
509cc13b70 am e2c9cd58: Merge "Refactor display manager service to new pattern." into klp-modular-dev
* commit 'e2c9cd583f4f706b48270b8cbe84df627c69af24':
  Refactor display manager service to new pattern.
2014-01-18 01:53:32 +00:00
Jeff Brown
4ccb823a9f Refactor display manager service to new pattern.
Transform DisplayManagerService into a SystemService and start cleaning
up other local services that it uses from window manager and input manager.

Clean up service thread initialization.

Remove unnecessary static variables from ActivityManagerService.

It's starting to become clear that we really need a better way to manage
service dependencies.  Boot phases don't quite cut it.

Change-Id: If319dbd7cbfbd4812fe55ece969e818d4b20755b
2014-01-16 22:16:42 -08:00
Jeff Sharkey
a17059b787 Merge "Run finalizers before counting for StrictMode." 2014-01-16 23:15:17 +00:00
Doug Zongker
3b0218b0ae boot into recovery via the pre-recovery service
Change PowerManagerService to start the pre-recovery service rather
than rebooting directly, when requested to reboot into recovery.  Add
a new RECOVERY permission which a caller needs (in addition to REBOOT)
in order to go to recovery.

Bug: 12188746
Change-Id: I39121b701c4724558fe751adfbad79f8567faa43
2014-01-16 12:54:59 -08:00
Jeff Sharkey
6f3a38f3af Run finalizers before counting for StrictMode.
Otherwise we sometimes end up counting objects strongly referenced
by the finalizer queue, and falsely detecting an instance leak.

Bug: 12533002
Change-Id: I144c941a3dfb0cbb837b98e80d2f49ffc9ca13c7
2014-01-16 12:46:43 -08:00
Jeff Brown
09d30981f8 resolved conflicts for merge of 6f357d32 to master
Change-Id: I1979e6ed1acddbe656f5010114fd900f10865e75
2014-01-16 11:44:20 -08:00
Jeff Brown
6f357d3284 Start untangling system server early bootstrapping.
Refactored SystemServer to get rid of a bunch of legacy cruft related
to how the ServerThread used to be started up.

Create system context first when system server starts.  This removes
the tangled initialization order dependency that forced us to start
the activity manager service before most anything else.

Moved factory test related constants into the FactoryTest class.

Partially migrated Installer, ActivityManagerService, and
PowerManagerService to the new SystemService pattern.  There's more
work to be done here, particularly around the lifecycle of the
power manager.

Bug: 12172368
Change-Id: Ia527dd56e3b3fd90f9eeb41289dbe044921230d4
2014-01-16 11:24:58 -08:00
Narayan Kamath
ab8643452a Track AArch64 changes from AOSP.
mPtr is now long, not int.

Change-Id: I75297cbef3571f8f0cc02a35a06c1bc1f4fbe416
2014-01-16 16:01:22 +00:00
Narayan Kamath
5875c94c59 am 275586aa: am 7471dfc4: am 42defa02: am faa62aac: am 84ee7930: Merge "AArch64: Use long for pointers in android/os/MessageQueue"
* commit '275586aa53889a851e0b739e408896861d76e3a8':
  AArch64: Use long for pointers in android/os/MessageQueue
2014-01-16 15:58:04 +00:00
Narayan Kamath
1bf3ab08db am c45068e4: am d7a54c65: am 31f10bb2: am 80b3dd0d: am 27a647bf: Merge "AArch64: Use long for pointers in android/os/MemoryFile"
* commit 'c45068e4a48053447413783e549be7273e38ea97':
  AArch64: Use long for pointers in android/os/MemoryFile
2014-01-16 15:57:29 +00:00
Narayan Kamath
7471dfc4a8 am 42defa02: am faa62aac: am 84ee7930: Merge "AArch64: Use long for pointers in android/os/MessageQueue"
* commit '42defa02337b94d25714fe737f749f2c3300c790':
  AArch64: Use long for pointers in android/os/MessageQueue
2014-01-16 15:38:29 +00:00
Narayan Kamath
d7a54c6574 am 31f10bb2: am 80b3dd0d: am 27a647bf: Merge "AArch64: Use long for pointers in android/os/MemoryFile"
* commit '31f10bb21b24824c5dbf60b420239513f02b9e55':
  AArch64: Use long for pointers in android/os/MemoryFile
2014-01-16 15:38:00 +00:00
Narayan Kamath
42defa0233 am faa62aac: am 84ee7930: Merge "AArch64: Use long for pointers in android/os/MessageQueue"
* commit 'faa62aaca5f4a149f20487d42279fefc7d356428':
  AArch64: Use long for pointers in android/os/MessageQueue
2014-01-16 07:35:20 -08:00
Narayan Kamath
31f10bb21b am 80b3dd0d: am 27a647bf: Merge "AArch64: Use long for pointers in android/os/MemoryFile"
* commit '80b3dd0d8e333905e9f2a3a844bc524d41df7da2':
  AArch64: Use long for pointers in android/os/MemoryFile
2014-01-16 07:34:53 -08:00
Narayan Kamath
84ee7930bb Merge "AArch64: Use long for pointers in android/os/MessageQueue" 2014-01-16 12:12:15 +00:00
Narayan Kamath
27a647bf38 Merge "AArch64: Use long for pointers in android/os/MemoryFile" 2014-01-16 12:11:47 +00:00
Dianne Hackborn
c46809e997 Whoops add a line separator.
Change-Id: Ie596527a39319fcf3f80a444fed9e62f90163ea5
2014-01-15 17:53:02 -08:00
Dianne Hackborn
c8345b32c9 Merge "Add battery power use reporting to batterystats service." 2014-01-16 01:39:06 +00:00
Jeff Sharkey
4ca728c064 Detect removable and emulated secondary storage.
Also rename existing secondary storage API to match naming
convention in rest of class.

Bug: 11536709
Change-Id: I2684c817de4982b414893d2d9927a21e3f171d53
2014-01-15 17:00:56 -08:00
Dianne Hackborn
a7c837f043 Add battery power use reporting to batterystats service.
Move the BatteryStatsHelper class (which computes power use based
on the raw battery stats) out of the settings app and in to the
framework.  It is now used by batterystats dump output to print
the computed power information from its current stats.

This involved a lot of refactoring of the BatteryStatsHelper code
to remove all of the UI dependencies.  I also did a bunch of cleanup
in it, such as making all power computations be in terms of mAh.

Change-Id: I8ccf2c9789dc9ad34904917ef57050371a59dc28
2014-01-15 16:20:44 -08:00
Jeff Hao
70216e599e am ac20b469: am 6c13f384: am 56b11064: am 9a5005a3: am f6730d26: Merge "Add sample profiling interface to startMethodTracing."
* commit 'ac20b469259129df948bae1fa5434098b1801185':
  Add sample profiling interface to startMethodTracing.
2014-01-15 19:50:53 +00:00
Jeff Hao
6c13f38474 am 56b11064: am 9a5005a3: am f6730d26: Merge "Add sample profiling interface to startMethodTracing."
* commit '56b110649424534de36ca41b3e352a73b6bdf3c0':
  Add sample profiling interface to startMethodTracing.
2014-01-15 19:45:06 +00:00
Jeff Hao
56b1106494 am 9a5005a3: am f6730d26: Merge "Add sample profiling interface to startMethodTracing."
* commit '9a5005a3bfa419cb856a83ca34a67556d9fd5b74':
  Add sample profiling interface to startMethodTracing.
2014-01-15 11:41:30 -08:00