Posted by Chris Donais
When it comes to deciding whether or not to add an SDK, one of the biggest push-backs we hear from developers is the impact adding it will have on battery life. Developers always need to weigh the positives and negatives of either creating functionality in-house from scratch, or using a pre-built SDK that may not be designed specifically for their use-case, and as a result can cause unwanted processing cycles and network noise.
Location services are often identified as the leading cause of battery drain. They sometimes get a bad-rap from either apps being poorly implemented or SDKs unintelligently spamming the operating system for updates. However, it’s important to note that location services do not have to be the battery-hungry monster that they are often purported to be. When intelligently implemented, location services can use very little power by utilizing all available data to reduce network calls and OS processing cycles. This is especially important because location is frequently used for monetization strategies and large-scale progressive mobile marketing initiatives to enhance user experiences or to perform accurate behavioral analyses.
At Skyhook, we pride ourselves on developing our SDKs to handle a wide-range of operating systems and devices. We know that every operating system works just a little bit differently and requires a unique approach to get the most out of the SDK. Further, every use case is different and needs a particular implementation that optimizes for low battery use.
Our Context and Location SDKs leverage our patented client-side technology to enable our location features while also optimizing for energy efficiency. Originally designed for our Precision Location SDK as a way to resolve millions of location requests daily with battery consciousness, this technology has been adapted to Context as well.
Skyhook utilizes a tiling system that maps the world into much smaller chunks. These tiles allows us to minimize network calls (a leading cause of battery drain) while maintaining all our location and geofencing capabilities.
With our long history in the location space, our SDK can intelligently monitor its proximity to points-of-interests and ramp up or down the amount of location samples it needs to either accurately locate a device or trigger a geofence.
We have also extensively measured the tradeoffs between compression and size of data transmission, optimizing for minimal power consumption on a whole range of devices and operating systems. This, again, will reduce the required network bandwidth, not only saving you power but also drastically reducing the amount of data sent over the network.
Combining all these techniques allows Skyhook’s Precision Location and Context SDKs to perform exceedingly well in numerous use cases, including devices that see heavy commuting, dense urban areas with many geofences, or just stationary detection. We have even gone as far as using third-party testers in real-world situations to ensure that our energy efficient location SDKs really perform.
When it comes to the battery conversation, it’s important to make sure that the SDK you choose to implement allows your users to continue to use their device all day long. Fear of battery drain shouldn’t be what holds you back from reaping the benefits of implementing the right SDK for your use cases. Intelligently using all the signals on the device and the surrounding environment allows our SDK to really shine in battery-conscious applications. At Skyhook, the power of location is available to you no matter what your battery constraints are.