What is the battery drain when using the SDK?

The battery drain for monitoring beacon zones and geofences is low compared to other functionalities like the display light, general operating system activity, network connectivity and other computing intense tasks.
Using Bluetooth Low Energy beacons should impact battery drain by less than 2%.
Using Geofences should impact battery drain by less than 1%.
The Beaconinside SDK used adaptive algorithms to optimize for best-in-class energy efficiency, accuracy and responsiveness.


In general scanning for Bluetooth Low Energy (BLE) beacons depends on the used BLE chip set and the frequency and length of scanning periods. Thus the exact battery drain can only be given as a rough guidance for a set of mobile devices.

The iBeacon APIs for iOS provide an energy-efficient way to detect nearby BLE beacons. It's hardware-supported and uses various optimizations on the chip level. Battery drain should be always less than 2% per charging interval.

Android L and upwards support BLE device scanning on the operating system level which is more efficient. Pre Android L each app has to develop its own beacon scanning algorithms that should adjust to the application scenario. The Beaconinside SDK always uses the best method available and no additional development effort is required.
Android smartphones are using different BLE chip sets with different parameters to scan for nearby BLE devices. This way some devices with slower scan periods are even more energy-efficient than iOS. Battery drain should be always less than 2% per charging interval.


The operating system (either Android or iOS) is in full control of monitoring geofences that are defined by a geo coordinate and a radius. System limits apply on the number of monitored geofences. On iOS it's approximately 30 on Android it's 100 geofences. To detect geofences primarily energy-efficient WiFi and cellular network localization is used. GPS with higher accuracy is used whenever other apps like navigation or weather apps request a more specific location at a similar time period. The Beaconinside SDK adjusts to these varying conditions and optimizes for highest accuracy and responsiveness. Battery drain should be always less than 1% per charging interval.

On Android the Google Play Services are used to set up geofences. These services are shown as a separate application within the battery monitoring within settings.


The easiest way to measure battery drain is to set up two identical devices (i.e. same hardware, same OS, same apps, ideally a newly setup device) and measure the time difference for charging intervals. One device should have location services and Bluetooth enabled, the other not.

In practice it's often easier to use it like a typical consumer and continuously monitor the battery usage. On iOS you'll find an overview per app under Settings -> General -> Usage -> Battery Usage, see screen below. The Beaconinside SDK typically impacts less than 1-2% of battery drain.

On Android battery usage can be checked under Settings -> Device -> Battery, see screen below. It's important to watch out for the Google Play Services that are a requirement for the Beaconinside SDK. The Play Services plus the app with the SDK should be influenced by less than 2%.

AisleLabs has a good summary on testing the maximum battery drain, iOS vs. Android.

What is the battery drain when using the SDK?