├── css ├── 1140.css ├── ie.css └── styles.css ├── example.html ├── help.html ├── help_de.html ├── howto.html ├── howto.png ├── howto_de.html ├── index.html ├── index_de.html ├── js ├── .DS_Store └── css3-mediaqueries.js ├── kb_v1.0.json ├── style.css ├── wakelocks.html └── wakelocks_de.html /css/1140.css: -------------------------------------------------------------------------------- 1 | /* CSS Resets */ 2 | 3 | html,body,div,span,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,address,cite,code,del,dfn,em,img,ins,q,small,strong,sub,sup,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{border:0;margin:0;padding:0}article,aside,figure,figure img,figcaption,hgroup,footer,header,nav,section,video,object{display:block}a img{border:0}figure{position:relative}figure img{width:100%} 4 | 5 | 6 | /* ==================================================================================================================== */ 7 | /* ! The 1140px Grid V2 by Andy Taylor \ http://cssgrid.net \ http://www.twitter.com/andytlr \ http://www.andytlr.com */ 8 | /* ==================================================================================================================== */ 9 | 10 | .container { 11 | padding-left: 20px; 12 | padding-right: 20px; 13 | } 14 | 15 | .row { 16 | width: 100%; 17 | max-width: 1140px; 18 | min-width: 755px; 19 | margin: 0 auto; 20 | overflow: hidden; 21 | } 22 | 23 | .onecol, .twocol, .threecol, .fourcol, .fivecol, .sixcol, .sevencol, .eightcol, .ninecol, .tencol, .elevencol { 24 | margin-right: 3.8%; 25 | float: left; 26 | min-height: 1px; 27 | } 28 | 29 | .row .onecol { 30 | width: 4.85%; 31 | } 32 | 33 | .row .twocol { 34 | width: 13.45%; 35 | } 36 | 37 | .row .threecol { 38 | width: 22.05%; 39 | } 40 | 41 | .row .fourcol { 42 | width: 30.75%; 43 | } 44 | 45 | .row .fivecol { 46 | width: 39.45%; 47 | } 48 | 49 | .row .sixcol { 50 | width: 48%; 51 | } 52 | 53 | .row .sevencol { 54 | width: 56.75%; 55 | } 56 | 57 | .row .eightcol { 58 | width: 65.4%; 59 | } 60 | 61 | .row .ninecol { 62 | width: 74.05%; 63 | } 64 | 65 | .row .tencol { 66 | width: 82.7%; 67 | } 68 | 69 | .row .elevencol { 70 | width: 91.35%; 71 | } 72 | 73 | .row .twelvecol { 74 | width: 100%; 75 | float: left; 76 | } 77 | 78 | .last { 79 | margin-right: 0px; 80 | } 81 | 82 | img, object, embed { 83 | max-width: 100%; 84 | } 85 | 86 | img { 87 | height: auto; 88 | } 89 | 90 | 91 | /* Smaller screens */ 92 | 93 | @media only screen and (max-width: 1023px) { 94 | 95 | body { 96 | font-size: 0.8em; 97 | line-height: 1.5em; 98 | } 99 | 100 | } 101 | 102 | 103 | /* Mobile */ 104 | 105 | @media handheld, only screen and (max-width: 767px) { 106 | 107 | body { 108 | font-size: 16px; 109 | -webkit-text-size-adjust: none; 110 | } 111 | 112 | .row, body, .container { 113 | width: 100%; 114 | min-width: 0; 115 | margin-left: 0px; 116 | margin-right: 0px; 117 | padding-left: 0px; 118 | padding-right: 0px; 119 | } 120 | 121 | .row .onecol, .row .twocol, .row .threecol, .row .fourcol, .row .fivecol, .row .sixcol, .row .sevencol, .row .eightcol, .row .ninecol, .row .tencol, .row .elevencol, .row .twelvecol { 122 | width: auto; 123 | float: none; 124 | margin-left: 0px; 125 | margin-right: 0px; 126 | padding-left: 20px; 127 | padding-right: 20px; 128 | } 129 | 130 | } -------------------------------------------------------------------------------- /css/ie.css: -------------------------------------------------------------------------------- 1 | .onecol { 2 | width: 4.7%; 3 | } 4 | 5 | .twocol { 6 | width: 13.2%; 7 | } 8 | 9 | .threecol { 10 | width: 22.05%; 11 | } 12 | 13 | .fourcol { 14 | width: 30.6%; 15 | } 16 | 17 | .fivecol { 18 | width: 39%; 19 | } 20 | 21 | .sixcol { 22 | width: 48%; 23 | } 24 | 25 | .sevencol { 26 | width: 56.75%; 27 | } 28 | 29 | .eightcol { 30 | width: 61.6%; 31 | } 32 | 33 | .ninecol { 34 | width: 74.05%; 35 | } 36 | 37 | .tencol { 38 | width: 82%; 39 | } 40 | 41 | .elevencol { 42 | width: 91.35%; 43 | } -------------------------------------------------------------------------------- /css/styles.css: -------------------------------------------------------------------------------- 1 | /* ============================== */ 2 | /* ! Layout for desktop version */ 3 | /* ============================== */ 4 | 5 | body { 6 | 7 | } 8 | 9 | 10 | /* ============================= */ 11 | /* ! Layout for mobile version */ 12 | /* ============================= */ 13 | 14 | @media handheld, only screen and (max-width: 767px) { 15 | 16 | body { 17 | 18 | } 19 | 20 | } 21 | 22 | 23 | /* ========================================== */ 24 | /* ! Provide higher res assets for iPhone 4 */ 25 | /* ========================================== */ 26 | 27 | @media only screen and (-webkit-min-device-pixel-ratio: 2) { 28 | 29 | /* .logo { 30 | background: url(logo2x.jpg) no-repeat; 31 | background-size: 212px 303px; 32 | }*/ 33 | 34 | } -------------------------------------------------------------------------------- /example.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | The 1140px Grid · Fluid down to mobile 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 38 | 39 | 40 | 41 | 42 | 43 | 44 |
45 |
46 |
47 |

One

48 |
49 |
50 |

One

51 |
52 |
53 |

One

54 |
55 |
56 |

One

57 |
58 |
59 |

One

60 |
61 |
62 |

One

63 |
64 |
65 |

One

66 |
67 |
68 |

One

69 |
70 |
71 |

One

72 |
73 |
74 |

One

75 |
76 |
77 |

One

78 |
79 |
80 |

One

81 |
82 |
83 |
84 | 85 |
86 |
87 |
88 |

Two columns

89 |
90 |
91 |

Two columns

92 |
93 |
94 |

Two columns

95 |
96 |
97 |

Two columns

98 |
99 |
100 |

Two columns

101 |
102 |
103 |

Two columns

104 |
105 |
106 |
107 | 108 |
109 |
110 |
111 |

Three columns

112 |
113 |
114 |

Three columns

115 |
116 |
117 |

Three columns

118 |
119 |
120 |

Three columns

121 |
122 |
123 |
124 | 125 |
126 |
127 |
128 |

Four columns

129 |
130 |
131 |

Four columns

132 |
133 |
134 |

Four columns

135 |
136 |
137 |
138 | 139 |
140 |
141 |
142 |

One

143 |
144 |
145 |

Eleven columns

146 |
147 |
148 |
149 | 150 |
151 |
152 |
153 |

Two columns

154 |
155 |
156 |

Ten columns

157 |
158 |
159 |
160 | 161 |
162 |
163 |
164 |

Three columns

165 |
166 |
167 |

Nine columns

168 |
169 |
170 |
171 | 172 |
173 |
174 |
175 |

Four columns

176 |
177 |
178 |

Eight columns

179 |
180 |
181 |
182 | 183 |
184 |
185 |
186 |

Five columns

187 |
188 |
189 |

Seven columns

190 |
191 |
192 |
193 | 194 |
195 |
196 |
197 |

Six columns

198 |
199 |
200 |

Six columns

201 |
202 |
203 |
204 | 205 |
206 |
207 |
208 |

Seven columns

209 |
210 |
211 |

Five columns

212 |
213 |
214 |
215 | 216 |
217 |
218 |
219 |

Eight columns

220 |
221 |
222 |

Four columns

223 |
224 |
225 |
226 | 227 |
228 |
229 |
230 |

Nine columns

231 |
232 |
233 |

Three columns

234 |
235 |
236 |
237 | 238 |
239 |
240 |
241 |

Ten columns

242 |
243 |
244 |

Two columns

245 |
246 |
247 |
248 | 249 |
250 |
251 |
252 |

Eleven columns

253 |
254 |
255 |

One

256 |
257 |
258 |
259 | 260 |
261 |
262 |
263 |

Three columns

264 |
265 |
266 |

Six columns

267 |
268 |
269 |

Three columns

270 |
271 |
272 |
273 | 274 | 275 | 276 | 277 | -------------------------------------------------------------------------------- /help.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Help 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
24 | 25 |

BetterBatteryStatsHelp

26 |
27 | 28 |

Here you will find details about the views and options of BetterBatteryStatistics are organised. Further information about using BetterBatteryStats is located in the how-tos.

29 |

References

30 |

31 | BetterBatteryStats does not collect data in the background but uses references saved at specific times (on specific events): 32 |

    33 |
  • Boot: is saved when your phone boots, deletes all other refrences
  • 34 |
  • Unplug: is saved when you unplug your phone from the charger
  • 35 |
  • Charged: is saved when your phone gets charged to 100%
  • 36 |
  • Screen Off: is saved when the screen of your phone goes off (if watchdog activated)
  • 37 |
  • Screen On: is saved when the screen of your phone goes on (if watchdog activated)
  • 38 |
  • Custom: is saved when you select the option to save a custom reference from the menu
  • 39 |
  • Current: is the current data sample
  • 40 | 41 |
42 |

43 | As long as those events did not occur or after a reboot BBS will notify you about a missing reference. This is not a bug, it's the way BBS was designed 44 | 45 |

Views

46 |

These are the four statistics: 47 |

    48 |
  • Other: shows sleep, awake and screen on as well as other important times
  • 49 |
  • Kernel Wakelocks: shows the total time and the count of kernel wakelocks
  • 50 |
  • Partial wakelocks: shows the total time and the count of partial wakelocks
  • 51 |
  • Alarms: shows the wakeups caused by applications or services
  • 52 |
  • Network: shows network stats
  • 53 |
  • CPU states: shows CPU states and deep sleep
  • 54 |
  • Processes: shows the cpu time (user and system) processes have consumed
  • 55 |
  • Package info: shows rights and services for a given package (app): this view can be opened by clicking on any icon from any view
  • 56 |

57 |

and these are the possible points in time for showing stats (selection "from" and "to" any of those points in time): 58 |

    59 |
  • Charged: when the phone was 100% charged
  • 60 |
  • Unplugged: when the phone was unplugged from A/C or USB
  • 61 |
  • Custom reference: when a custom reference was set (from the "Actions" menu)
  • 62 |
  • Screen off: when the screen was turned off (only when the watchdog is enabled)
  • 63 |
  • Screen on: when the screen was turned on (only when the watchdog is enabled and the corresponding preference is set)
  • 64 |
  • Boot: when the phone was booted
  • 65 |
  • Current: the current point in time
  • 66 | 67 |
68 |

69 |

70 | Please note that the data for the timespans gets deleted at boot. To use "From=unplugged" after a reboot you need to plug/unplug your phone. 71 |

72 | 73 |

Other

74 |

75 | Group of different indicators about what is consuming the battery. This statistic should always be checked first as it gives a good idea about the draining profile. 76 |

77 |

78 | A usual profile would show low "Screen on" times compared the "Awake" meaning that partial wakelocks are resonsible for the battery drain as those preventing the phone from going to deep sleep. 79 |

80 |
    81 |
  • Deep Sleep: the total time the phone was sleeping
  • 82 |
  • Awake: the total time the phone was not in deep-sleep
  • 83 |
  • Screen On: the total time the phone was awake and the display was on
  • 84 |
  • Phone On: the total time the phone was in a call
  • 85 |
  • Wifi On: the total time Wifi was on
  • 86 |
  • Wifi running: the total time Wifi was connected to a SSID
  • 87 |
  • Bluetooth On: the total time bluetooth was on
  • 88 |
89 |

Partial wakelocks

90 |

91 | The list shows the total time of partial wakelock that was held by an application or by a service during the timespan, the number of wakelocks and the impact in percent. 92 | The impact in percent is calculated against the total time on, the awake time or the awake time - screen on time depending on the settings. 93 | Usually the impact calculated against the awake time is the most representative as it shows the potential in terms of reducing the awake time. 94 | The graph bars show the percentage depending on the preferences (see above). 95 |

96 |

97 | Even if the total time is low it is important to check for high counts as well. A large number of short wake periods can have a huge impact on the awake time as the phone takes some time to wake up and some time to go back to sleep. This is not shown in this stat. 98 | For example let's assume the phone takes 1/2 second to wake up and sleep again. For a wakelock of 10 seconds the resulting awake time would be 11 seconds. For 10 wakelocks of 0,1 seconds the total wakelock time would be as low as 1 second but the awake time would be 11 seconds. 99 |

100 |

Kernel wakelocks

101 |

102 | Like for partial wakelocks as well long running wakelocks as wakelocks with a high count (large number of wakeups) should be taken into acount. 103 |

104 |

Alarms

105 |

106 | Alarms are events created by applications that may cause wakeups. 107 |

108 |

Network

109 |

110 | Shows the transfered Bytes per application and per network interface. 111 |

112 |

CPU States

113 |

114 | Shows the time spent in each CPU state (frequency) including the time spent in deep sleep. 115 |

116 | 117 |

Processes

118 |

119 | The list shows the processes and their CPU consumption during the timespan. CPU consumption is expressed in user CPU and system CPU and both times are shown in the total and in the bar graph with different colors. 120 |

121 |

The watchdog

122 |

123 | The watchdog is a feature to help you in analysing when happens when the screen is off. When the watchdog is on a reference 'screen off' is created when the screen turns off. You can also configure the watchdog to create a reference 'screen on' when the screen is turned on (or unlocked). Opionally the watchdog will notify you when screen is turned on and the awake ratio was bigger that the configured awake threshold. In order to avoid too much overhead in processing a duration threshold can be set to disable the watchdog for short screen off times. 124 |

125 | 126 |

Menu

127 |

128 |

    129 |
  • Preferences
  • 130 |
  • Refresh
  • 131 |
  • Order By/li> 132 |
  • More
  • 133 |
      134 |
    • Dump to file: writes the statistics to /sdcard/BetterBatteryStats.log
    • 135 |
    • Set Custom Reference: set a custom begin mark for a statitic
    • 136 |
    • History: shows different graphs like battery usage or wakeups (starting from android 2.3)
    • 137 |
    • Raw Alarms: shows the alarms since boot
    • 138 |
    • Raw Kernel Wakelocks: shows the alarms since boot
    • 139 |
    • Raw network stats: the network stats since boot
    • 140 |
    • CPU states: the CPU states since boot
    • 141 | 142 |
    143 |
  • Help: access to this help was well as the how-to
  • 144 |
145 |

146 |
147 | 148 |
149 | 156 |
157 |
158 | 159 | 160 | -------------------------------------------------------------------------------- /help_de.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Help 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
24 | 25 |

BetterBatteryStatsHelp

26 |
27 | 28 |

Hier findest Du Details darüber wie die Ansichten und Optionen von BetterBatteryStatistics organisiert sind. 29 | Mehr darüfindest Du in der how-to Dokumentation.

30 |

Referenzen

31 |

32 | BetterBatteryStats sammelt keine daten im Hintergrund sondern nutzt sog. Referenzen um sich Daten zu merken. Diese Referenzen werden zu bestimmten Zeitpunkten bzw. zu bestimmten Ereignissen gespeichert: 33 |

    34 |
  • Boot: wenn das Handy neu gestartet wird; löscht alle anderen Referenzen
  • 35 |
  • Unplug: wenn das Handy vom Ladekabel abgesteckt wird
  • 36 |
  • Charged: wenn das Handy zu 100% geladen ist
  • 37 |
  • Screen Off: wenn der Bildschirm ausgeht
  • 38 |
  • Custom: wenn die entsprechende Option aus dem Menü gewählt wird
  • 39 |
40 |

41 | So lange diese Ereignisse nicht eingetreten sind bzw. nach einem Neustart des Handys informiert eine Meldung, dass eine Referenz fehlt darüber, dass das entsprechende Ereignis noch nicht eigetreten ist. Dies ist kein Fehler sondern BBS wurde so konzipiert 42 | 43 |

Ansichten

44 |

Es gibt fünf Ansichten: 45 |

    46 |
  • Other: die deep-sleep-, Wach- und Bildschirm an Zeiten so wie andere wichtige Infos
  • 47 |
  • Kernel Wakelocks: Zeiten und Anzahl von Kernel Wakelocks
  • 48 |
  • Partial wakelocks: Zeiten und Anzahl von Partial Wakelocks
  • 49 |
  • Alarms: Details über Applikationen und Services die das Handy zum Aufwachen brachten
  • 50 |
  • Network: Netzwerk Statistik
  • 51 |
  • CPU states: CPU Frequenzen und Deep Sleep
  • 52 |
  • Processes: cpu Zeit (user and system) auf Prozess-Ebene
  • 53 |
  • Package informationen: zeigt Rechte und Services zu einem Package: diese Ansicht wird bei Click auf einem Icon geöffnet
  • 54 |

55 |

und möglichen Zeitpunkte: 56 |

    57 |
  • Charged: Zeitpunkt an dem das Handy vollständig aufgeladen war
  • 58 |
  • Unplugged: Zeitpunkt an dem das Handy vom Ladegerät oder USB-Kabel genommen wurde
  • 59 |
  • Custom reference: Zeitpunkt an dem eine benutzerdefinierte Referenz gespeichert wurde(siehe "Actions" Menü)
  • 60 |
  • Screen off: Zeitpunkt an dem der Bildschirm ausgeschaltet wurde
  • 61 |
  • Screen on: Zeitpunkt an dem der Bildschirm eingeschaltet wurde
  • 62 |
  • Boot: Zeitpunkt an dem das Handy neu gestatet wurde
  • 63 |
  • Current: Der aktuelle Zeitpunkt
  • 64 | 65 |

66 | 67 |

Other

68 |

69 | Übersicht der wichtigen Zeiten und Indikatoren über die Aktivität des Geräts. 70 | Diese Ansicht sollte immer der Startpunkt einer Analyse sein. 71 |

72 |

73 | Typischerweise sollte "Screen on" mit "Awake" vergleichbar sein. Dies bedeutet, dass das Handy im Schlafzustand keine wesentliche Aktivitäten aufweist.

74 |
    75 |
  • Deep Sleep: die Zeit in der das Handy im Schlafzustand war
  • 76 |
  • Awake: die Zeit in der das Handy nicht im Schlafzustand war
  • 77 |
  • Screen On: die Zeit in der das Display an war
  • 78 |
  • Phone On: die Zeit in der ein Anruf aktiv war
  • 79 |
  • Wifi On: die Zeit in der Wifi an war
  • 80 |
  • Wifi running: die Zeit in der Wifi verbunden war
  • 81 |
  • Bluetooth On: die Zeit in der Bluetooth an war
  • 82 |
83 |

84 | Anmerkung: alle Referenzen werden beim Neustart gelöscht, d.h. um "unplugged" als Startpunkt zu nutzen muss erst das Handy erst einmal an das Ladegerät. 85 |

86 |
87 |

Partial Wakelocks

88 |

89 | Diese Liste zeigt die Zeiten und Anzahl von Wakelocks die durch Anwendungen zu verantworten sind. Der Anteil in % wird je Wakelock ausgewiesen. 90 | Die Berechnung des Anteils wird je nach Option gegen die Gesamtzeit, die Wach-Zeit oder die Wach-Zeit - Zeit mit Bildschirm, je nach Einstellung. 91 | Uuml;blicherweise ist der Anteil, errechnet gegen die Wach-Zeit am repräsantivsten. 92 | Der Balken zeigt der errechnete Anteil. 93 |

94 |

95 | Auch wenn die Zeit gering erscheint ist es wichtig die Anzahl zu überprüfen. Eine hohe Anzahl kann auch mit einer kurzen Zeit in Summe eine hohe Auswirkung haben: jedes Aufwachen ist mit Zeit zum aufwachen und zum wieder einschlafen verbunden. Diese Zeiten werden dem Wakelock nicht angerechnet. 96 | 97 |

98 |

Kernel Wakelocks

99 |

100 | Analog der Partial Wakelocks werden hier Wakelocks gelistet die vom Kernel verantwortet sind. 101 |

102 |

Alarms

103 |

104 | Alarms sind Ereignisse die zu einem Aufwachen des Handys führen können. 105 |

106 |

Network

107 |

108 | Datentransfer nach Anwendung und Netzwerk-Typ. 109 |

110 |

CPU States

111 |

112 | Zeit in jedem CPU Zustand (Frequenz) einschl. die Zeit im Deep Sleep Zustand. 113 |

114 | 115 |

Processen

116 |

117 | Die Liste zeigt die Prozesse und deren CPU-Verbrauch. Der CPU-Verbrauch ist in Sekunden ausgedrückt (User und System). 118 |

119 |

Der Watchdog

120 |

121 | Der Watchdog ist eine Funktionalität die dabei unterstützen soll zu analysieren was passier wenn der Bildschirm aus ist. Ist er aktiv wird eine Referenz 'screen off' automatisch erzeugt wenn der Bildschirm ausgeht. Optional kann auch eine Referenz 'screen on' erzeugt werden wenn der Bildschirm angeht bzw. das Handy entsperrt wird. Der Watchdog kann so eingestellt werden, dass er automatisch meldet wenn der Wach/Schlaf Ratio eine Grenz überschritten hat. Damit der Watchdog nicht zu viel Overhead erzeugt kann eine Mindestzeit eingestellt werden unter der Watchdog nicht anspringt wenn der Bildschirm angeschlatet wird. 122 |

123 | 124 |

Menu

125 |

126 |

    127 |
  • Preferences: Einstellungen
  • 128 |
  • Refresh
  • 129 |
  • Order By: Sortierung
  • 130 |
  • More
  • 131 |
      132 |
    • Dump to file: schreibt eine Datei mit den wesentlichen Informationen nach /sdcard/BetterBatteryStats.log
    • 133 |
    • Set Custom Reference: Legt eine benutzerdefinierte Referenz an
    • 134 |
    • History: Grafische Darstellung der Statistiken
    • 135 |
    • Raw Alarms: Alarms seit Boot
    • 136 |
    • Raw Kernel Wakelocks: Kernel Wakelocks seit Boot
    • 137 |
    • Raw network stats: die Netzwerk Statistiken seit Boot
    • 138 | li>CPU states: die CPU Zustände seit Boot 139 | 140 |
    141 |
  • Help: Zugriff auf die Online-Dokumentation
  • 142 |
143 |

144 |
145 | 146 |
147 | 154 |
155 |
156 | 157 | 158 | -------------------------------------------------------------------------------- /howto.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Help 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
24 | 25 | 26 |

BetterBatteryStats How To

27 |
28 | This document provides an insight about how to use BetterBatteryStats to reduce the battery drain in a systematic manner. 29 |

First you must select a reference (most of the time "unplugged" to "current" is the best way to start).

30 |

Go to the [Other] view

31 |

Check the deep sleep, awake and screen on times

32 |

33 | The deep sleep to total time tells you how much time your phone has spent in the most power saving mode: ideally the deep sleep time should be near to the total time 34 |

35 |

36 | The screen on vs. awake ratio tells you how much time your phone was in use vs. how long it has been awake. Ideally the screen on time should be equal to the awake time, meaning that the phone was only awake when in use. 37 |

38 |

39 | Pro tip: the 1x1 widget shows both ratios and gives the best overview on how optimal your phones runs

40 |

Check the [Kernel wakelocks]

41 |

42 | The list shows you what kernel wakelocks occured: a symbol on the right shows that there is a knowledge-base article on that specific wakelock 43 | In the first step we want to check for high times (minutes or more), once there are no hot spots left we want to look at the high counts. 44 |

45 | 46 |

The PowerManagerService wakelock

47 |

48 | This wakelock shows as a sum of the partial wakelocks on many phones. If this wakelock is #1 go to the Partial Wakelocks to find out more. 49 |

50 |

The multipdp / svnet-dormancy wakelock

51 |

52 | This wakelock indicates a high network usage. If this wakelock is #1 go to the Network Stats to find out more. 53 |

54 | 55 |

56 | If the PowerManagerService is not the highest wakelock check the online knowledge-base or use google search to find more information about the wakelock and its potential causes. 57 |

58 |

Check the [Partial wakelocks]

59 |

60 | The list shows you what partial wakelocks occured and for most of them what application caused them. See "What's next" for more details on how to reduce them. 61 |

62 |

The AlarmManager wakelock

63 |

64 | High times or count on the AlarmManager wakelock is a sign that either many wakeups were caused by alarms or that apps have added/modified alarms intensively. A detailed overview can be found under [Alarms]. 65 |

66 |

The Network Stats

67 |

68 | Here you will find what apps / packages are responsible for high data transfers. 69 |

70 | 71 |

What's next?

72 |

Some but not all wakelocks can be traced back to a specific app. In that case there are following options: 73 |

Check / change settings

74 |

75 | Sometimes we really want the app / functionality causing the wakelocks and the good news is there is still hope. Many apps have settings that condition their behaviour so these should be checked: 76 |

    77 |
  • frequency: having twitter check for new messages every 2 minutes is not something compatible with a long battery life. Once you know the cost of a functionality it may be easier to decide to use it on demand instead of let it running as a background scheduled task
  • 78 |
  • quantity: check for optional services like e.g. cloud backup, full sync etc. and ask yourself if you really need all that stuff
  • 79 |
80 | 81 |

Deinstall or freeze

82 |

83 | Once a cause for partial wakelocks has been spotted you have to ask yourself if you even use that app. If not disable/deinstall/freeze it. 84 | Go back to the start and take another reading to see the effect of the action. 85 |

86 |

In some cases it is not possible to attribute a wakelock to an app. In such cases use the knowledge-base and google search to find more information about potential causes.

87 |

Common tips

88 | Following tips can help you reducing some causes of awake: 89 |
    90 |
  • Turn your GPS off when not required to avoid apps using that expensive location source
  • 91 |
  • When you are finished using an app close it with the "back" button. This will terminate it and avoid background management
  • 92 |
  • Don't use any auto killer apps. If there are apps you don't want to be started or cached freeze them or configure their auto-start properly
  • 93 |
  • Don't use and power saving tools like Juice Defender or Green Power: most apps do not behave properly when they can't use the data connection and will generate overhead by trying
  • 94 |
  • If you don't need Wifi turn it off: in some cases Wifi is known to cause wakeups and an overhead in e.g. location services
  • 95 |
96 |

97 |

Enjoy your successes

98 |

99 | One basic rule in performance optimization is to check the results for each action taken and this applies here too: 100 |

    101 |
  • don't make too many changes at once: once a hot spot has been removed you may have a completely different picture. This is why processing two or more findings at once may be a waste of time
  • 102 |
  • switching kernel, ROM or modem during a round of optimization will probably distort your statistics, avoid running tests during this time as the results may be demotivating
  • 103 |
  • consider external factors, in case of unexpected stats being reported by BBS, run the tests again to validate readings: our phones are not closed systems and conditions like network coverage may influence readings. In case of doubt, confirm results by repeating the readings under different conditions in order to correctly diagnose a problem
  • 104 |
  • don't obsess: you want to enjoy your phone too so don't obsess by hunting down the last second of wakelock. Enjoy your results and come back to check the stats from time to time of if you feel battery life is getting worse
  • 105 |
106 |
107 |
108 | 115 |
116 |
117 | 118 | 119 | 120 | -------------------------------------------------------------------------------- /howto.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asksven/BetterBatteryStats-Knowledge-Base/5e9bf3b9cb3276f50b81e79a8187e5c9e88c1838/howto.png -------------------------------------------------------------------------------- /howto_de.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Help 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
24 | 25 | 26 |

BetterBatteryStats How To

27 |
28 | Einblick in die Art und Weise wie BetterBatteryStats genutzt werden kann um Akku-Verbraucher systematisch zu identifizieren. 29 |

Als erstes muss eine Referenz gewählt werden (üblicherweise ist "unplugged" bis "current" die beste Wahl).

30 |

Gehe zur [Other] Ansicht

31 |

Prüfe die deep sleep, awake und screen on Zeiten

32 |

33 | Der Anteil von deep sleep zur Gesamtzeit sagt aus wie lange das Handy im strohmschondenden Schlafmodus verbracht hat: idealerweise sollte die deep sleep Zeit vergleichbar mit der Gesamtzeit sein. 34 |

35 |

36 | Der Anteil von screen on zu awake sagt aus wie viel Zeit das Handy in Nutzung war und wie lange es in Summe wach war: idealerweise sollten diese Zeiten identisch sein. 37 |

38 |

39 | Tip: das 1x1 Widget zeigt diese Anteile grafisch und gibt so der ideale Einstieg

40 |

Prüfe die [Kernel wakelocks]

41 |

42 | Diese Liste zeigt welche Wakelocks vom Kernel verantwortet waren: ist ein Symbol rechts angezeigt so gibt es in der Knowledge-Base eine ausführliche Dokumentation dazu. 43 | Im ersten Schritt sind hohe Zeiten zu überprüfen (Minuten oder mehr). Wenn keine Ausreisser mehr vorhanden sind geht es mit den Wakelocks mit hoher Anzahl weiter. 44 |

45 | 46 |

Das PowerManagerService wakelock

47 |

48 | Auf viele Geräte wird PowerManagerService als Summe für alle Partial Wakelocks angezeigt. Ist also dieser an erster Stelle so geht es gleich bei den Partial Wakelocks weiter. 49 |

50 |

51 | Sollte PowerManagerService nicht an erster Stelle sein kann die online Knowledge-Base oder Google Search genutzt werden um mehr Infos zu erlangen. 52 |

53 |

Das multipdp / svnet-dormancy wakelock

54 |

55 | Dieses wakelock bedeutet eine hohe Datennetz-Nutzung. Ist also dieses an erster Stellen gehe zu dem Network Stats um herauszufinden welche App dies verursacht. 56 |

57 | 58 |

Prüfe die [Partial wakelocks]

59 |

60 | Die Liste der Wakelocks die durch Anwendungen direkt oder inderekt zu verantworten sind. 61 |

62 |

Das AlarmManager wakelock

63 |

64 | Hohe Zeiten oder Anzahlen bei AlarmManager ist ein Zeichen dafür, dass entweder das Handy sehr oft aufwachen musste oder, dass eine App häufig Alarm Einträge angelegt und/oder entfernt hat. Details dazu sind in der Ansicht [Alarms] zu finden. 65 |

66 |

Die Network Stats

67 |

68 | Hier findest Du welche apps / packages fü hohe Datenmengen verantwortlich sind. 69 |

70 | 71 |

Und nun?

72 |

Einige aber nicht alle Wakelocks können einer App direkt zugeordnet werden. In dem Fall ist das Vorgehen einfach: 73 |

Prüfen / Ändern der Einstellungen

74 |

Deinstallieren oder einfrieren

75 | 76 |

Ein Wakelock kann aber nicht immer einer App zuzuordnen. In den Fällen ist die Knowledge-Base und Google Search gute Informationsquellen.

77 |

Allgemeine Tips

78 |
    79 |
  • GPS sollte aus bleiben wenn nicht genutzt um zu vermeiden, dass andere Apps diesen teuern Location-Dienst nutzen
  • 80 |
  • Apps mit dem "zurück Button schliessen: somit wird sie aus dem Speicher entfernt
  • 81 |
  • Keine Task Killer nutzen: ungewü Apps sollte deinstalliert under eingefroren werden
  • 82 |
  • Keine Power Saver wie Juice Defender oder Green Power nutzen: eine App kann nicht richtig laufen wenn die Datenverbindung ihr entzogen wird und erzeugen somit Overhead
  • 83 |
  • Wifi sollte ausgeschaltet werden wenn nicht genutzt: Wifi ist u.a. in Verbindung mit Google Maps
  • 84 |
85 |

86 |

Geniessen

87 |

88 | Eine wichtige Regel bei Optimierung ist immer die Ergebnisse einer Aktion zu überprüfen: 89 |

    90 |
  • nicht zu viele Änderung auf einmal: nachdem ein Ausreisser beseitigt wurde ist oft das Gesamtbild ein komplett anderes
  • 91 |
  • Kernel, ROM oder modem während einer Optimierung ist kontraproduktiv, kann seiteneffekte einführen und die Interpretation einer Messung unmöglich machen
  • 92 |
  • Bedingungen beachten: unerklärbare Ergebnisse können auf veränderte Bedingungen zurückzuführen (Netzabdeckung, Cloud Dienste). Im Zweifel sollte die Messung wiederholt werden
  • 93 |
  • Nicht Verbeissen: Du willst Dein Handy geniessen und Optimieren sollte nur ein Mittel zum Zweck sein. Geniesse gute Ergebnisse und komme zu BBS zurück wenn sich die Acculaufzeit negativ verändert.
  • 94 |
95 |
96 |
97 | 104 |
105 |
106 | 107 | 108 | 109 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Index 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
24 | 25 |

BetterBatteryStatsIndex

26 |
27 | 28 |

This is the main navigation of the BetterBatteryStats Knowledge Base project.

29 | 30 |
31 | 38 |
39 |
40 | 41 | 42 | -------------------------------------------------------------------------------- /index_de.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Index 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
24 | 25 |

BetterBatteryStatsIndex

26 |
27 | 28 |

Dies is der Einstieg für das BetterBatteryStats Knowledge Base Projekt.

29 | 30 |
31 | 38 |
39 |
40 | 41 | 42 | -------------------------------------------------------------------------------- /js/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/asksven/BetterBatteryStats-Knowledge-Base/5e9bf3b9cb3276f50b81e79a8187e5c9e88c1838/js/.DS_Store -------------------------------------------------------------------------------- /js/css3-mediaqueries.js: -------------------------------------------------------------------------------- 1 | if(typeof Object.create!=="function"){ 2 | Object.create=function(o){ 3 | function F(){ 4 | }; 5 | F.prototype=o; 6 | return new F(); 7 | }; 8 | } 9 | var ua={toString:function(){ 10 | return navigator.userAgent; 11 | },test:function(s){ 12 | return this.toString().toLowerCase().indexOf(s.toLowerCase())>-1; 13 | }}; 14 | ua.version=(ua.toString().toLowerCase().match(/[\s\S]+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1]; 15 | ua.webkit=ua.test("webkit"); 16 | ua.gecko=ua.test("gecko")&&!ua.webkit; 17 | ua.opera=ua.test("opera"); 18 | ua.ie=ua.test("msie")&&!ua.opera; 19 | ua.ie6=ua.ie&&document.compatMode&&typeof document.documentElement.style.maxHeight==="undefined"; 20 | ua.ie7=ua.ie&&document.documentElement&&typeof document.documentElement.style.maxHeight!=="undefined"&&typeof XDomainRequest==="undefined"; 21 | ua.ie8=ua.ie&&typeof XDomainRequest!=="undefined"; 22 | var domReady=function(){ 23 | var _1=[]; 24 | var _2=function(){ 25 | if(!arguments.callee.done){ 26 | arguments.callee.done=true; 27 | for(var i=0;i<_1.length;i++){ 28 | _1[i](); 29 | } 30 | } 31 | }; 32 | if(document.addEventListener){ 33 | document.addEventListener("DOMContentLoaded",_2,false); 34 | } 35 | if(ua.ie){ 36 | (function(){ 37 | try{ 38 | document.documentElement.doScroll("left"); 39 | } 40 | catch(e){ 41 | setTimeout(arguments.callee,50); 42 | return; 43 | } 44 | _2(); 45 | })(); 46 | document.onreadystatechange=function(){ 47 | if(document.readyState==="complete"){ 48 | document.onreadystatechange=null; 49 | _2(); 50 | } 51 | }; 52 | } 53 | if(ua.webkit&&document.readyState){ 54 | (function(){ 55 | if(document.readyState!=="loading"){ 56 | _2(); 57 | }else{ 58 | setTimeout(arguments.callee,10); 59 | } 60 | })(); 61 | } 62 | window.onload=_2; 63 | return function(fn){ 64 | if(typeof fn==="function"){ 65 | _1[_1.length]=fn; 66 | } 67 | return fn; 68 | }; 69 | }(); 70 | var cssHelper=function(){ 71 | var _3={BLOCKS:/[^\s{][^{]*\{(?:[^{}]*\{[^{}]*\}[^{}]*|[^{}]*)*\}/g,BLOCKS_INSIDE:/[^\s{][^{]*\{[^{}]*\}/g,DECLARATIONS:/[a-zA-Z\-]+[^;]*:[^;]+;/g,RELATIVE_URLS:/url\(['"]?([^\/\)'"][^:\)'"]+)['"]?\)/g,REDUNDANT_COMPONENTS:/(?:\/\*([^*\\\\]|\*(?!\/))+\*\/|@import[^;]+;)/g,REDUNDANT_WHITESPACE:/\s*(,|:|;|\{|\})\s*/g,MORE_WHITESPACE:/\s{2,}/g,FINAL_SEMICOLONS:/;\}/g,NOT_WHITESPACE:/\S+/g}; 72 | var _4,_5=false; 73 | var _6=[]; 74 | var _7=function(fn){ 75 | if(typeof fn==="function"){ 76 | _6[_6.length]=fn; 77 | } 78 | }; 79 | var _8=function(){ 80 | for(var i=0;i<_6.length;i++){ 81 | _6[i](_4); 82 | } 83 | }; 84 | var _9={}; 85 | var _a=function(n,v){ 86 | if(_9[n]){ 87 | var _b=_9[n].listeners; 88 | if(_b){ 89 | for(var i=0;i<_b.length;i++){ 90 | _b[i](v); 91 | } 92 | } 93 | } 94 | }; 95 | var _c=function(_d,_e,_f){ 96 | if(ua.ie&&!window.XMLHttpRequest){ 97 | window.XMLHttpRequest=function(){ 98 | return new ActiveXObject("Microsoft.XMLHTTP"); 99 | }; 100 | } 101 | if(!XMLHttpRequest){ 102 | return ""; 103 | } 104 | var r=new XMLHttpRequest(); 105 | try{ 106 | r.open("get",_d,true); 107 | r.setRequestHeader("X_REQUESTED_WITH","XMLHttpRequest"); 108 | } 109 | catch(e){ 110 | _f(); 111 | return; 112 | } 113 | var _10=false; 114 | setTimeout(function(){ 115 | _10=true; 116 | },5000); 117 | document.documentElement.style.cursor="progress"; 118 | r.onreadystatechange=function(){ 119 | if(r.readyState===4&&!_10){ 120 | if(!r.status&&location.protocol==="file:"||(r.status>=200&&r.status<300)||r.status===304||navigator.userAgent.indexOf("Safari")>-1&&typeof r.status==="undefined"){ 121 | _e(r.responseText); 122 | }else{ 123 | _f(); 124 | } 125 | document.documentElement.style.cursor=""; 126 | r=null; 127 | } 128 | }; 129 | r.send(""); 130 | }; 131 | var _11=function(_12){ 132 | _12=_12.replace(_3.REDUNDANT_COMPONENTS,""); 133 | _12=_12.replace(_3.REDUNDANT_WHITESPACE,"$1"); 134 | _12=_12.replace(_3.MORE_WHITESPACE," "); 135 | _12=_12.replace(_3.FINAL_SEMICOLONS,"}"); 136 | return _12; 137 | }; 138 | var _13={mediaQueryList:function(s){ 139 | var o={}; 140 | var idx=s.indexOf("{"); 141 | var lt=s.substring(0,idx); 142 | s=s.substring(idx+1,s.length-1); 143 | var mqs=[],rs=[]; 144 | var qts=lt.toLowerCase().substring(7).split(","); 145 | for(var i=0;i-1&&_23.href&&_23.href.length!==0&&!_23.disabled){ 315 | _1f[_1f.length]=_23; 316 | } 317 | } 318 | if(_1f.length>0){ 319 | var c=0; 320 | var _24=function(){ 321 | c++; 322 | if(c===_1f.length){ 323 | _20(); 324 | } 325 | }; 326 | var _25=function(_26){ 327 | var _27=_26.href; 328 | _c(_27,function(_28){ 329 | _28=_11(_28).replace(_3.RELATIVE_URLS,"url("+_27.substring(0,_27.lastIndexOf("/"))+"/$1)"); 330 | _26.cssHelperText=_28; 331 | _24(); 332 | },_24); 333 | }; 334 | for(i=0;i<_1f.length;i++){ 335 | _25(_1f[i]); 336 | } 337 | }else{ 338 | _20(); 339 | } 340 | }; 341 | var _29={mediaQueryLists:"array",rules:"array",selectors:"object",declarations:"array",properties:"object"}; 342 | var _2a={mediaQueryLists:null,rules:null,selectors:null,declarations:null,properties:null}; 343 | var _2b=function(_2c,v){ 344 | if(_2a[_2c]!==null){ 345 | if(_29[_2c]==="array"){ 346 | return (_2a[_2c]=_2a[_2c].concat(v)); 347 | }else{ 348 | var c=_2a[_2c]; 349 | for(var n in v){ 350 | if(v.hasOwnProperty(n)){ 351 | if(!c[n]){ 352 | c[n]=v[n]; 353 | }else{ 354 | c[n]=c[n].concat(v[n]); 355 | } 356 | } 357 | } 358 | return c; 359 | } 360 | } 361 | }; 362 | var _2d=function(_2e){ 363 | _2a[_2e]=(_29[_2e]==="array")?[]:{}; 364 | for(var i=0;i<_4.length;i++){ 365 | _2b(_2e,_4[i].cssHelperParsed[_2e]); 366 | } 367 | return _2a[_2e]; 368 | }; 369 | domReady(function(){ 370 | var els=document.body.getElementsByTagName("*"); 371 | for(var i=0;i=_44)||(max&&_46<_44)||(!min&&!max&&_46===_44)); 554 | }else{ 555 | return false; 556 | } 557 | }else{ 558 | return _46>0; 559 | } 560 | }else{ 561 | if("device-height"===_41.substring(l-13,l)){ 562 | _47=screen.height; 563 | if(_42!==null){ 564 | if(_43==="length"){ 565 | return ((min&&_47>=_44)||(max&&_47<_44)||(!min&&!max&&_47===_44)); 566 | }else{ 567 | return false; 568 | } 569 | }else{ 570 | return _47>0; 571 | } 572 | }else{ 573 | if("width"===_41.substring(l-5,l)){ 574 | _46=document.documentElement.clientWidth||document.body.clientWidth; 575 | if(_42!==null){ 576 | if(_43==="length"){ 577 | return ((min&&_46>=_44)||(max&&_46<_44)||(!min&&!max&&_46===_44)); 578 | }else{ 579 | return false; 580 | } 581 | }else{ 582 | return _46>0; 583 | } 584 | }else{ 585 | if("height"===_41.substring(l-6,l)){ 586 | _47=document.documentElement.clientHeight||document.body.clientHeight; 587 | if(_42!==null){ 588 | if(_43==="length"){ 589 | return ((min&&_47>=_44)||(max&&_47<_44)||(!min&&!max&&_47===_44)); 590 | }else{ 591 | return false; 592 | } 593 | }else{ 594 | return _47>0; 595 | } 596 | }else{ 597 | if("device-aspect-ratio"===_41.substring(l-19,l)){ 598 | return _43==="aspect-ratio"&&screen.width*_44[1]===screen.height*_44[0]; 599 | }else{ 600 | if("color-index"===_41.substring(l-11,l)){ 601 | var _48=Math.pow(2,screen.colorDepth); 602 | if(_42!==null){ 603 | if(_43==="absolute"){ 604 | return ((min&&_48>=_44)||(max&&_48<_44)||(!min&&!max&&_48===_44)); 605 | }else{ 606 | return false; 607 | } 608 | }else{ 609 | return _48>0; 610 | } 611 | }else{ 612 | if("color"===_41.substring(l-5,l)){ 613 | var _49=screen.colorDepth; 614 | if(_42!==null){ 615 | if(_43==="absolute"){ 616 | return ((min&&_49>=_44)||(max&&_49<_44)||(!min&&!max&&_49===_44)); 617 | }else{ 618 | return false; 619 | } 620 | }else{ 621 | return _49>0; 622 | } 623 | }else{ 624 | if("resolution"===_41.substring(l-10,l)){ 625 | var res; 626 | if(_45==="dpcm"){ 627 | res=_3d("1cm"); 628 | }else{ 629 | res=_3d("1in"); 630 | } 631 | if(_42!==null){ 632 | if(_43==="resolution"){ 633 | return ((min&&res>=_44)||(max&&res<_44)||(!min&&!max&&res===_44)); 634 | }else{ 635 | return false; 636 | } 637 | }else{ 638 | return res>0; 639 | } 640 | }else{ 641 | return false; 642 | } 643 | } 644 | } 645 | } 646 | } 647 | } 648 | } 649 | } 650 | }; 651 | var _4a=function(mq){ 652 | var _4b=mq.getValid(); 653 | var _4c=mq.getExpressions(); 654 | var l=_4c.length; 655 | if(l>0){ 656 | for(var i=0;i0){ 675 | s[c++]=","; 676 | } 677 | s[c++]=n; 678 | } 679 | } 680 | if(s.length>0){ 681 | _39[_39.length]=cssHelper.addStyle("@media "+s.join("")+"{"+mql.getCssText()+"}",false); 682 | } 683 | }; 684 | var _4e=function(_4f){ 685 | for(var i=0;i<_4f.length;i++){ 686 | _4d(_4f[i]); 687 | } 688 | if(ua.ie){ 689 | document.documentElement.style.display="block"; 690 | setTimeout(function(){ 691 | document.documentElement.style.display=""; 692 | },0); 693 | setTimeout(function(){ 694 | cssHelper.broadcast("cssMediaQueriesTested"); 695 | },100); 696 | }else{ 697 | cssHelper.broadcast("cssMediaQueriesTested"); 698 | } 699 | }; 700 | var _50=function(){ 701 | for(var i=0;i<_39.length;i++){ 702 | cssHelper.removeStyle(_39[i]); 703 | } 704 | _39=[]; 705 | cssHelper.mediaQueryLists(_4e); 706 | }; 707 | var _51=0; 708 | var _52=function(){ 709 | var _53=cssHelper.getViewportWidth(); 710 | var _54=cssHelper.getViewportHeight(); 711 | if(ua.ie){ 712 | var el=document.createElement("div"); 713 | el.style.position="absolute"; 714 | el.style.top="-9999em"; 715 | el.style.overflow="scroll"; 716 | document.body.appendChild(el); 717 | _51=el.offsetWidth-el.clientWidth; 718 | document.body.removeChild(el); 719 | } 720 | var _55; 721 | var _56=function(){ 722 | var vpw=cssHelper.getViewportWidth(); 723 | var vph=cssHelper.getViewportHeight(); 724 | if(Math.abs(vpw-_53)>_51||Math.abs(vph-_54)>_51){ 725 | _53=vpw; 726 | _54=vph; 727 | clearTimeout(_55); 728 | _55=setTimeout(function(){ 729 | if(!_3a()){ 730 | _50(); 731 | }else{ 732 | cssHelper.broadcast("cssMediaQueriesTested"); 733 | } 734 | },500); 735 | } 736 | }; 737 | window.onresize=function(){ 738 | var x=window.onresize||function(){ 739 | }; 740 | return function(){ 741 | x(); 742 | _56(); 743 | }; 744 | }(); 745 | }; 746 | var _57=document.documentElement; 747 | _57.style.marginLeft="-32767px"; 748 | setTimeout(function(){ 749 | _57.style.marginTop=""; 750 | },20000); 751 | return function(){ 752 | if(!_3a()){ 753 | cssHelper.addListener("newStyleParsed",function(el){ 754 | _4e(el.cssHelperParsed.mediaQueryLists); 755 | }); 756 | cssHelper.addListener("cssMediaQueriesTested",function(){ 757 | if(ua.ie){ 758 | _57.style.width="1px"; 759 | } 760 | setTimeout(function(){ 761 | _57.style.width=""; 762 | _57.style.marginLeft=""; 763 | },0); 764 | cssHelper.removeListener("cssMediaQueriesTested",arguments.callee); 765 | }); 766 | _3c(); 767 | _50(); 768 | }else{ 769 | _57.style.marginLeft=""; 770 | } 771 | _52(); 772 | }; 773 | }()); 774 | try{ 775 | document.execCommand("BackgroundImageCache",false,true); 776 | } 777 | catch(e){ 778 | } 779 | 780 | -------------------------------------------------------------------------------- /kb_v1.0.json: -------------------------------------------------------------------------------- 1 | { 2 | 'title': 'BetterBatteryStats KB', 3 | 'version' : 1, 4 | 'entries' : 5 | [ 6 | { 7 | 'fqn' : 'AlarmManager', 8 | 'title' : 'Alarm Manager', 9 | 'url' : 'http://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/AlarmManager' 10 | },{ 11 | 'fqn' : '', 12 | 'title' : '*network-location*', 13 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/nework-location' 14 | },{ 15 | 'fqn' : '', 16 | 'title' : '*sync*', 17 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/sync' 18 | },{ 19 | 'fqn' : '', 20 | 'title' : '"PowerManagerService"', 21 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/PowerManagerService' 22 | },{ 23 | 'fqn' : '', 24 | 'title' : '"svnet"', 25 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/svnet' 26 | },{ 27 | 'fqn' : '', 28 | 'title' : '"svnet-dormancy"', 29 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/svnet-dormancy' 30 | },{ 31 | 'fqn' : '', 32 | 'title' : '"multipdp"', 33 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/svnet-dormancy' 34 | },{ 35 | 'fqn' : '', 36 | 'title' : '"vbus_present"', 37 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/vbus_present' 38 | },{ 39 | 'fqn' : '', 40 | 'title' : '"wlan_rx"', 41 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/wlan_rx' 42 | },{ 43 | 'fqn' : '', 44 | 'title' : '"wlan_wake"', 45 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/wlan_wake' 46 | },{ 47 | 'fqn' : '', 48 | 'title' : '"AudioOut_1"', 49 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/AudioOut_1' 50 | },{ 51 | 'fqn' : '', 52 | 'title' : '"ConnectivityService"', 53 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/ConnectivityService' 54 | },{ 55 | 'fqn' : '', 56 | 'title' : '"GTALK_ASYNC_CONN_com.google.android.gsf.gtalkservi-ce.AndroidEndpoint"', 57 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/GTALK_ASYNC_CONN_com.google.android.gsf.gtalkservi-ce.AndroidEndpoint' 58 | },{ 59 | 'fqn' : '', 60 | 'title' : '"network-location"', 61 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/nework-location' 62 | },{ 63 | 'fqn' : '', 64 | 'title' : '"SyncLoopWakeLock"', 65 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/SyncLoopWakeLock' 66 | },{ 67 | 'fqn' : '', 68 | 'title' : '"deleted_wake_locks"', 69 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/deleted_wake_locks' 70 | },{ 71 | 'fqn' : '', 72 | 'title' : '"suspend_backoff"', 73 | 'url' : 'https://github.com/asksven/BetterBatteryStats-Knowledge-Base/wiki/suspend_backoff' 74 | } 75 | ] 76 | } 77 | -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,form,label,table,caption,tbody,tfoot,thead,tr,th,td {margin: 0; padding: 0; border: 0; outline: 0; font-size: 100%; vertical-align: baseline; background: transparent; } 2 | body { line-height: 1; } 3 | ol, ul { list-style: none; } 4 | blockquote, q { quotes: none; } 5 | :focus { outline: 0; } 6 | ins { text-decoration: none; } 7 | del { text-decoration: line-through; } 8 | table { border-collapse: collapse; border-spacing: 0; } 9 | body { font-family: Arial; color: #e1e1e1; background: #101010; -webkit-text-size-adjust: none; } 10 | h1 { display: block; margin: 40px auto 0; text-indent: -999999px; } 11 | h2 { font-size: 14px; color:#656565; width: 200px; font-weight: normal; margin-bottom: 20px; padding: 30px 30px 5px; } 12 | h2 span { display: block; font-size: 20px; color: #fff; margin-top: 5px; } 13 | h2#post span { margin-top: 0; margin-bottom: 10px; } 14 | div#content h2 { display: inline; background-color: #000; font-size: 13px; color: #fff; margin: 0; padding: 0; font-weight: bold; } 15 | 16 | h3,h4,h5 { color: #fff; } 17 | 18 | /* content */ 19 | div#content { padding: 30px; font-size: 15px; color: #acacac; line-height: 140% } 20 | div#content p { margin: 20px 0; } 21 | div#content p:first-child { margin-top: 0; } 22 | div#content ul { list-style: disc; line-height: 160%; padding: 0 35px; } 23 | div#content ul li { margin: 15px 0 0; } 24 | div#content a { color: #fff; } 25 | 26 | /* Nav */ 27 | nav ul { overflow: hidden; width: 320px; margin: 0 auto; text-align: center; } 28 | nav ul li { display: inline-block; text-align: center; } 29 | nav ul li a { display: block; font-size: 15px; color: #888; text-decoration: none; text-align: center; padding: 18px 25px 16px; } 30 | -------------------------------------------------------------------------------- /wakelocks.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Index 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
24 | 25 |

BetterBatteryStatsWakelocks

26 |
27 |

Specific knowledge about partial wakelocks and kernel wakelocks is available inline in BetterBatteryStats. This information can also be accessed in the wiki

28 | 29 |
30 | 37 |
38 |
39 | 40 | 41 | -------------------------------------------------------------------------------- /wakelocks_de.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Index 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 |
24 | 25 |

BetterBatteryStatsWakelocks

26 |
27 |

Details zu Partial und Kernel Wakelocks ist in BetterBatteryStats verfügbar. Diese Infos gibt es auch im Wiki

28 | 29 |
30 | 37 |
38 |
39 | 40 | 41 | --------------------------------------------------------------------------------