A BlackBerry smartphone developer has enormous control and flexibility when designing their applications or themes. The amount of control leveraged by the developer must be balanced by the awareness of the impact various features has on battery life. Below you will find a quick rundown of BlackBerry smartphone features and how their use will affect battery life.
Standalone GPS fixes takes the most amount of battery to acquire the first fix. It can take up to 5 minutes of scanning for satellites before the first standalone fix is obtained. Once a satellite lock is obtained, the subsequent fixes demand significantly small amount of battery.
The chip goes cold after 10 seconds of inactivity. That means the next fix will again be like a first fix! If your fix frequency requirement is close to 10 seconds, you should ask for fixes every 10 or less instead of every 11-60 seconds to keep the chip hot. It takes much less battery to get a fix when the GPS chip is hot.
Take advantage of RIM’s Geolocation service which has minimal impact on battery life with the tradeoff of accuracy.
Consider using assisted fixes such as MS-BASED and MS-Assisted on CDMA devices. These take relatively less battery than Standalone mode by leveraging carrier-side computations and result in better performance overall.
Some GSM carriers support assisted GPS modes as well, these should be used when available.
Do not try to obtain GPS fixes continuously when faced with repetitive failures. For example, if the user is indoors, chances of GPS fixes are very low unless you are using an assisted mode. You should apply some heuristics to determine if the user is indoors and not try to obtain a GPS fix in that scenario. The simplest thing to do is to increase your retry interval using an exponential function. First retry after 1 minute, then 2 minutes then 4 minutes and so on.
Resetting the location provider is expensive because it will trigger a rescan for satellites. Remember it can take up to 5 minutes to get the first fix in Standalone mode. If you are resetting the LocationProvider within 5 minutes you are essentially terminating a scan in progress and starting from scratch unnecessarily wasting battery. It is recommended that you do not reset the provider more than once in a five minute interval.
Reset only when required, i.e. if the LocationProvider is not getting you any valid fixes for 5 minutes or if you are changing GPS modes.
Push whenever possible. Pushing is vastly more efficient than polling. Whenever you see your application polling regularly for data you should seriously consider implementing the BlackBerry Push service.
Connection handshakes are heavy; it’s more efficient to send a lot of data with one connection than to spread it out over a longer period of time with multiple connections.
Use WiFi whenever available. BES and BIS connections go through WiFi automatically if WiFi connectivity is available.
Camera use will drain battery so it should only be enabled when needed.
Consider using a Bluetooth sever connection on the BlackBerry side instead of a client connection that keeps trying to connect to the peripheral until it becomes available.
The BlackBerry smartphone automatically manages its backlight functionality based on user interaction. The backlight will automatically turn off when the device has not been used in a specified period of time to conserve battery life. If you override this feature by resetting the security timer ensure that you only do so where required. For instance, you may want to keep the backlight on while playing a video or animation but it is not necessary to do so if the user decides to pause the video.
Heavy CPU usage can result in decreased battery life. Perform intensive tasks sparingly and offload to a server where possible and logical.
Vibration functionality adversely impact battery life if used excessively. Your application should not be designed in such a way that could cause the device to vibrate in a constant or near constant manner. Generally it should be used to notify the user who is not actively using the device or when the device is on a silent profile.
Streaming multimedia content is a useful and popular feature of many applications but it does result in high battery drain. If possible, design a cache feature for your application so you can download content when WiFi connectivity is available or when the device is charging.
Global events are received by a large number of applications and should be used carefully and conservatively to reduce excess CPU load.
Excessive object creation will trigger garbage collection more often which is very processor intensive. Frugal object management will lead to a better user experience and increased battery life.
Themes utilizing intensive and continuous animations can have a greater effect on battery life than the default themes.