Some newer phones have Bluetooth chipsets which support something you can think about as, hmm, “hardware acceleration” for detecting Bluetooth devices. iOS or Android tell it to listen for BLE devices that match certain patterns, and let the system know when it detects something that matches the pattern. This uses much less energy than the Bluetooth chipset reporting a full list of detected devices to the operating system every N seconds. I personally like to think about it as “passive scanning” vs “active scanning”.
This however is a very-low-level-implementation-detail, and you usually can’t control such thing directly from your mobile app in any way. Our Android SDK uses the “SCAN_MODE_LOW_POWER” setting for Beacon Monitoring, and we expect that on compatible devices, this will make use of the hardware acceleration if possible.
EDIT: oh, and while you can’t directly impact the hardware acceleration, your app naturally can modify what beacons you’re monitoring/ranging for whenever it pleases, just make appropriate calls to startRanging/stopRanging/startMonitoring/stopMonitoring.