History log of /frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e5795610bdc97aebfaa863b5134294aed5c7c1f2 05-Apr-2010 Amith Yamasani <yamasani@google.com> Fix a crash in BatteryStatsImpl, due to a previous fix.

This is probably the real fix for the original bug. The last line was probably not
well formed and resulted in an overrun in the native code.

Bug: 2564824
Change-Id: I8a9cc267f8045a61eff4b5d532258afa32a8b837
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
2098eadfba7aba5d667579222f0fac76d1235ff0 02-Apr-2010 Amith Yamasani <yamasani@google.com> Potential fix for bug: 2564824 : Device runtime restart in BatteryService

Look for corrupted bytes and replace with ?

If the problem is in the parsing code, then this will not help.

Change-Id: If33643f126a4099d4113e37760c6ef74683fe97e
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
4cee725b1fd3958d850fc83214797f76d5f6b468 19-Mar-2010 Christopher Tate <ctate@google.com> Use atomic++ rather than lock/++/unlock in the input dispatch code path

Decouples the input dispatch thread from the battery-stats object lock regime,
to avoid the possibility of ever blocking the input dispatch thread on its
behalf. The stats object is widely used and can sometimes be locked for a
very long time (on the order of seconds) during certain extensive dump
operations.

This change does not alter the data format of the battery stats' externalized
representations.

Fixes bug #2530346

Change-Id: Iee288be3bf4936641b532dceecb8f6de8f552bf0
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
1afd1c90ebe789b8d3a137004127a50d2db7e3b5 19-Mar-2010 Dianne Hackborn <hackbod@google.com> Maybe fix issue #2457218: Corrupt batterystats.bin file preventing phone boot - LIBtt68127

No steps to repro, but makes the code more robust by using the standard
JournaledFile class and doing sanity checks on the input it reads.

This required moving the JournaledFile class in to the framework (and
we really should get rid of either it or AtomicFile, but they have
different recovery semantics so that is tough). Also went through and
cleaned up the file management in various places.

Change-Id: Ieb7268d8435e77dff66b6e67bb63b62e5dea572e
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
9e0f5d9a63ba88c2bf69df0557f8c9696db370c4 23-Feb-2010 Dianne Hackborn <hackbod@google.com> Fix some random bugs.

2185256: After open &close of device keyboard shortcut does not added to Home desktop.

ActivityThread was losing the last saved state when restarting or launching into
a paused state.

2366174: defaults not cleared when they should be

PackageManagerService now removes any preferred activity records for a package
when it is uninstalled.

2154556: Battery stats can have an unbounded number of wake locks

We now start combining wake locks into one shared record when we hit a
maximum limit (currently 20).

2442519: Foreground services can have no notification by providing a bogus one.

If the notification manager rejects our notification, the service is forced to
no longer be in the foreground.

2442383: Finalization issues in com.android.server.am.PendingIntentRecord.java

Cleaned up finalization to call super class and avoid the big activity manager
lock (we still need to use the locks inside of the message system, but these
are much less likely to be a problem).

2284190: Cannot call a phone number using adb

We weren't getting the calling uid/pid in startActivity() if the caller did not
supply an application record.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
18d200fd2aa26e4c9b6ca7c38bb5fd6b81e40259 02-Feb-2010 Mike Chan <mike@android.com> BatteryStatsImpl: initalize audio timer

Signed-off-by: Mike Chan <mike@android.com>
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
1719a39a4c0ff3afbf9c9e5f03f20ba50f490902 08-Dec-2009 Ken Shirriff <kens@google.com> Migration to TrafficStats.

TrafficStats is the SDK version of NetStat.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
cfc893d27a59bddbc5d0da0038e8313f6c379f86 18-Nov-2009 Amith Yamasani <yamasani@google.com> Fix for 2267410 : Battery use doesn't show CPU usage on non-wiped devices

Due to a change in cpu stepping values, the batterystats.bin file needs to
be wiped for Battery Use app to show CPU cost correctly.
Bumping up the version number of the file fixes this.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
f37447bad3773b62176baa837908daf6edb44273 09-Oct-2009 Amith Yamasani <yamasani@google.com> Proper fix for zero signal strength and no_service. Fixes #2176141

Track phone service state changes and use a separate timer for out-of-service
since the hunting can timeout on some devices.

Store the timeout value in the config.xml, as it is device/network specific.

Settings App will also change to use the hunting duration to compute the cost
of zero signal.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
8550f255232eb4e4852466c5297fdc125887f5af 30-Sep-2009 Suchi Amalapurapu <asuchitra@google.com> Check if rename of backed up file fails before persisting new changes.
If not these system services will end up with inconsistent settings files
when the device runs out of storage.
Delete mangled settings file in PackageManager if the current write fails
so that we don't end up overwriting the backed up version with the
mangled version
Include null check when retrieving fwd locked resource for an existing package
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
53b707ba26055f3b7597db5826dee64987bfb83a 30-Sep-2009 Amith Yamasani <yamasani@google.com> Handle bad lines in /proc/wakelocks : Fix for 2124260

Use the return value from the native parser to skip over bad lines. When
the wakelocks overflow, there could be empty or badly formatted lines.
Skip over them.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
e43530ab571e901f94361078c7c1f970a0bd27f2 21-Aug-2009 Amith Yamasani <yamasani@google.com> Track CPU speed stepping to get more accurate CPU cost per app.

More CPU speed stepping happening with newer devices, so we need
to qualify CPU time with the CPU speed, since power consumption
varies greatly by speed. Apps that peg the CPU should get a higher
penaltly.

Also, fix for 2062930: NPE at VolumePreference.onKey()
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
82cb029e2a4907ee55fed4a00493b76b3e11a7a1 18-Aug-2009 Amith Yamasani <yamasani@google.com> Get At command count from Bluetooth headset.

Pass in the BT headset object when available to the BatteryStats.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
3f7e35c2c7d3d7f08f50c1d93cd16b1f49354ccc 14-Jul-2009 Amith Yamasani <yamasani@google.com> Bluetooth at command tracking.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
819f928f6a9dc3fdf408236f33e17f03a7dfed2c 25-Jun-2009 Amith Yamasani <yamasani@google.com> Add a method to Process to get uid for a pid.

Use the uids to track native processes. Cache the uids to avoid
checking /proc every time.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
32dbefda71c50bf848da21fb5d1255273439f90d 19-Jun-2009 Amith Yamasani <yamasani@google.com> Track native processes and airplane mode.

Turn signal strengths on/off when toggling airplane mode.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
2e418428987132ea66533cbc05f9c526eb59519a 23-Jun-2009 Dianne Hackborn <hackbod@google.com> Possibly fix an issue where we thought an app was always using GPS.

There may be some race conditions in the gps provider where it can cause a uid
to be double booked for gps usage and never released. Address this by tweaking
some locking (so mLocation and the uid array are protected by a lock both when
reading and writing). Also add some code to log a warning if someone tries to
note a particular uid multiple times, since the code will break in that case.

Finally, fix a problem in the battery stats where we weren't allowing a new Uid
structure to be created in many cases for calls coming in.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
3718aaabe6259dcf86a3666ff92d16e4be5da555 09-Jun-2009 Amith Yamasani <yamasani@google.com> 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.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
eaeb663bcd7a82b654954b42663232cbd7bef7e7 04-Jun-2009 Amith Yamasani <yamasani@google.com> Track activity foreground CPU usage for battery stats.

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).
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
c33fe6c9a71008d51aab7775532d73a3eaf12370 28-May-2009 Amith Yamasani <yamasani@google.com> Fix a hang during bootup.

Some data was not being written to the battery stats during shutdown. So there was insufficient
data when reading back at bootup.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
244fa5c05b2cc8c4c0754aeed4ee42c588ea89d1 22-May-2009 Amith Yamasani <yamasani@google.com> 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.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
58ff0217a617d5b03d18f0ef532f254f8ba6de2b 20-May-2009 Robert Greenwalt <robdroid@android.com> 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.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
e9b06d754af03faf27012fbed1e7559ec1ba7c79 19-May-2009 Wink Saville <wink@google.com> Teleca 2b changes
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
5347bd4cda2b6afc18f8acab48e52131f35ed13c 14-May-2009 Robert Greenwalt <robdroid@android.com> 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.
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
d8593312296fd2193a070c1a074840d83b7f49cb 30-Apr-2009 Marco Nelissen <marcone@google.com> Don't crash when /proc/wakelocks can't be opened. Might make board bringup easier.
Verified with simulator, which doesn't have /proc/wakelocks
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
1d442e0d990b581357f33f5463c7c5cb49b551e8 21-Apr-2009 Dianne Hackborn <hackbod@google.com> 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).
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
c64edde69d18498fb2954f71a546357b07ab996a 18-Apr-2009 Evan Millar <> AI 146853: Add kernel wakelock data to batteryinfo dump.
BUG=1755458

Automated import of CL 146853
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
633a1740ce5951ccb5d478ba2795f6f4fada1646 03-Apr-2009 Evan Millar <> 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
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
617f877c06c82584a38f41bb60d836e08c5e3bda 01-Apr-2009 Dianne Hackborn <> AI 143800: am: CL 143748 Fix issue #1743326 (More battery stats)
Adds stats for:
- Number of raw user events that have happened in the system.
- Number of times user activity has been reported, dividied by UID and type of activity.
- Duration of screen brightness levels in 4 buckets.
- Per-UID tracking of who has turned on Wifi and how long we can attribute it being on because of them.
Original author: hackbod
Merged from: //branches/cupcake/...

Automated import of CL 143800
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
627bba736d022c39696b7c582a6af5592d2b8c33 25-Mar-2009 Dianne Hackborn <> Automated import from //branches/donutburger/...@142347,142347
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
d4c5f8919b0522bcaab41a5863c313fec52d3a79 25-Mar-2009 Eric Shienbrood <> Automated import from //branches/donutburger/...@140679,140679
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
105925376f8d0f6b318c9938c7b83ef7fef094da 19-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake_rel/...@140373
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
076357b8567458d4b6dfdcf839ef751634cd2bfb 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
3dec7d563a2f3e1eb967ce2054a00b6620e3558c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
3001a035439d8134a7d70d796376d1dfbff3cdcd 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/core/java/com/android/internal/os/BatteryStatsImpl.java