Related
I have serious problem for the CPU usage after some software install and the task manager always showing CPU utilization is 100% in Idle mode. Even uninstall the software but the problem is still exists. But i don't think this is software problem and may be some setup in the registry had been changed.
When i click on the task manage, the "taskmgr.exe" always consume a lot of CPU resources. The only way to resolve is hard reset the phone.
Another problem is the backlight saving mode, after 1 min. the screen will dim down and never can light up again. So i think it's some kind problem in energy saving mode.
Please let me konw if some kind of registry setting can be change to resolve the problem.
Thanks
There's a many reports about backlight idle problem, I have it too (backlight never can light up from "off" to "on", or from "dim" to "on"). Possible solution in some cases is to turn off any backlight auto adjust functions (maybe a new solution(s) is founded).
For memory & cpu usage problem, I guess is most likely to perform a hard reset instead of searching (cope whole) in registry of FW.
Hi,
Everyone might knew "Quadrant", app to benchmark our Android phone.
However, so far, there is no app to benchmark battery.
NONE!!!
The idea is quite easy. Run the battery benchmark app and show the result at the end.
It should not be too difficult, too bad I am not Android developer.
Anyone can take up the challenge? To be THE FIRST creator of battery benchmark for Android
Here is the basic idea for the app:
Start the app with 100% Battery life
Some options in the app (for features that might NOT be in an Android phone or might not be available at the time?):
[ ] Turn on Wifi
[ ] Turn on GPS
[ ] Turn on Bluetooth
Set the app to WAKE all the time, display turned ON all the time of the test
Set Keyguard to OFF (device will not be locked)
Set Brightness to AUTO
Set all speakers to SILENT
Set vibration to OFF
Then loop until battery down to 5%, perform the below tasks in sequence:
* Play movie for 15 minutes [speaker muted]
* Browse to website??? be careful not to overload the website
* Doing arithmatic (counting pi?) that increase to 100% CPU
* Doing 3D animations
* Play MP3 [speaker muted of course]
* File I/O
* etc.
As soon as the battery down to 5%, app stop and display result ...
"Battery Benchmark result: XX hours YY minutes ZZ seconds
And of course restore all the settings.
App should use generic and known to work Android API, not hack or proprietary library.
Anyone???
BE THE FIRST!
Good idea
In fact I am surprised this app hasn't been created yet.
We could imagine automatic tests to be conducted for 1 or 2 hours on a clean ROM (fresh install with no additional apps installed).
The tests could be such as:
- taking pictures
- playing a music file
- playing video
- standby consumption testing
- ...
Browsing could be tested but it depends a lot on wifi or Network infrastructure so it might not be a good idea to compare the results.
Every minute some data could be saved to then generate some graph:
- current (mA)
- Battery Voltage (mV)
- CPU freq
- Battery %
Of course the tests initial conditions have to be clearly established (screen brightness, wifi/BT/Network status...).
At early stage of development such an application could perform very simple tasks but would nevertheless be a great tool to compare ROMs in terms of consumption.
stability test from marked would do the trick. With 100 % battery run the app for 30 min and see how much power was used. You would probably not be able to compare with other users as kernel, modem(3g) and rom might differ.
Is there anyone that can rewrite the HD2's battery driver (Battdrvr.dll) so as to remove any actions (power off, turn off wi-fi, GSM etc.) after power status is 0%?
It's very important feature - there are many non-original batterys for HD2. Very often they show 0% of power when voltage is quite high (3.6V for example). With my 2400mAh battery I've used this program http://4pda.ru/forum/index.php?showtopic=84229&st=80&start=80 (I've customized it to disable battery driver when power status became 1%) - and after 1% (3.6V) device worked for a 1 day and turned off at 3.05V voltage.
So with patched driver we can use device after power status (by system power indicator) achieves 0%. And to know REAL power level of battery we can use programs which show voltage (for example http://4pda.ru/forum/index.php?showtopic=90892 - can indicate voltage and REAL power level in tray).
Battery driver is in attachment (I've got it from this http://forum.xda-developers.com/showthread.php?t=787028 thread)
Nobody can help?
Hello,
After making that hardware mod to enable my hd2 not to freeze or lock up anymore because of thermal related problems, i feel it's time to get a bit technical on it agait
As far as i see, some newer android builds use about 1mA from the battery (stand by) and there is a 60mA drain when using bluetooth. However i guess most of these readings were made using software based measurements so i guess some of them won't be 100% accurate compared to the reality encountered at hardware level.
So i'm looking for a lowest power consumption rom, either it be windows mobile or andoid or wp7.
LE : DID THE JOB.
So.. here are the results for 4 roms (2 x win mo 6.5, 1 x android, 1 x wp7).
The specific roms used are:
TMOBILE STOCK - Latest (with stock radio)
ENERGY ROM win mobile 6.5.3 DINIK skin latest version (with 2.15.50.14 radio)
RAFDROID HD 4.0.2 (with 2.15.50.14 radio)
WP7 - BOYPPC - SHIFTPDA HD2 - v3 (with 2.15.50.14 radio)
Hardware setup :
HD2 (1024 LEO)
battery is connected to the phone via some wires and the + pin of the battery is mounted in series with a multimeter. Measurements are made with a Velleman DVM1400 (accuracy tested and compared with a Fluke 127). Data pin and - pins are directly connected to the phone.
A fair amount of tape was used. 0.5kg of coffee was required (this is also included in the hardware setup especially when doing flashing operations with the phone's battery linked to the phone by some wires sticked together with tape)
Flashing HD2 with it's guts out
So here's the results:
1. Stand by. 3G Orange network used, no active connections, nothing connected to the phone.
Stock - 0.6mA - 2mA
Energy - 0.6mA - 6mA
Android - 0.6mA - 2mA
WP7 - 0.06mA - 1mA
Comments: the actual value varies, so the min/max value is given. Please note that the phone will use more power in a low coverage area, therefore if the signal is low or very low, the phone can use more power then the values stated above. The test was done at 80% signal power. Energy rom did registred some 6mA spikes, but 90% time, results were under 1mA.
2. Idle - at full brightness. Default home screens. Wifi/bluetooth turned off.
Stock - 410mA - 210mA
Energy - 500mA - 210mA
Android - 400mA - 280mA (live wallpaper) 400mA - 230mA (simple wallpaper)
WP7 - 350mA - 230mA
Comments : when you turn on the phone from standby the CPU will do some intensive work reloading the home screen. Depending on the complexity of the items shown on the home screen, initial values will vary, however they are not that relevant - if you want a lower power consumption, use a lighter home screen. The smaller values (second ones) are the actual values being used when loading is complete and you have true idle state.
3. Idle - minimum brightness, same conditions as above.
Stock - 110mA (note that it is almost half of full brightness consumption)
Energy - 80mA (once initial loading is completed, energy rom is more efficient then stock rom at both medium or low brightness)
Android - 170 mA (live wallpaper) and 110mA (simple wallpaper)
WP7 - 210mA - 110mA - depending on what the home screen is doing or what part of it is being shown. If you display the menu list, consumption drops to about 110mA.
Comments : You can compare maximum and minimum brightness values in order to find out how much current you can save by turning down the slider and setting a lower value.
4. Voice calling. Full brightness, other wireless off. 80% carrier signal.
Stock: 210mA (390mA with display powered on -without proximity sensor active)
Energy: 200-210mA - slightly better, averaging about 202mA (380mA with display powered on -without proximity sensor active)
Andoid: 190mA (440mA with display powered on -without proximity sensor active)
WP7: 210-220mA (390mA with display powered on -without proximity sensor active)
Comments : note that every other OS, except the stock one, uses the upgraded radio rom. However andoid wins it here, same results were measured over and over again. Then comes energy and at the bottom we have WP7.
5. Wifi and Bluetooth - using maximum brightness, either connecting to a wifi network (full signal) or pairing to a bluetooth device. These values are similar (bluetooth to wifi) as both technologies use the same carrier frequency and almost the same emission/reception power.
Stock - 230mA (10-20mA effective power used for wifi/bluetooth)
Energy - 220mA (but still.. 10-20mA effective power.. pretty weird.. energy is thus more effective at overall consumption)
Android - 230mA-270mA (but about 6-20mA used effectively wifi/bluetooth)
WP7 - 190mA - 230mA (6-20mA for wifi/bluetooth)
Comments: I cannot establish power consumtion for a specific bluetooth pairing with a headset, or standby bluetooth drain when paired with a headset.. simply because i don't have one). Another note is that, some roms include some kind of wifi performance boost that is supposed to increase performance at the cost of more power consumption. At 60% to full signal power, however, i didn't see any increase in power consumption.
6. Full load. Brightness to maximum. Stressing the hell out from the phone. All wireless option on. Playing intensive games while benchmarking or stressing the cpu. Whatever is needed to get the maximum value.
Stock : 500mA - half an Amp. Phone's heating up like crazy.
Energy : 520mA - same thing
Android : 520mA - heat and etc, however is pretty hard to get the phone to this level of consumption
WP7: 520mA - only managed to get this during the initial setup when i flashed the device. All my other attempts to stress the phone ended somewhere around max 500mA
7. USB - Mass storage - the phone is connected to a standard desktop usb port in mass storage (or the zune crappy interface for WP7) No transfer being made, phone is at max brightness, in home screen, wireless off)
Stock : + 120mA
Energy : -1mA - +12mA (?!?)
Android : +170mA
WP7 : +160mA
Comments : Plus (+) values means that the phone is actually charging from the usb port. Minus (-) values means power is being drained from the phone. I suspect something wrong with Energy, whatever i tried i couldn't get any other values other then that range between -1 to +12. I would call this "inconclusive" as i don't know if the phone was doing some background work during the tests. Energy rom should do about the same as the Stock rom in this aspect. Active sync will get similar values for the winmo 6.5 roms.
8. USB Standby. Phone in standby, connected to pc with an usb cable.
Stock : +340mA
Energy : +340mA
Android : +350mA
WP7: +330mA
Comments : this shows the current rating for charging up the phone from the computer's usb port. Being positive, current is getting in the battery. Although the port is capable of 500mA .. i never saw it to actually rise up to this value.
The usb charge test is done at the same battery level (40%). reasons explained at the next test.
9. Charging with the wall charger. Phone in standby (not switched off) bt/wifi off. Battery level used for testing - 40%
Stock: 780mA
Energy: 780mA
Android: 780mA
WP7: 780mA
Comments : the battery charging process is hardware regulated. So it's independent of OS. The battery will charge at a same rate in every OS. HOWEVER, the standard hd2 charger will output 5v at 1A. If your battery is empty but you still use the phone while charging, at full load (about 500mA) only 500mA will be left for charging the battery, therefore charging will take longer. Tests are being done with the phone being idle. Note that HD2 charges its battery at variable current. When the battery is about 70% charged, for example, the charging current decreases to about 500mA or less. That's normal procedure involving charging a li-ion based battery. At about 100% charge level, the charging current will decrease to some 10-20mA.
10. Bootloader mode
If you place the phone in bootloader mode the battery drain will be around 310mA. Even if it's not doing anything else. It will quickly discharge the battery if you don't connect it to an usb port. NEVER flash using a SD card when your battery level is less then 50% or USE the charger. Bootloader operations are done at full brightness and are CPU intensive. If the battery is at low level and you don't have a charger near you, don't flash via SD method.
11. Bootloader operations - with USB cable connected to PC
In this case, the phone will actually charge with about +130mA. Even if your battery is at 1%, the phone woun't die if you are flashing via USB. It's actually charging and the 130mA rate is pretty constant. USB flashing is safe at any battery charge level. However in winmo the flasher woun't allow you to write a rom if your battery level is less then 50%.
One note: when in MAGLDR the phone actually charges faster when connected to a pc. Constant 150mA values measured.
12. Flashing
All flashing operations with USB connection. +130mA - phone is charging from the USB port while flashing.
That's about it. As you can see, there aren't huge differences on the way these roms use power. However your battery life will depend on 2 main characteristics:
- backlight level - yep the rumors are true. At max level 100-110 more mAmps are used only for the backlight (compared to min level). This is 1/5 of the total maximum power consumption of a full load HD2.
- rom and software load and complexity. A lighter rom will get you better battery life, that's for sure. The HD2 CPU's pretty power hungry.
BONUS : hardware power consumption
1. CPU - biggest amount required. At full load it takes about 50-60% of total power requirements.
2. Display : the TFT matrix and it's backlight will take up about 20-25% maximum. This is achieved when displaying black color (or darker ones) at full brightness. A lighter.. more luminous theme (white, yellow, warm colors) and lower backlight levels will save up battery.
3. memory : RAM is the most power hungry chip. Then follows the NAND memory and the SD card. About 10% at maximum. However intensive ram usage or nand memory transfers will occur when the cpu is also at high power consumption.
4. wireless features. Both wifi/bluetooth etc doesn't use as much power as those other components. Max 5% with both on - but... when using this, you will have a constant power drain.
Total HD2 power consumption at full load : around 2.75 Watts
Yet to come :
GPS tests. These need to be carried on outside and with a clear sky view in order to monitor the power requirements when an active fix is being made.
Dude you have to do the Energy ROM from the Energy ROM thread just to see if it can hold up to it's name. HA HA HA But seriously I am curious.
ok so, first rom is in.
I will also do a test on a stock rom to have a reference point.
facdemol said:
ok so, first rom is in.
I will also do a test on a stock rom to have a reference point.
Click to expand...
Click to collapse
That is a good idea to do a stock ROM too. This will give people some real good feed back on battery consumption of stock ROMs and custom ROMs. It will also put the devs work to the test so do speak. The stock ROM can give you something of a base line to start with and to compare to. I look forward to following this thread.
here are the first results. I've edited the first post to include these..
facdemol said:
here are the first results. I've edited the first post to include these..
Click to expand...
Click to collapse
Hey that is some awesome work man, please continue your work on this as it is very useful information. Also did you have to bridge the (+) positive battery pin and the center battery pin in the HD2 to turn on the HD2 to turn on with thew battery out, or did you just bridge the the (?) battery terminal and the center battery terminal on the battery to get the HD2 to turn on with out the battery in the phone. Also what is your opinion on the Velleman DVM1400 tester. I am a electrician and have been one for 15 years so I am very familiar with the Fluke 127.
wow awesome work! thanks for doing all the testing. could you possibly do a test for a gingerbread ROM?
2. Display : the TFT matrix and it's backlight will take up about 20-25% maximum. This is achieved when displaying black color (or darker ones) at full brightness. A lighter.. more luminous theme (white, yellow, warm colors) and lower backlight levels will save up battery.
Click to expand...
Click to collapse
While reading books on the phone for hours I used a dark background and white letters. I thought more black meant less energy used.
Are you saying I should use a white background and black letters instead to save battery?
@T-Macgnolia
the battery was linked to the phone in the same way it's normally linked, but the connectors were extended with some wires. The mutimeter was placed across the positive terminal. However i found out that if you disconnect the positive terminal of the battery while the phone is still connected to a power source via usb and turned on, the phone will still work. It was usefull as i could estimate the total power consumption of the device while draining energy from a single source. As other HTC phones, it is possible to start HD2 and use it without a battery, as long as the phone detect a voltage (1.2 -3v) across the center pin and the negative one. However i don't see a practical use for this, other then troubleshooting a dead phone to check if it's problem is battery related or not.
About Velleman's device, i find as a good enough multi purpose device. However is nowhere near as precise as the Fluke 127 at resistance/capacitor measurements. Voltage and current are ok. It's a good device for hobby use, however the test leads connectors on the device are... crappy to say the least. Autoranging works slower then the fluke but hey.. you're talking about a $80 device. On that price range, it's a good device, if you have the time to tweak it a little, add a secondary circuit braker on the 10amp mode (damn thing doesn't have any protection, I blew a circuit track while measuring 6A!!) and replace the test lead connectors.
@clarknick27
will do.. chose one and post the link and by the end of next weekend i will have some results. I will wait to have some 2-3 roms to test before hacking up the phone again
@reijkelhof
it is true that black screen are good, but for amoled displays (or plasma screens for tv's). In that case, the individual subpixel element creates light by it's own. An amoled screen can achieve greater contrast because when displaying black, the organic led's composing the display's matrix are simply switched off. Thus.. no power consumption. When displaying white, all those elements are switched on and lighting at full brightness - max power consumption.
HD2 has a simple LCD display - twisted nematic matrix. The Iphone has also a LCD display - in plane switching matrix. Although different they use basically the same principle. The matrix itself cannot create light, but uses small liquid crystals that can change their transparency level if a small electric current is applied. A small crystal is placed for each subpixel - 3 for every pixel on the screen. Each crystal is controlled by a vertical mosfet transistor - that will switch the crystal to different states of transparency in order to block or allow light to pass. When no electric signal is passed, the crystal is almost 100% transparent and when full power is applied, the crystal is almost 100% opaque - note the use of "almost opaque" due to technology limitations a LCD display cannot obtain true black because it cannot switch the crystals to 100% opaque. Thus we get some sort of dark grey. Well, if the matrix doesn't produce light and only can transmit/reflect it... where does the light comes from? Simple.. the back layer of an LCD display has a backlight composed of small led's - that's the light source for every lcd phone screen. It's always ligthing, even if you display a black screen (in that case the LCD matrix is opaque to the light and it cannot pass). So.. if you have a black screen - all the crystals are switched "on", full power is applied to each mosfet transistor. Thus more power being used by the display. If you use a white screen - the matrix is powered down so .. lower power consumption.
So a combination of light colors and lower backlight uses less then about 50-60% of the energy needed for a full backlight screen displaying black color. That's for the HD2 screen. Amoled's are just the opposite.
Understood
thank you again, facdemol, that will help me get another hour reading time this summer.
TyphooN CM7, here is the link for the ROM. much appreciated!!!
http://forum.xda-developers.com/showthread.php?t=933951
ok, first rom for the second batch is in. Let's see if gingerbread and the newer kernels do better. I'm also planning to upgrade to that rom
facdemol said:
ok, first rom for the second batch is in. Let's see if gingerbread and the newer kernels do better. I'm also planning to upgrade to that rom
Click to expand...
Click to collapse
Thanks for your work, these are very useful informations.
If i can ask you something: please check that Currentwidget or Battery monitor widget shows correct values compare to the real values on the multimeter
good ideea, will do it in the next tests this weekend.
Fantastic effort mate..
Can i request you test 1.66rom wwe from htc please with its radio 2.06.57 thnx
ok, no problem with that, but where to get this rom? Any link (i never flashed any stock roms except the tmobile one on the first page). Also your rom must be compatible with 1024 leo (tmous).
reijkelhof said:
While reading books on the phone for hours I used a dark background and white letters. I thought more black meant less energy used.
Are you saying I should use a white background and black letters instead to save battery?
Click to expand...
Click to collapse
Actually, black pixels do save energy but only IF the display is AMOLED or similar. In these cases, AMOLED displays display truly black pixels, as the illumination is per pixel. This means that black pixels on screen aren't back-lighted , and thus, they save power (which is why Honeycomb uses a dark colour scheme ^^).
Technically, it matters not what colors your display on the HD2 shows. HOWEVER, if you find a colour scheme that allows you to use a dimmer backlight option, then it INDIRECTLY saves you power ^^.
Hope this helps you mate. Kudos
As i've explained on the first page of this topic, as hd2 screen is a lcd type, black colors DO require more energy. A full black screen consumes about 10-15% more energy (taking into account the full display consumption LCM+Backlight) then a white one. Should the display had been AMOLED things would have been exactly opposite.
This is related to the LCM module, not the backlight itself. Keeping the crystals aligned in a specific light blocking mode or changing their state does require energy.
I oversimplified the light blocking or permissive crystal example on my first post about this. Actually these crystals will block or allow only a specific light wavelength - a primary color. So.. a green subpixel has a crystal that in it's natural state will allow only green wavelength to pass, reflecting blue or red, and when it's charged by an electric signal it will block all wavelengths. Also, these aren't just some sort of on/off switches, each subpixel is able to partially switch it's corresponding crystal. Thus you get different combination of colors, by mixing various proportion of each elementary color (let's say 50% red, 80% green and 20% blue). A pixel is perceived by the human eye as the average of these elementary colors.
When you have a "dead subpixel" (small green dot for example) that's a subpixel who's corresponding crystal can't switch on (for whatever reason) or it's commanding mosfet transistor is burned out. So, that subpixel is always displaying green.
When you display black, all 3 subpixels and corresponding crystals are turned fully on in order to block all light wavelength.
I don't mean to be contradicting, but the whole "black consumes more power" thing is it really due to the HD2 having an LCD? Because when I search for LCD tests I find stuff like this:
Samsung LCD
standby: 10 watts, 0.17 amps
black screen: 200 watts, 2.55 amps
white screen: 199, 2.58 amps
red screen: 199 watts, 2.57 amps
blue screen: 198 watts, 2.57 amps
green screen: 198 watts, 2.96 amps
This is for an LCD tv it seems, but still...
So, does it really make that much of a difference mate?
Edit: Been reading a bit, and it does make sense that it consumes a bit more, but still, 10 to 15%?! Sounds wild. But in the end, I think i'll invert my dark color scheme for my HD2 ^^. Thanks mate!
Cheers!
no no, modern tv sets use some nifty tricks to solve the power consumption issues and get that green eco friendly sticker.
As you see, on any modern tv the values are rather constant between displaying white or displaying black.
When displaying white, we're getting full backlight and no crystal opposition in reflecting that light from coming out. So we get max consumption for the backlight and almost 0 for the lcm module (tft matrix). 199-200W in your example.
When displaying black.. normally the backlight would still be fully on and the lcm module fully powered. We should se some 230W but.. as you found out.. we still have 200W again. Same amount of power being used. This is because of one trick manufacturers found out some time ago. When the matrix is fully polarized (tft module blocking the light and displaying black) a small sensor will detect this state and also lower the backlight level. By doing this, we have the impression that the tv is displaying a truer black, at least a more deeper black. Because of this, some smart marketing folks thought of increasing the stated contrast level of that screen. Big numbers always do good in marketing. So, in the end you see the same power consumption ratio because when displaying black, although the lcm consumes more power, the backlight is dimmed thus reducing it's power consumtion ratio. TV's do this (even ccfl backlight ones, all led's do this) pc monitors do this and even some laptop screens do this to save power and increase the apparent contrast.
However phones don't do this because of the small size of their screens. If it is acceptable for a tv displaying a movie to lower the backlight when in a dark scene or something 70-80% black'ish, it would be impractical for a phone that displays a dark theme on 80% of the screen to have the backlight lowered. If this happened, the 20% left (let's say notification bar, battery indicator etc) will also be darker, so it would affect readability. Instead, phones use a photo-transistor as ambient light sensor in order to adjust the whole screen brightness to surrounding light. If you use that, specifically in a pretty customizable environment like android where you can select the min/max values for the backlight to vary, you'll be fine.
I didn't test the difference between black or white on hd2, but from experience with other devices (older pda's) i estimated to be around 10-15%. This is given for the worst case scenario : no ambient light adjustment, pure black vs pure white at maximum backlight. In real life, however, the differences will be smaller.
1. Abstract
2. Approach
3. Baseline configuration and results
4. References
5. Disclaimer
1. Abstract
Initially I was quite dissapointed with the battery life of the Samsung Galaxy S II i9100 with Android 2.3.4 out of the box. Coming from the Symbian world Nokia E71 I have been used to 6-7 days without recharging, while on SGS2 I got barely 1.5 days of normal usage. I started to optimize, and felt that the hardware is very capable for power saving, but the software is not optimized. After turning off all synchronization, going thru every program settings to switch to manual sync, switching to 2G network (EDGE in my area), turning off WiFi/Data/GPS/Background data I've got a busy day full of meetings at work (didn't touch the phone apart from 2 incoming calls and a few notes) and only 10% decrease of battery for 24h (100%->90%) which is amazing by itself. But I wanted to optimize more.
I have heard that other things like Custom ROM, freezing of system applications, task killers, Under Volting (UV), Under Clocking (UV) would help me too, but I was about to discover which one really helps in real use.
One lazy Sunday like today while being a bit sick allowed me to conclude an experiment of how far did I get in optimizing the power usage for a "baseline configuration" - WiFi/Data/GPS/Background data off, 2G network, all possible sync to manual - and the results are astonishing.
2. Approach
The approach to optimize the battery life is only one - PUT IT TO SLEEP AND DON'T LET IT AWAKE.
Having read a ton of articles on xda-developers.com and other places I have concluded that the strategy for optimizing includes these major steps:
2.1. Get a clean baseline Custom ROM where much of the "bloatware" is removed, so you have less to optimize - optional step but it helps to do it
This probably helps although not necessary. I'm not sure if the stock ROM will allow you to put custom kernels which will be needed in the next steps to optimize further.
But in any case you need to be at least "rooted" to apply some of the advice - either via a rooted kernel like CF-Root [8], or via an exploit like the DooMLoRD'a zergRush exploit [7].
2.2. Optimize the screen-on time
This is up to how frequently you use the phone
What you can optimize is to set a default "conservative" CPU Governor profile from 200MHZ to 1200MHz for regular usage - nothing really special, it's only slower on jumping to high frequencies.
If you have a kernel like RedPill Kernel [9] you can add an additional In-Call profile with "conservative" CPU Governor from 100MHZ to 800MHz - while you talk and phone to the ear it idles at 100MHz, but if you start a let's say Notes taking application, or go to turn on Bluetooth it will be snappy enough. Same holds true for listening to music or listening to books - but it's up to your imagination how to set a 100MHz profile in this case (maybe via Tasker). Have in mind that the 100MHz setting may be unstable on some phones because it's not standard, but mine is absolutely fine with that setting.
For setting the CPU profiles software like Voltage Control [5] (paid version for many profiles) is used.
CPU Governor "conservative" is crucial so you don't instantly jump to the highest frequency as it happens with the default "ondemand" governor (or its clones).
You can choose an I/O Scheduler appropriate for your CPU Governor based on the MagicConfig article in my references [14].
People also say that the following helps and I use it: turn off button LED lights, darker wallpapers, auto-rotation disabled, auto brightness on (I have to see the screen after all).
If you use kernel like RedPill Kernel [9] the button LED lights are undervolted by default, so you can leave them "on for 1.5s" for example.
If you have a Custom ROM like CheckROM Revolution HD V6 [10] with JKay Deluxe Settings you can set a Dark or Darker auto brightness profile - also usable to some extent.
One article in my references [12] also gives the power drain in milliwatts (mW) for each hardware device - go read it and you will understand how much the Amoled Display (Average - 370mW), LED lamp next to camera (1.3W), Camera (700mW), Bluetooth and GPS (110 to 180mW) etc. hardware actually consumes.
2.3. Optimize the screen-off time
2.3.1. Analyze Wakelocks
Wakelocks indicate when some application prevents the phone from going to sleep for some time. It does not necessarily mean that it does something significant at that time, and may be only a bad application design. Some applications really like to hold wakelocks periodically during the day for no reason, even if set to Manual sync etc. Examples of such applications are Facebook, 3G Watchdog... You milleage may vary but you can be sure that this hurts your battery life a lot. Any such application can be frozen with Titanium Backup or uninstalled if it's not a system application. Both count and total duration of the wakelocks are important.
BetterBatteryStats [1] has a screen to debug Partial Wakelocks and Kernel Wakelocks. You can also obtain the raw information via the console command "cat /proc/wakelocks".
2.3.2. Analyze Alarms
Alarms are a way to start jobs in the system at a predefined time. Many applications set alarms to get awaken and check/poll something before sleeping again. You should note that firing an Alarm is not necessarily connected to having a Wakelock - you can see many alarms firing but very few wakelocks. The problem is that too many applications set too many alarms for no reason. These activities also hurt your battery life a lot. Examples of such applications are Google Maps (at least for me)... As long as I have another GPS application with offline maps, I've simply frozen Maps with Titanium Backup. Another example was let's say Social Hub, but as long it was firing once per 24h, I didn't bother to touch it.
BetterBatteryStats [1] has a screen to debug Alarms which requires Root access. You can also obtain the raw information via the console command "dumpsys alarm".
2.3.3. Analyze Network Connections
If you get lost in the Wakelocks and Alarms, you can help yourself by checking what connections are kept alive while Internet is connected. OS Monitor [3] has a Connections screen which is equivalent to "netstat". This is also a good indicator what may be drawing unnecessary battery and respectively freeze/uninstall. In my case I can point that I've discovered that K-9 Mail had a bug with IMAP accounts - if I connect to an IMAP account set to manual/poll sync once, it keeps a connection open forever, until you restart or kill the process, but for POP3 account there is no problem... Being aware of such things really help with the battery life.
2.4. Optimize deep idle and sleep time
This is the most important goal in this article - how to get into deep idle/sleep and stay there, because this is the only real way to save energy on such a powerful device
CPU Spy [2] can show you how much time you spend in deep idle/sleep - with my baseline testing I've managed to get 99% deep idle/sleep which is amazing - only if the manufacturers gave us the phones in this state and we can build on that...! But it's the other way round.
Unfortunately the sleep mode on the stock kernel and the CF-Root kernel is not too deep. Entropy512 in my references [15] describes the following modes of idle/sleep:
IDLE - clock is gated but power remains (does not eliminate any static power consumption)
AFTR - clock is gated, CPU core power removed, cache power remains - this eliminates a great deal of static power consumption - cannot be entered if second core is active
LPA - AFTR + removal of cache power - cannot be entered if second core is active
IDLE is entered if the CPU is expected to be free for 4 msec (40 msec stock)
AFTR is entered if the CPU is expected to be free for 10 msec (disabled stock)
LPA is entered if the CPU is expected to be free for 40 msec (40 msec stock)
This compares to suspend, aka deep sleep, which takes around 150 msec to enter and 650 msec to resume, and the CPU must be at 800 MHz (or at least have enough voltage to support 800 MHz operation) during this time. Entering suspend/resume is very costly in terms of power due to heavy interrupt load.
Unfortunately my knowledge ends here, but flashing a kernel like RedPill [9] with Power Saving features and patches enabled improved the deepness of the idle/sleep very significantly, let's say 2 fold compared to the stock kernel. Sleep is entered faster and with more savings.
2.5. Optimize the modem/baseband
If all the points above are done, you can consider some savings from trying to flash newer modem/baseband compatible with your Custom ROM for better power savings during Calls and Data transmission. I did not get deep into this yet, but it's rather a big Voodoo, because the contents of the various modems are not public and you can only read feedback like "works very good for me" and "totally awful", which is not very scientific. Initially you can try staying with your original modem or the one provided by the Custom ROM, and optimize the previous points.
2.6. Optimize other stuff
2.6.1. Under Volting - will probably help, but for every frequency you need to choose voltages that are not too low to keep the phone stable. You can try the UV profile from the MagicConfig article from my references [14].
2.6.2. Under Clocking - I consider trying to use 100MHz useful for some scenarios, but only as an additional profile. After all the phone is very powerful and snappy to cripple it with 100MHz-1000MHz profile as default.
2.6.3. Automatic Task Killers - absolutely worthless peaces of software [16]. Android OS is good at power saving. It is very power saving conscious actually, of course combined with capable to sleep hardware. The only reason to kill a process is if it locked on holding some resource/connection forever, and OS Monitor [3] can kill it.
2.6.4. Battery charging - charge the battery as frequently as you want, but be sure to not keep it constantly on high charge (90-100%) [18], as long as this is not a good state for storage. Making bigger cycles helps to maintain better battery life. Some sources say cycling from 0% to 100% is not optimal [17], but from my experience through the years this way also works good for battery longevity, and maintaining small loss of capacity. I can give an example of losing up to 10% of battery capacity per year compared to design capacity with this method. You can view such statistics in Power Management tools in Lenovo ThinkPads etc.
Note that the battery indicator has some tweaks around 100% so consider the following:
- When charging for me it hops from 98% straight to 100%. If you disconnect now, it drops to 98% again, and this is what other people complain from too. Just wait some more time and it will charge to real 100% to have more battery life.
- The indicator stays at 100% longer than at any other value. So when testing, always test from the same baseline, e.g. always charge to 100% before comparing results.
3. Baseline configuration and results
CheckROM Revolution HD V6 PDA XWLA4 (Android 2.3.6) + modem XXKI4 (was XWKL1 but changed for no reason) + kernel RedPill 1.3.
WiFi/Data/GPS/Background data/Auto-rotation/Button LED lights - OFF
Any type of Sync or Polling - OFF/MANUAL, using local Contacts and local Calendar
Widgets - AccuWeather.com on MANUAL and Today view from Calendar.
Network: 2G (EDGE in my area)
Background and lock screen: Dark wallpapers
CPU default profile: conservative 200MHz-1200MHz
CPU in-call profile: conservative 100MHz-800Mhz
Because I don't want to wait a full day for the statistics, I'll post now for 8 and 12 hours, and tomorrow add for 24 hours.
(See the attached images, because I'm not sure how to embed them in the text)
4. References
[1] BetterBatteryStats XDA Edition - http://forum.xda-developers.com/showthread.php?t=1179809
[2] CPU Spy - https://market.android.com/details?id=com.bvalosek.cpuspy
[3] OS Monitor - https://market.android.com/details?id=com.eolwral.osmonitor
[4] Titanium Backup (paid version) - http://matrixrewriter.com/android/
[5] Voltage Control - https://market.android.com/details?id=com.darekxan.voltagecontrol
[6] Android Terminal Emulator by Jack Palevich - https://market.android.com/details?id=jackpal.androidterm
[7] DooMLoRD's Easy Rooting Toolkit [v4.0](zergRush Exploit) - http://forum.xda-developers.com/showthread.php?t=1321582
[8] CF-Root Kernel - http://forum.xda-developers.com/showthread.php?t=788108
[9] RedPillKernel_Rev1.3 - http://forum.xda-developers.com/showthread.php?t=1288850
[10] CheckROM Revolution HD V6 - http://forum.xda-developers.com/showthread.php?t=1312240, http://checkrom.com/
[11] Premium Dark Wallpapers - http://forum.xda-developers.com/showthread.php?t=1474798
[12] Kernel Governors, Modules, I/O Schedulers, CPU Tweaks - http://forum.xda-developers.com/showthread.php?t=1369817
[13] Getting the Most out of the Battery on your Android device - http://softbanksucks.blogspot.com/2011/10/getting-most-out-of-your-battery-on.html
[14] MagicConfig for UV and CPU Governor + I/O Scheduler combinations - http://forum.xda-developers.com/showthread.php?t=1466017
[15] Entropy512 explained CPU idle states - http://forum.xda-developers.com/showpost.php?p=23252902&postcount=17
[16] Android Task Killers Explained - http://lifehacker.com/5650894/andro...ed-what-they-do-and-why-you-shouldnt-use-them
[17] Li-Ion Battery Charge Cycles, Voltages and Storage analysis - http://batteryuniversity.com/learn/article/how_to_prolong_lithium_based_batteries
[18] IBM/Lenovo recommendations on Li-Ion battery treatment - http://forum.xda-developers.com/showpost.php?p=23258191&postcount=19
5. Disclaimer
Paid apps are mentioned here for clarity. You can of course find an alternative if such exists. Free (no ads) versions of software were listed where possible.
Needless to say that all advice here must be applied only under your own responsibility.
Results at 25h usage: The battery indicator has dropped down to 94%.
However it's a bit hard to predict how much is it going to last this way as long as after initially staying at the value "100%" the indicator decreases a bit faster.
See attached screenshots.
Thanks for the detailed post but i still don't understand why people insist on having a smart phone and then turning off any good feature in it to get 2 days of work out of it.
Agent_Adodas said:
Thanks for the detailed post but i still don't understand why people insist on having a smart phone and then turning off any good feature in it to get 2 days of work out of it.
Click to expand...
Click to collapse
That depends if you dont want xxxx app running every day why run it and why let it connect on a daily basis . Its a Smartphone not a dumbphone that controls the user .Nothing in the Smartphone design says hey guy you are really uncool if you don't have everything turned on .
I turn on what i want when i want but then again i am not sad enough to live my life on facebook .
jje
there's nothing wrong with killing background tasks that eats your battery, but to me it looks funny to turn off WIFI, 3G, Sync or polling.
anyway, that's what i think, other people may think different and will prefer to save on battery life.
Agent_Adodas said:
there's nothing wrong with killing background tasks that eats your battery
Click to expand...
Click to collapse
:facepalm:
http://lifehacker.com/5650894/andro...ed-what-they-do-and-why-you-shouldnt-use-them
Unless you love using terribly coded apps.
This is a Baseline - my initial starting position. Yeah I don't feel cool for running tons of unneeded stuff Actually after 15 hours of uptime I feel pretty bad and a slave of the charger.
I hope to tell more people in a single post what can be optimized, stripping off any superstition, voodoo and some pointless beliefs circulating in the web
I don't say "do like me", but instead what a great hardware SGS2 + core Android software actually seems to be
Please also note I didn't limit myself to 1000MHz, do not recommend reducing voltages etc... the struggle is to put the software in control, not to cripple the experience.
Additionally, I have WiFi at work, at home, at the gym, and between them I'm driving... for that reason I don't need unlimited data. And for new mails I actually get SMS and know when to fetch the mail. If it's important I can turn on the data as well. On business trips abroad there is no unlimited data anyway too - only WiFi at the office and at the hotel. So there are different scenarios...
Serious Observations Bro!
Must say, very clear,simple and awesome way to put together things...will try this out and post again!
Thanks a ton bro! Love the efforts and for helping us out!
Great tips mate... I knew many of them before but i will not use them so much.. I have a feeling that it criples my phone... Limiting my usage of the phone... Instead i have a custom rom,custom kernel ,an extra standard battery,car charger...
I even tryed once to apply most of your tips but they gave me a couple of hours extra batt life. My problem is network signal coverage-edge is fine(but who can surf on egde ?!? ) ,3g and hspda signal is not so good (i travel a lot by car all over my country) and the phone keeps trying to get better network signal and uses more battery...
So most of your tips work if u want to criple your phone and if ur network has great coverage...
Sent from my GT-I9100 using XDA
Using a slow scaling cpu governor defeats the purpose of battery savings. You want something that will scale up fast and scale down just as fast. That way the task gets completed quicker and the cpu can go back to an idle state faster.
Slower governors take longer to complete a task and that uses more battery.
I rather OnDemand complete something in 2 seconds jumping immediately to 1.2Ghz than Conservative in 4 seconds scaling it's way up each step and then scaling back down slowly.
Sent from my GT-I9100 using Tapatalk
Elisha said:
Using a slow scaling cpu governor defeats the purpose of battery savings. You want something that will scale up fast and scale down just as fast. That way the task gets completed quicker and the cpu can go back to an idle state faster.
Slower governors take longer to complete a task and that uses more battery.
I rather OnDemand complete something in 2 seconds jumping immediately to 1.2Ghz than Conservative in 4 seconds scaling it's way up each step and then scaling back down slowly.
Sent from my GT-I9100 using Tapatalk
Click to expand...
Click to collapse
Not true if I'm typing notes. Ondemand will struggle to take me on high frequency, while I'm browsing the texts... Do you need high frequency when reading forums?
Actually I have no problem to play Asphalt 6 and Angry Birds on 1200MHz with this setup
It takes you more cpu cycles to get Asphalt or Angry Birds fully loaded with Conservative than it would with OnDemand.
And you have to remember we have dual-core cpus. It's to your benefit to get both cores scaled up faster to finish the task.
You don't notice this as much because the difference is probably in the milliseconds. But Conservative is more of a power hog than OnDemand.
Sent from my GT-I9100 using Tapatalk
Wow, thats massive and informative! Too good job Sir! Hats Off!
Elisha said:
It takes you more cpu cycles to get Asphalt or Angry Birds fully loaded with Conservative than it would with OnDemand.
And you have to remember we have dual-core cpus. It's to your benefit to get both cores scaled up faster to finish the task.
You don't notice this as much because the difference is probably in the milliseconds. But Conservative is more of a power hog than OnDemand.
Sent from my GT-I9100 using Tapatalk
Click to expand...
Click to collapse
Agree. All that advice is mostly targeted to battery conscious people, this is not a gaming setup There is no one best configuration for all.
It's also not about what exact values to choose, but what approach to take for battery life improvement.
Can't wait to run a UV kernel once the sources drop. That there helps quite a bit to conserve battery.
Sent from my GT-I9100 using Tapatalk
I know pretty much all of this already but it's a useful guide for noobs for sure.
I don't bother anymore with SetCPU or any of that anymore and to be honest it's had little or no impact on battery life which is still excellent.
gingingingin said:
0: IDLE - CPU not clocked
1: AFTR - something not totally clear to me, but an alternative way to IDLE the CPU - ARM Off Top Running with L2 cache keeping its state
2: IDLE+LPA - IDLE + DEEP IDLE - also some parts of hardware are powered down
3: AFTR+LPA - AFTR + DEEP IDLE
Click to expand...
Click to collapse
These are not deep sleep states. Deep sleep is also known as "suspend" - where almost the entire system is shut down.
These are CPU idle states, which allow the core to save power even when the system is "running". They take significantly less time and energy to enter, but save less power. Also, there are only three of them - IDLE, LPA, AFTR. See arch/arm/mach-s5pv310/cpuidle.c in the kernel source for more details.
As an example, with kernels that have the cpuidle backport from the Tab 7 Plus:
IDLE is entered if the CPU is expected to be free for 4 msec (40 msec stock)
AFTR is entered if the CPU is expected to be free for 10 msec (disabled stock)
LPA is entered if the CPU is expected to be free for 40 msec (40 msec stock)
There are some rules that can cause lower states to be entered even if the cpuidle governor chooses LPA or AFTR. (cpuidle governor has nothing to do with cpufreq governor).
Your descriptions of the states are pretty close to what I understand them to be:
IDLE - clock is gated but power remains (does not eliminate any static power consumption)
AFTR - clock is gated, CPU core power removed, cache power remains - this eliminates a great deal of static power consumption - cannot be entered if second core is active
LPA - AFTR + removal of cache power - cannot be entered if second core is active
The above are why 100 MHz is pointless on our device, and in my experience, actually can increase power usage. The achievable voltage difference between 100 MHz and 200 MHz is insignificant for most peope, and if the voltages for two frequencies are the same, it's better to run at the higher frequency and drop into AFTR/LPA to shut off core power more often. The PDF linked from Ezekeel's post at http://forum.xda-developers.com/showthread.php?p=21785924#post21785924 is a useful read on this topic, especially section 6. While it's fairly old, most of the concepts remain valid. For this reason, 500 MHz also doesn't consume much more power than 200 for a given fixed amount of load due to having the same voltage stock as 200 (however, it does increase some internal clocks I believe, leading to slightly increased power) - so when the screen is on I have it set to 500 MHz minimum.
This compares to suspend, aka deep sleep, which takes around 150 msec to enter and 650 msec to resume, and the CPU must be at 800 MHz (or at least have enough voltage to support 800 MHz operation) during this time. Entering suspend/resume is very costly in terms of power due to heavy interrupt load, which is involved in 90% of complaints about high "Android OS" battery usage on Gingerbread. However I believe from some of the testing I've run that improved cpuidle greatly reduces this penalty.
With the improved cpuidle patch, even when I use the Wake Lock app to hold a permanent wakelock for testing purposes, my standby drain is only 1.5%/hour or so. When not holding a wakelock, 0.5%/hour on wifi is easily achievable. It gets much worse at my desk at work, where the signal is weak and the cell radio eats huge amounts of power - there it's around 1%/hour.
Edit: As to task killers - all of the people saying "task killers are worthless" talk about memory management only. The fact is, unfortunately, that there are some crappy apps out there that use too much CPU or hold insanely long wakelocks that you just have to use occasionally. Facebook is still the #1 example here - Facebook is a major battery hog, therefore when you're done with it, you must kill it with fire. However, NEVER use an autokiller and never use it for memory management!
Regarding battery charging, I wonder have you read this article before : batteryuniversity.com/learn/article/how_to_prolong_lithium_based_batteries (please add http)
The fact seems to be completely opposite from your theory in 2.6.4.
Sent from my GT-I9100 using xda premium
Not sure, the battery article is a bit doubtful. For me at least the testing sequence is strange:
1. Charging current of 1C is a bit high, to say the least. Quick chargers have never been optimal for any type of batteries.
2. Discharge current of 1C is huge and far from being realistic for a mobile phone.
Also if we interpret the results it becomes that at 10% DoD we get 4700 small cycles, which is close to 100% DoD with 500 big cycles... Actually the results are in favor of the 100% DoD.
Of course my interpretation can be wrong, but so far I have got the opposite idea of that.
For practical purposes I can give an example of a Nokia Li-Ion battery thoroughly fully discharged and for 2 years it retained at least 80% capacity. I'd estimate the number of cycles to be 120-150.
On my current laptop the ThinkPad Panasonic battery was always almost completely discharged via settings, attaching screenshots. At 328 cycles and 3.5 years since first use it retains 88% of the design capacity. This is quite a good achievement for a tortured battery I'd say
Note: See the advice/sentence written in the top box by my good old IBM manufacturer (now Lenovo). "... battery deterioration may occur faster if the battery is constantly charged at 100%. Lowering the charge thresholds ... will help increase its lifespan". These guys know their job... I think their sentence almost surely relates to storage though. Storage at 50% is much better than storage at 100% charge. There is room for interpretation again.
Note: This is my second battery on this laptop, the first one Sanyo was a bit worse with the same treatment (maybe older technology) and after 2 years its electronics suddenly failed, while at around 150 cycles.
Entropy512 said:
The above are why 100 MHz is pointless on our device, and in my experience, actually can increase power usage. The achievable voltage difference between 100 MHz and 200 MHz is insignificant for most peope, and if the voltages for two frequencies are the same, it's better to run at the higher frequency and drop into AFTR/LPA to shut off core power more often.
Click to expand...
Click to collapse
First of all, thanks for the detailed explanation of the states.
I remember from the school/uni that the power used is proportional to the frequency. If we have static consumption in the chip it will not be affected by changing the frequency, but the dynamic part of the consumption is essentially doubled when running on 200MHz compared to 100MHz. I don't know the ratio dynamic_consumption:static_consumption for my chip, but it may be around 1:1.
The formulas were something like that: http://forums.anandtech.com/showthread.php?t=119229