[Android Apps and Games] Izkata:
For update information, see bottom of post

Yes, another Battery Time Left-style app. Originally intended to fill in some of the gaps and problems of the current ones out there, it has since expanded in scope. Here are the main features:

General Info

The Battery Diviner learns your patterns over time to generate extremely accurate battery usage predictions. For example, little to no usage while you're asleep, or large usage when you play games during that train ride every Friday...

When first installed, it's using a "Level 0" prediction - a simple charge-divided-by-time, so there's something to display

After a day has passed, it switches to "Level 1" prediction, only using Level 0 as a fallback if there's missing data. Level 1 is more accurate than Level 0

After a week has passed, it switches to "Level 2" prediction, which includes the day of the week in the algorithm. It is the most accurate, and Levels 1 and 0 are only used as fallbacks at this point

There are no profiles/etc to download, and it should work with any Android 1.6 or greater device. Because it examines usage patterns, it should also still work with over/underclocked phones.

It also never stops learning. Once Level 1 and Level 2 reach their limits (7 days and 4 weeks, respectively), they start overwriting their oldest data. That way, it'll adjust over time, in case your schedule changes.

For example, Level 1 is limited to 1 week. Beyond that, it starts to overwrite the data from exactly 1 week previous (that is, the data from 168 hours previously). So after 1 week more, Level 1 is almost completely adjusted to a new schedule. "Almost", because the gaps where the phone is charging or off don't get recorded, and so, not overwritten.

Main Screen

The Main Screen is a summary of information, including:

Current percentage

From the current percent, how long until the battery is empty, and when that is

From the current percent, how long until it is charged, and when that is (AC and USB separate, since they charge at different rates)

The charging times include a "to XX%" column. This means it's only predicting up until it's charged to that percent, because data to go higher is missing. It does this instead of extrapolating, because my own phone slows down above about 93%, and usually reports "full" at 97% or 98% - things that can't be predicted if they weren't experienced before.

History Graph

The history graph shows your usage over the past several days (up to a week), and includes a prediction section to show you exactly what it thinks you're going to be doing. So if the time remaining seems unusually high or low, the graph will show you why the prediction says what it says, and gives you the final decision.

Blue is history, what your battery was actually at. Red is a Level 0 prediction, Yellow is a Level 1 prediction, Green is a Level 2 prediction.

To scroll, drag left/right across the graph

To zoom, draw left/right across the Zoom section. To the left zooms in.

To re-center on "Now", double-tap on the graph. It also re-zooms to 24 hours, but zooming does not affect the offset at all. Exiting and re-entering the graph does the same thing.

Usage Graph

The Usage graph shows you how much your battery is expected to drop by over the course of the week. The drop percentage is per 15 minutes. The graph display has been smoothed, to make more sense visually, but it means that manually doing a prediction using it (as opposed to simply looking at the History graph) might not have the same accuracy.

Red indicates Level 0 data, Yellow for Level 1, and Green for Level 2.

Controls are the same as the History graph.

Why each 15 minutes instead of each hour? A few things:

It comes from the precision of the predictions (Notice how discharging time left always ends with 0, 15, 30, or 45 minutes?)

It's less than an hour to give more precise information (not only in creating the prediction from the data, but it also affects storing the data)

I was considering using 5 minutes, but that part of the data would end up about 3 times as large. 15 seemed like a good compromise

Widget

There are two sizes currently available: 1x1 and 2x1, shown above in the first image. The 1x1 has two styles, shown in the second image.

The May 1 (V1.06) updated has added the options to change what the text is on the widget. Shown in the second image, the two dark widgets have been customized - the one on the left always shows USB charge time, and the one on the right always shows discharge time.

Widget Configuration

Sample of what the new Widget Configuration screen looks like.

The preview defaults to the current percent, but you can drag that slider underneath it to see what the widget would look like at any given percent.

Settings

The displays are very customizable, by way of the Setting screen, allowing you to:

Completely alter the display of dates and times

Change when the widget switches between the different colors (default numbers are 40 and 20; see above)

Turn start-at-boot on and off

Change colors used in the graphs and the widget

Alter settings for the learning algorithms (More coming soon)

Notification Bar

Icon shows current percentage

The pull-down contains the same information that would be on the widget.

Selecting the notification opens the Main Screen

Settings -> Misc -> Status Bar to enable

Data can be transferred between Free and Full versions (Import/Export in the Help). Destination data gets erased in the process.

Free: http://www.appbrain.com/app/battery-diviner-(free)/com.paklena.batterydiviner.free

Full: http://www.appbrain.com/app/battery-diviner-(full)/com.paklena.batterydiviner.full

Upcoming Ideas

(But don't hold your breath. I want to do these, but some I don't yet know how, or could end up being a bad idea once testing starts)

Statistics screen doesn't currently exist, but here are two ideas:

*Maximum possible battery life, by identifying the lowest usage pattern.

*(Suggested in thread) Remaining talk time, remaining idle time, remaining music-playing time, etc... (Requires knowing when each is running, which could cause call-answering delays, or unnecessary battery drain; "might be a bad idea")

Alternative widgets. Two additional 1x1 designs have been chosen, there is now a 2x1, and other 2x1 designs are welcome. The pattern seems to be: Dark background, Light background, and iPhone-style. (Coming, slowly)

Misc.

Each day the data is successfully loaded, it creates a copy as a backup, to prevent complete loss of data, should it get corrupted somehow. The backup is automatically restored if there is a problem, and the user notified as to why the previous day is no longer known. This also creates an odd-looking block in the History graph.

Widgets will not work (and will even disappear from the list of widgets) if the app is on the SD Card. According to khaytsus, if instead using Apps2Ext, it will work fine.

Update: May 1, 2011, V1.06

One bugfix: On one user's configuration, Android somehow was reporting 101% battery (And yes, Android was saying the equivalent of "On a 0-100% scale, you're at 101%", so it's not that it uses a 150-scale or something). I don't know what the cause is, but if this ever happens, the Battery Diviner will now treat that new highest value as the scale. It resets any time the app closes.

New feature: Widget Configuration Screen, plus one new 1x1 widget!

The new Configuration screen allows you to change when the bar colors change, what colors, and even how many to use (minimum 2, but they can be set to the same color). There's also a whole bunch of options for the text that gets displayed on the widget. Text options are:

*Static text (once selected, it asks what you want to display)

*Current Percent (The default line 1)

*Time Remaining (Cur) (The default line 2)

*End Time (Cur) (The default line 3)

For Time Remaining and End Time, in addition to "Cur" for "Current", there's also "Discharge", "USB", and "AC", if you want to force it to always display those times instead of whatever the phone is currently doing.