[Nexus 4 Original Android Development] Ok_Kaleidoscope5109:
Here's my detailed battery test post.

Test method

Using BatteryTestUtility's browser test.

[YOUTUBE]qD86HydCrmg[/YOUTUBE]

I tested this at night while I slept for 3 nights last week. They ran around past midnight because there's no router activity at my house at that time. The tests were run at minimum brightness.

What does it test?

- Refreshes 10 websites in a continuous load fashion

- Runs battery from 100% to 15% before stopping.

- Screen on

- Tests wifi, screen, and CPU capabilities

The contenders

- CyanogenMod 10.1 Kernel from CM 10.1 M2 (March 4, 2013)

- Franco Kernel R122

- Franco Kernel R125

The Results

R125

R122

CM 10.1

Summary of results:

R125: 3:09:30

R122: 3:11:57

CM 10.1: 3:14:11

For fun:

SGS2 on CM 10.1: 2:13:07

So what do I conclude?

Given the test method, there's little to differentiate from the kernels at the moment. I want to say the small differences are due to the tests. This test isn't perfect and I'm working with the developer to perfect it. Right now it does a continuous load of webpages, so essentially it's loading the CPU constantly, with little idle time. Perhaps the heavy loads are causing the runtimes to be similar. I'll work on retesting these once the developer comes up with a better refresh test. Maybe 1 page per minute load?

FAQ

1) Dude your test sucks, it doesn't test kernels well.

It's not perfect, I admit, but this is better than saying today kernel XYZ performed better than kernel ABC because I came home with 30% versus 45% battery. Well guess what? Today I came home with a 11 hour wakelock, and still got my average run rate for battery. I wouldn't have noticed the wakelock if I didn't look. Did it have an effect? Maybe it did, maybe it didn't. But how do I compare today's use with tomorrow's use? It's not very good. What I'm doing here is an objective test. It's a way to compare apples to apples. It may not be the best, but if you watch the Youtube video, the CPU is scaling around. It's not at a constant load, and you an see pages like TheVerge or Anandtech take more CPU horsepower while Google is easier to load for the CPU. I think we're at least testing SOME of Franco's hotplugging versus mpdecision. Granted mpdecision should be CM Kernel's weakness, and would be even more exposed if there was a swiping test involved.

Anyway, I'm not saying this is a perfect test, but this is one test I can start with. Once the developer fixes his app, I'll rebench. But if you have better objective benchmarks that I can easily run right now, let me know. Should I run a video looping test for example? Would that be better? GSMArena runs one of those.

In fact the best would be for one of the large reputable sites like GSM Arena or Anandtech or Engadget or whatever to give us access to the battery tests they run. Take GSMArena for example. Their battery tests have like 30+ phones. Wouldn't it be nice to just perform a test and see how our phone on Franco Kernel or any custom software for that matter performs relative not only to Android 4.2 stock on a Nexus 4, but the dozens of other phones out there? Wouldn't it be nice to know that while the Nexus 4 loses to the GS3 stock, that with Franco it slaps the crap out of any phone? (hypothetically speaking) So yeah, I'd love to be able to test the same way.

2) This isn't a real world test.

But what test is? And more importantly, what test is such that it's an apples to apples comparison? If I tested my daily use today versus tomorrow, you'd still say my use isn't a real world test because you use your phone differently. Truth is, everyone uses their phone differently. The best way to test would be to test objectively. I can't really do a swipe test either because human elements are hard to control unless this is my full time job. Like I said, I'm working with the developer to be able to customize the refresh rates. Perhaps every minute a load would be better. This is what Anandtech and GSM Arena and Engadget use for their tests.

I might also add that while this isn't a real world test, a web page reloading test isn't the worst in the world. Say I set the refresh interval to 2 minutes. Wouldn't that be like going to Flipboard or Pulse and reading a page and then loading the next page 2 minutes later? Ok, there's some scrolling in the middle involved, but that's hard to control. If you look at Engadget or Anandtech's Wifi tests the get 5-6 hours SOT... on stock. I know some of you think that's nonsense and it doesn't really test a phone, but think about it. Coudn't you get those times just reading an eBook? Yeah, or just some basic news articles on an RSS reader? Probably. It might not represent you launching Facebook and commenting and reading for 2 hours and then texting your friends, and then listening to Pandora. However, a website reloading test DOES test network loading, and it does test the screen on. I could also do a screen off test if you want. Anyway, the point is that this test should cover some aspects of phone use even if isn't 100% accurate of usage patterns.

If we can create a swiping test I'm all game to go test that.

3) But I get 6 hours SOT!

Well if you look at my test it's a constant CPU load. I have a screenshot of 7 hours SOT on CM kernel if you'd like to see, but what's the point? I'm showing you my usage for one day. Doesn't mean I get it regularly, and doesn't mean you should expect it. SOT is highly user dependent! While it's nice to post from time to time, I don't think it's a great metric of comparisons.

4) Could be battery meter issues

Could be, but once again I'm stressing consistency and test method here. If I'm always running 100% to 15%, then I'm at least being consistent. If the battery meter is questionable, then I don't see how any test is valid, including subjective reporting.

Author's Notes

This isn't a definitive CM rocks or Franco rocks or CM sucks or Google sucks or Apple sucks or whatever you want to say. I'm just trying to baseline the kernels and have a better understanding of battery life. Amidst thousands of posts of "omg battery life rocks" and "omg i get insane drain on rXXX," it's hard to gauge what's real and what's not. No matter WHAT phone you talk about, there will be some guy talking about how awesome his battery life is. Is it really awesome when you put it in perspective with other phones? Who knows? But the point is there will always be someone who says it sucks and someone who says it rocks. In order to determine where you actually are, you need numbers, not just subjective "feel." Anyways, please provide constructive feedback.

Edit: It might not be the best test to differentiate between kernels right now, but perhaps testing UV could. There are those who firmly believe UV works immensely well. I'll be honest and say I'm a skeptic, but perhaps this would be a good test because CPU is stressed and the more stressed it is, the more UV should make a difference right?