android ble扫描功耗测试

1.背景

我们在平时通过Android 调用标准接口做ble扫描时会调用andriod 公开接口,也就是BluetoothLeScanner中的startScan方法,短时间的扫描大家可能都不太注意功耗的问题,但是如果时间扫描长的话,肯定需要注意功耗带来的影响,本篇文章主要就是给这种长时间扫描,不,短时间扫描也要注意的功耗问题

2.功耗测试

a. 不添加过滤条件直接扫描

直接调用如下:

  bleScanner!!.startScan(null, getScanSetting(ScanSettings.SCAN_MODE_LOW_LATENCY), mScanCallback)

查看cpu使用率:

adb shell top -m 40

在这里插入图片描述
可以看到扫描时蓝牙cpu使用率占用达到46%,是非常高的

b.测试添加蓝牙名称过滤

测试代码如下:

 val scanFilter = ScanFilter.Builder()
        .setDeviceName(BLE_NAME)
        .build()
 val list = ArrayList<ScanFilter>()
 list.add(scanFilter)
 bleScanner!!.startScan(list, getScanSetting(ScanSettings.SCAN_MODE_LOW_LATENCY), mScanCallback)

查看cpu使用率:
在这里插入图片描述
扫描瞬间蓝牙cpu占用率仅仅为1.3,
然后在看扫描稳定时的占用率:
在这里插入图片描述
此时占用率是非常低的。

3. 结论

大家在实际生产应用时,如果可以定义过滤的条件的场景下,扫描时一定要将ScanFilter 添加,这样能大大降低功率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值