[Vibrant General] MV10:
I did some searching and reading and only found speculation on this subject, and during the holidays I have been mostly desk-bound at my home office with very little phone traffic, so I thought I'd post my results after doing some testing.

For those who don't want to read, the bottom line is, if you swap batteries, (especially using batteries of different capacities) I believe you definitely should wipe your batterystats.bin file each time you swap them if maximum runtime is your goal.

Why did I question this in the first place? I saw a dev post a comment that the battery drivers do not reference this file at all. I wasn't able to find any clear explanation of what is actually in this file. I'm running Nero v3 with Voodoo, and after I flashed it, my fully-charged stock battery only lasted about 45 minutes. All these things made me wonder whether it made a difference, and since my previously-fine stock battery suddenly wouldn't last an hour, I had to do something anyway.

For test purposes I attempted to eliminate as much random activity as possible. I shut down my e-mail client and data sync and forwarded my cell calls to my home office land-line. I'm in the camp that believes (from experience) that a good strong WiFi signal to the closet ten feet away uses far less juice than trying to maintain radio contact with a cell tower 2 or 3 miles away, so in this case I switched off WiFi to ensure *faster* power usage. I didn't want to do a crazy-fast maximum-extreme battery drain, though, so I found that streaming radio at full volume using TuneIn resulted in noticeable drain, but also surprisingly extended runtime. I made sure the phone was in the same physical location for the duration. (I know there are still a million-and-one variables at play, but I believe the "big picture" conclusion is valid.)

The battery I'm referring to as G9 is the original "good" battery that shipped with the phone. The G7 batteries are those cheap Chinese knock-offs, the ones with the duplicated serial numbers. These have very different capacities. I believe the G9 is 1500mAh and the G7 has been estimated at 700 to 900 (it is marked as 1200 but this is clearly false). I have two G7s. All batteries were fully charged on an external stand-alone charger. The batterystats.bin file was wiped using Clockwork Recovery. I ran the application with the display off, only turning it on about once an hour to check the battery level. I let it run until the phone shut itself down.

First test:

Install G9, wipe stats: 7 hours 14 min to shutdown

Install G7 #1, no wipe: 4 hours 2 min to shutdown

Install G7 #2, no wipe: 4 hours 4 min to shutdown

Install G9, no wipe: 6 hours 59 min to shutdown

Second test:

(I already saw [above] what the G9 does with a clean wipe)

Install G7 #1, wipe stats: 5 hours 31 min to shutdown

Install G7 #2, wipe stats: 5 hours 27 min to shutdown

As an aside, I'm pretty surprised that playback of streaming-data radio at full volume will last more than 7 hours. I figured I might get 3 hours or so. This suggests to me that both the phone hardware and Android itself is actually very power efficient -- streaming radio is not exactly optimized for power saving, and the stock speaker is quite loud.

Since the phone actually shuts itself down -- it doesn't simply bleed the battery dry until it just dies from power-loss -- I suspect it uses this data to profile how the battery drains to predict when it will become nearly depleted so that it can perform a clean shutdown. And swapping batteries with very different "behaviors" simply throws that off completely. You can see I got a full hour and a half more out of my G7 batteries just by wiping, and my G9 lost about 15 minutes of uptime after the stats were "contaminated" by a pair of G7 runs. I also thought the consistency of my back-to-back G7 runs was interesting.

The probable (and unavoidable) downside to frequently wiping your battery stats is that it also probably defeats any long-term battery management strategies designed to extend the life of your battery. You see this kind of thing most obviously on laptops where the battery management software intentionally runs on battery power even when you're plugged in, letting the battery drain to some point based on the software's evaluation of your battery's health before allowing it to charge again. I'm not sure if Android or the Vibrant does this, but it seems likely it does based on people's complaints about things like the "15% charge drop" issue when they unplug from the charger or USB.

It doesn't appear that our batteries have electronically-readable serial numbers, and I have to assume knockoffs like my G7s wouldn't bother to implement those correctly anyway. But optimally we'd have different profiles for different batteries. Maybe in Galaxy's successor...

Why doesn't the driver reference batterystats.bin? I don't know, but what would be interesting is to scan the released source to see what DOES access it. I suspect it also tracks all that other power-related data (like the detailed battery history information in the *#*#4636#*#* menu), and so I further speculate the file is managed by some centralized logging-style interface, and the battery driver is just one piece among many which communicates with that interface. But I've never bothered to actually grab the code from Google and that's nothing but pure speculation.

Anyway -- wipe it when you swap it.