Android WLAN低延迟模式是 Android 10 引入的一种功能,允许对延迟敏感的应用将 Wi-Fi 配置为低延迟模式,以减少网络延迟,启动条件如下:
好多开发者提到,在一些设备,是不是需要开这个WLAN的低延迟模式,为此,我们做了测试,本文先从理论层面解读,再到代码层面测试比较实际的效果。
先说理论探究:我们都知道,WIFI_MODE_FULL_LOW_LATENCY
是一种 Wi-Fi 模式的常量表示。以下是对其含义的分析:
一、各部分含义
二、可能的应用场景
WIFI_MODE_FULL_LOW_LATENCY
模式可以减少网络延迟,提高游戏的流畅性和响应速度。三、实现方式
WIFI_MODE_FULL_LOW_LATENCY
模式,或者在特定的应用程序中进行网络优化设置。需要注意的是,具体的实现方式可能因设备和操作系统的不同而有所差异。在使用WIFI_MODE_FULL_LOW_LATENCY
模式时,可能会对设备的电池寿命、功耗和其他性能方面产生一定的影响。此外,不是所有的设备和网络环境都支持这种模式,因此在使用前需要确保设备和网络的兼容性。
为了验证Android平台WLAN低延迟模式,我们在大牛直播的RTSP|RTMP播放器模块,添加了如下的代码测试,下图展示的是我们Windows平台RTMP推流模块,采集屏幕数据,然后推RTMP到nginx服务,然后Android端从nginx获取RTMP流,同时播放4路的效果图(1920*1080分辨率),几无多大延迟,值得注意的是,实际上我们不开启这个选项,SDK也没多大延迟,所以是不是这块设置有效果,还要后面慢慢探究论证。
AndroidManifest.xml添加相关权限:
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
启动APP的时候,打开:
WifiManager wifiManager = (WifiManager) context_.getSystemService(Context.WIFI_SERVICE); //激活WIFI性能锁定
wifi_lock_ = wifiManager.createWifiLock(WifiManager.WIFI_MODE_FULL_HIGH_PERF, TAG);
wifi_lock_.acquire();
PowerManager powerManager = (PowerManager) context_.getSystemService(Context.POWER_SERVICE); //激活CPU性能锁定
wake_lock_ = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
wake_lock_.acquire();
APP停止播放或业务关闭的时候,调用release接口释放:
....
if (wake_lock_ != null) {
wake_lock_.release();
wake_lock_ = null;
}
if (wifi_lock_ != null) {
wifi_lock_.release();
wifi_lock_ = null;
}
Android WLAN低延迟模式为开发者提供了一种优化网络延迟的方式,但在使用时需要满足特定的条件,并且设备制造商也需要更新 WLAN 驱动程序和供应商 HAL 来支持该功能。特别是我们做音视频对延迟比较敏感的行业,可酌情参考。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。