1e01d16982e6b22ec4c0e2d6dc1e261eb6f92c8e |
|
05-Dec-2014 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #17323751: Additional items in aggregated battery stats - Now aggregate number of times each process has crashed and ANRed. - Now aggregate total number of connectivity changes. - Now record connectivity changes in the history. Crash and ANR counts are new entries at the end of "pr" in checkin. Connectivity change counts is a new entry at the end of "m" in checkin. Connectivity changes in the history checkin are Ecn and include the type of connection and its state. Change-Id: I0c01186446034cf6c3fb97d45f5e3b5c69a0438a
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
ab4a81b3c625e33d04ae8070fcce6b6baee6522c |
|
10-Oct-2014 |
Dianne Hackborn <hackbod@google.com> |
Improve some docs, fix some debugging. - Add docs to Binder, Messenger, ResultReceier to explain their relation (or lack there-of) to process lifecycle. - Clarify some aspects of process lifecycle for services. - Fix help text of am command. - Fix per-package dumping of battery stats to not include history. - Fix per-package dumping of proc stats to only include aggregated and current stats and fix some formatting. - Fix per-process dumping of meminfo to have an option to interpret the input as a package, so including all processes that are running code of that package. - Fix top-level per-package debug output to correctly include all of these improvements and give them a little more time (10s) to complete for timing out. Change-Id: I2a04c0f862bd47b08329443d722345a13ad9b6e2
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
2f1993ec460166413e7887f151630f6708077c0f |
|
26-Sep-2014 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #17671802: "content" command always prints... ..."uid 2000 does not have android.permission.UPDATE_DEVICE_STATS" Make sure to clear calling identity before getting into the guts of the activity manager. Also fix the places the activity manager calls in to battery stats to not require a permission check, anyway. Change-Id: Ifd90937875b9fe0c36aa3f5cf1ec173746914e6b
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
d953c53d3b04d772bb1b62ede1c2011641ca82b5 |
|
17-Aug-2014 |
Dianne Hackborn <hackbod@google.com> |
Work on issue #16629489: Google (Play?) Services eating through battery There is a bug in how we deal with name overflows combined with resetting the battery stats data. If we do a reset while a wakelock is being actively held that has been put into the overflow bucket, then we can end up reducing the number of known wake locks in the list so when after that it is released we try to release it under its real name rather than the overflow name. This means we need to keep track of which wake locks have been placed in the overflow bucket while they are actively being used, so we can be sure to properly handle it as part of that bucket until it is eventually released. This makes things... somewhat more complicated. So now we have a class to take care of all these details, and also use it for other places where we have the same overflow semantics sync and job stats. Also fix potential deadlock -- BatteryStatsHelper needs to call on to ConnectivityManager to find out of there is telepohny, however we use that class when doing a dump while the battery stats lock is held. To fix this, we check the connectivity state up in the battery stats service before acquiring the lock and propagate that information through to the dump code. Change-Id: Ib452206af5c36f4b0f03cc94d2845d36613d1ba5
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
0068d3dcf1f1a804554a1a09e3b173ac12651786 |
|
07-Aug-2014 |
Dianne Hackborn <hackbod@google.com> |
Fix issue @16555033: Battery history overflowing too much - No longer track process starts/stops normally. - Increase buffer size to 256KB. - Buffer size increase requires reworking how battery stats are retrieved, since it is going to be hitting IPC limits. - Also, store the last full stats after a reset, to be reported at the next checkin. - Also, discharge and charge times are tagged with the screen and battery save state during that time. Change-Id: Ie108ac9b626846108a9bb858101ac2b93276ac16
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
10eaa8574bb220e7dddf9a78057f83dc64ee5687 |
|
23-Jul-2014 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #16467284: Make noteStartVideo and noteStartAudio nesting Also add new methods to clear these states, so we can avoid any nesting issues from getting the tracking state stuck. Change-Id: Iba0eaba2a9a186355c24d392f16118982c5331ed
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
fdb1956ff71ff57fcdaafaaeb7f42c19de3d7c2f |
|
12-Jul-2014 |
Dianne Hackborn <hackbod@google.com> |
Fix issue #15681802: Missing RESET:TIME in complete battery histories But wait, there's more! - Keep track of sync durations in the aggregated stats. - Add events for users that are running and in the foreground. - Rework the activity manager's tracking of stuff using battery in the background to be based on proc stats, which allows it to be better about determing when it should reset its tracking of background work. - Also add tracking of scheduled job execution, like we are doing for syncs. - And once I started hooking battery stats in to JobSchedulerService, I found a few things I couldn't stop myself from changing: (1) make it very explicit that it doesn't start scheduling jobs until we have reached the point in system boot where third party apps are allowed to run, and (2) adjust the various for loops to not use iterators. Change-Id: I69d812e27bcfee9e58a614f0f6b1c7545d7530b1
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
61659e5daaea80104d4d0fd567e78b5f757b5df4 |
|
10-Jul-2014 |
Dianne Hackborn <hackbod@google.com> |
Add tracking of uid process states in battery stats. We now keep track of how long each uid had processes in various states: foreground, active, running. This is based on a collapse of the various activity manager process states into these three bins. You'll see these in a checkin like this: 8,10013,l,st,61504,61504,83109 Also fix issue #16021555: App showing up as on "top" even when the screen is off. This is "fixed" by just saying we always report the current app at the top of the activity stack, regardless of the state of the screen. Change-Id: I1204904225101243eb00b43425d9806bffdd2ab9
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
abc7c499133fe640d6ece2b28d43b52e66cdaa9a |
|
01-Jul-2014 |
Dianne Hackborn <hackbod@google.com> |
Issue #15986092: Add power tracking of flashlight. Not yet hooked up. Change-Id: Id95e44ecc365e9f38169c0a629b0a48ddb29aa06
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
3251b9075246841a7b1ddecf10859b1abd858f33 |
|
20-Jun-2014 |
Dianne Hackborn <hackbod@google.com> |
Add some wifi tracking to battery stats. Now track supplicant state and wifi signal strength. Output looks like this: +12m45s235ms (1) 095 +wifi_full_lock +wifi_running wifi_signal_strength=3 wifi_suppl=scanning +12m46s095ms (1) 095 -wifi_full_lock wifi_suppl=associated +12m46s469ms (2) 095 wifi_suppl=completed +proc=u0a74:"com.google.android.videos" +12m52s103ms (1) 095 +wifi_full_lock wifi_suppl=disconn Also modify history dump so that when we hit a RESET or START command, we clear our previous history data, so the next event will include new data. This means if you are scanning through the output, you must at this point clear any binary stats you have like "running" or "wake_lock" or else you will continue to think they are on until whatever point later they get turned on and then back off. And a small bug fix in proc stats that would cause the system process to crash. Change-Id: Ibec416a1ef786d428bd0d1d86e6e3296c41f7648
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
2c43c339de5aaf4fef58aa9b5ac3af48609263a8 |
|
13-Jun-2014 |
Jeff Brown <jeffbrown@google.com> |
Resolve boot time dependencies related to the power manager. This change fixes a bug where native daemons may try to communicate with the power manager before it was fully initialized due to a race between publishing the binder service and completing init(). The solution was to simplify the dependencies related to the power manager. It turns out that most services that were passed in init are not actually needed until systemReady. What remained was a dependency on the activity manager to check permissions for incoming calls. So now we start activity manager first. However, the activity manager also depends on power manager for wakelocks. To break the cycle, we now defer initializing the activity manager's wakelocks until after the power manager has been started. Cleaned up a bunch of boot-time service dependencies so that we can have better confidence that they are correctly maintained. Bug: 13884219 Change-Id: If08e2d7ccd44e7026a72441bb6bd5afd7bb9fffe
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
16b0b56c79ee0bd068ce47ce4460c24b5e62311d |
|
04-Jun-2014 |
Dianne Hackborn <hackbod@google.com> |
Force write battery stats after a --history-since. This should help the stats be more consistent across system restarts. Change-Id: If1736608373aada8b55d72ecf80fbbc52bd288bd
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
fc0641340ff927d9c35d5613723d25858f751118 |
|
02-Jun-2014 |
Dianne Hackborn <hackbod@google.com> |
Some battery stats history fixes. - Now the full wake history uses the history tag if it can. Hopefully this will still result in a consistent history, since that isn't really want the tag is for... but the current implementation in places will probably make this work. - Possibly fix a bug with inconsistent state between partial history snapshots: after a snapshot is printed, don't allow any more batching into the most recent history entry, so the next snapshot will not miss anything that might get placed into it soon after. Also rework command line arguments for enable/disable to make these commands instead of options. Change-Id: Ia33445cad1538bf8df549cef284f1e736efbc079
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
9a7554300637902bbb25991ffba41a9b8f682eff |
|
16-May-2014 |
Dianne Hackborn <hackbod@google.com> |
Fix recording of wake_lock_in. There was a bug that would allow the nesting count to get off. Also better documentation of times in HistoryItem, and new option to disable resetting of the stats when unplugging. Change-Id: If1b39a02475c5b620c67b700a323a6d0462d5c61
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
cbefd8dd2befcb768f911a63becc427ec4c13250 |
|
14-May-2014 |
Dianne Hackborn <hackbod@google.com> |
Battery stats more wake history, power save mode. Add new option for battery stats to record the full wake lock history, and recording the current power save mode. Also add in some additional error constants when generating Binder error exceptions. And fix issue #14974572: Avoid repeating wakeup_reason at the beginning of history Change-Id: I7c1a2ab9569de216634f63d8ad69f1294ef1d235
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
e95c3cd89591ba586aa8a0f7a17660c6fb8770bc |
|
03-May-2014 |
Jeff Brown <jeffbrown@google.com> |
Plumb display state and interactive information to BatteryStats. Fixes an issue where dozing was treated the same as the screen being fully on. Now dozing is treated the same as the screen being fully off which is slightly better. The decision of how to represent this state is now internal to the battery stats so it can be improved later. Removed noteInputEvent() since it is unused. Bug: 14480844 Change-Id: Iee8cf8dce1a1f91c62678bb6d3d9fe567ad6db42
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
ab5c0ea43cf457b20ab4267a14b224f39e0511bf |
|
29-Apr-2014 |
Dianne Hackborn <hackbod@google.com> |
Add IBatteryStats API to retrieve current charge times. Also include charge/discharge information in dumpsys. Change-Id: Ica1b333ad334dc698d4a67da391b378757662f41
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
2ffa11e4b71c545e34533ef827bdc1a07fbe8246 |
|
22-Apr-2014 |
Dianne Hackborn <hackbod@google.com> |
Start collecting mobile radio activity from the radio. Hook in to the new radio API to find out when the radio is active and use that to track its state in batter stats. We also still have the data being tracked from the kernel's emulation, and continue to use that if we don't get data from the radio. Currently this monitoring is turned off until some issues in the radio can be fixed that are providing bad data. Also add a new API to get estimated drain and charge times. Change-Id: Ifc4900fabb8f848f9cda361dce698664ea75f175
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
a1bd79268be693f04f4adee90673d6ed400cc9fd |
|
21-Mar-2014 |
Dianne Hackborn <hackbod@google.com> |
Battery stats: track actually running time Use the uptime while creating the battery stats history to generate a new event indicating when the CPU is actually running. We can do this in combination with the new event reporting when the CPU comes awake, looking at the difference between the uptime and elapsed time at that point to determine when it last when to sleep. Also use this information to generate a new set of aggregated states, the uptime caused by each wake reason. Finally use new radio down timestamp to adjust the times we compute for radio use. Note that this information is not (yet) being used to adjust how these are recorded in the history. Change-Id: I723b3b526c8e7d64de0cac9d1193e04132d5a3e4
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
40c8725804f46c9d53f2815e0ee69e6cfb0152cc |
|
20-Mar-2014 |
Dianne Hackborn <hackbod@google.com> |
batstats: fix wake lock tracking, service bug - Fix bug I introduced in handling wake lock changes where we weren't iterating over the new work sources correctly. - Fix bug in ActiveServices that would wtf too much. - Prepare to start tracking uptime in the battery history. Change-Id: Ia94316be51bc6eab7b02f214a5c40c08e99cc3b1
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
e5167ca61e2c5607aad9041b44158581bc61b4d8 |
|
08-Mar-2014 |
Dianne Hackborn <hackbod@google.com> |
Reduce wake lock noise in battery history. When the work source of a wake lock was changed, this would cause the old wake lock to be released in battery stats before the new one was acquired (the power manager would correctly keep holding the associated wake lock). This resulted in a pointless entry in the battery history showing the last wake lock being released and a new one acquired. This change adds a new path in to battery stats to report when a wake lock has changed, allowing it to acquire the new wake locks first before the old ones, so it can't drop down to zero wake locks. This also provides better timing information, as the same current time can be used for both operations. In addition, added a new kind of history entry for the current time, so you can tell when in actual world clock time the battery data is happening. Change-Id: Ibbf2eed83bb93f31f60267889b7bc5b9e71e355f
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
c51cf03cf2458c8c137f60c7379f2cccf681d16f |
|
03-Mar-2014 |
Dianne Hackborn <hackbod@google.com> |
Start recording wakeup reasons in battery history. Depends on a modification to libsuspend so that we can get a callback each time the device wakes up, to read the current wakeup reasons from the kernel. These are then stuffed in to a new field in the battery history. Also add new dump options --history-start and --charged to better control what is dumped. Finally the alarm manager uses a "*walarm*" tag for history item wake locks that are coming from a wakeup alarm. Change-Id: I457571973d5b2b5fdc4e4b63ab16275db20d7edd
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
77b987f1a1bb6028a871de01065b94c4cfff0b5c |
|
27-Feb-2014 |
Dianne Hackborn <hackbod@google.com> |
Hold a wake lock while dispatching network activity events. Also add new API for determining whether the current data network is active, and thus better scheduling network operations. This API is designed to not be tied to a mobile network -- regardless of the network, apps can use it to determine whether they should initiate activity or wait. On non-mobile networks, it simply always reports as the network being active. This changed involved reworking how the idle timers are done so that we only register an idle timer with the current default network. This way, we can know whether we currently expect to get callbacks about the network being active, or should just always report that it is active. (Ultimately we need to be getting this radio active data from the radio itself.) Change-Id: Iaf6cc91a960d7542a70b72f87a7db26d12c4ea8e
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
a1f1a3c573acd91024fda0ceb3b921c73b186963 |
|
25-Feb-2014 |
Dianne Hackborn <hackbod@google.com> |
More battery stats. - Add events for sync. - Add more descriptive tags for wake events. - Fix battery reset. - Fix tracking of wifi data. Change-Id: Ic07f2a86a5ed33e7da57eb1108c31c777ecd801f
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
ca1bf21c511dc7d513b631a1af8498b5b08d107a |
|
14-Feb-2014 |
Dianne Hackborn <hackbod@google.com> |
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
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
e13c4c0b664dabdc069ca8f9601d96a337eb02f9 |
|
12-Feb-2014 |
Dianne Hackborn <hackbod@google.com> |
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
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
3d658bf20e2d56e36941e7407deebeec1276fbcf |
|
05-Feb-2014 |
Dianne Hackborn <hackbod@google.com> |
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
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
099bc627c463d9941e23e480f25a78a154429c55 |
|
22-Jan-2014 |
Dianne Hackborn <hackbod@google.com> |
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
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
09d30981f8e882ffaa336aa4665bfe348557895a |
|
16-Jan-2014 |
Jeff Brown <jeffbrown@google.com> |
resolved conflicts for merge of 6f357d32 to master Change-Id: I1979e6ed1acddbe656f5010114fd900f10865e75
|
6f357d3284a833cc50a990e14b39f389b8972254 |
|
16-Jan-2014 |
Jeff Brown <jeffbrown@google.com> |
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
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
a7c837f043c1ca0bdecd42645ba7da8c5717566d |
|
16-Jan-2014 |
Dianne Hackborn <hackbod@google.com> |
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
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|
9158825f9c41869689d6b1786d7c7aa8bdd524ce |
|
22-Nov-2013 |
Amith Yamasani <yamasani@google.com> |
Move some system services to separate directories Refactored the directory structure so that services can be optionally excluded. This is step 1. Will be followed by another change that makes it possible to remove services from the build. Change-Id: Ideacedfd34b5e213217ad3ff4ebb21c4a8e73f85
/frameworks/base/services/core/java/com/android/server/am/BatteryStatsService.java
|