Issue #91
openJ01TOB-7203【TOB UAT-系统设置】系统设置-连接界面,打开蓝牙开关延迟2s,对比WIFI开关延迟仅1s-(101实车)方瑞
Added by Junjie Tian 19 days ago. Updated 19 days ago.
0%
Description
【问题描述】*: 系统设置-连接界面,打开蓝牙开关延迟2s,对比WIFI开关延迟仅1s
【问题前提】:系统设置-连接界面,
【操作步骤】:打开蓝牙开关
【期望结果】:打开蓝牙开关时能实时响应
【实际结果】:打开蓝牙开关延迟2s,对比WIFI开关延迟仅1s
Files
JT Updated by Junjie Tian 19 days ago Actions #1
6/9foryou杜正进:
以第一次尝试打开蓝牙的日志进行分析
13:20:10.143测试老师尝试打开蓝牙
06-09 13:20:10.143 18378 18378 I CnsCarApp-BTViewModel: toggleBT, previous enabled: false
直到13:20:13.545的时候才收到蓝牙打开状态的广播
06-09 13:20:13.545 18378 18378 I CnsCarApp-BTViewModel: onBluetoothStateChanged, state: 11
06-09 13:20:13.812 18378 18378 I CnsCarApp-BTViewModel: onBluetoothStateChanged, state: 12
花费时间3秒多,请FW层优化。
JT Updated by Junjie Tian 19 days ago Actions #2
- File clipboard-202607071437-kehzq.png clipboard-202607071437-kehzq.png added
- File clipboard-202607071438-w14jh.png clipboard-202607071438-w14jh.png added
- File clipboard-202607071438-ii6gr.png clipboard-202607071438-ii6gr.png added
- File clipboard-202607071438-xvgjm.png clipboard-202607071438-xvgjm.png added
- File clipboard-202607071438-jb8hj.png clipboard-202607071438-jb8hj.png added
- File clipboard-202607071438-oavld.png clipboard-202607071438-oavld.png added
6/11ANW张旭:
根据 log,统计了6 次,总共耗时基本在 3s 左右。
有两个阶段,耗时较长,一个是 拉起 AdapterService 服务,时间从 几十毫秒,到 1s 多不等。需要系统看下,是否正常。
另一个阶段是协议栈执行开启的时间,比较稳定,都在1.6s,在1.6s 中,使能模组耗时300ms,加载固件耗时 900ms,该时间需要模组看下,是否有优化空间。
具体分析如下:






JT Updated by Junjie Tian 19 days ago Actions #3
- File clipboard-202607071438-gzvyw.png clipboard-202607071438-gzvyw.png added
- File clipboard-202607071438-tcqby.png clipboard-202607071438-tcqby.png added
6/11ANW张旭:
使能模组 和 加载固件,耗时如下:


JT Updated by Junjie Tian 19 days ago · Edited Actions #4
6/12ANW张旭:
测试时间 AdapterService拉起耗时 协议栈开启蓝牙耗时 总耗时
13:20:10.146 1.4s 1.6s 3.6s
13:20:15.981 270ms 1.6s 2.3s
13:20:20.453 1.5s 1.6s 3.5s
13:20:27.572 1.5s 1.56s 3.5s
13:21:36.514 30ms 1.6s 2.3s
13:20:46.895 350ms 1.6s 2.6s
JT Updated by Junjie Tian 19 days ago Actions #5
JT Updated by Junjie Tian 19 days ago Actions #6
6/15ForYou万锐:
耗时比较长的时候
06-09 13:20:10.146 900 1918 D BluetoothManagerService: enable(com.fawvw.hmi.bev.carapp): mBluetooth=null mBinding=false mState=OFF
bind service
06-09 13:20:11.588 24692 24692 D BluetoothAdapterService: onCreate()
拉起BluetoothAdapterService
初始化组件
→ 初始化组件、注册广播、加载JNI
06-09 13:20:11.768 24692 24692 D BluetoothAdapterService: onBind()
绑定服务耗时 1.6S
06-09 13:20:11.795 24692 24707 D BluetoothAdapterService: enable() - Enable called with quiet mode status = false
使能打开蓝牙
06-09 13:20:13.530 900 1293 D BluetoothManagerService: Sending State Change: OFF > TURNING_ON
这里完全打开蓝牙 3.4S
===========================
这次是比较快的时候
Line 293343: 06-09 13:21:36.514 900 1942 D BluetoothManagerService: enable(com.fawvw.hmi.bev.carapp): mBluetooth=null mBinding=false mState=OFF
bind service
Line 293386: 06-09 13:21:36.546 25923 25923 D BluetoothAdapterService: onCreate()
拉起BluetoothAdapterService
初始化组件
06-09 13:21:36.755 25923 25923 D BluetoothAdapterService: onBind()
绑定服务耗时 240ms
06-09 13:21:36.792 25923 25946 D BluetoothAdapterService: enable() - Enable called with quiet mode status = false
06-09 13:21:38.559 900 1293 D BluetoothManagerService: Sending State Change: OFF > TURNING_ON
这里完全打开蓝牙 2S
JT Updated by Junjie Tian 19 days ago Actions #7
6/15万锐:

我看在Bindservice耗时比较长的时间段,vechile 有频繁获取prop的打印
请夏工看下为何会调用这么频繁,最多的时候1ms内获取了 5次
JT Updated by Junjie Tian 19 days ago Actions #8
6/17吴轲翔:
这个问题已经很清楚了,在旧蓝牙进程退出过程中应用发起bind,需要有一个等待旧蓝牙完全退出的过程,这段时间非常耗时。
JT Updated by Junjie Tian 19 days ago Actions #9
6/18张旭:
如下截图,BLE 还未关闭,就发送了蓝牙关闭广播,导致上层开启蓝牙时,AdapterService 还未销毁结束。

JT Updated by Junjie Tian 19 days ago Actions #10
- File clipboard-202607071445-xptvk.png clipboard-202607071445-xptvk.png added
- File clipboard-202607071445-a05n2.png clipboard-202607071445-a05n2.png added
7/1张旭:
跟之前一样,蓝牙启动,有两个阶段耗时较大,一个AdapterService 启动,另一个是协议栈底层启动。除此之前,就是进程间信息交互和状态变化的耗时。
AdapterService 启动波动较大,最快时几十毫秒,慢的时候可能要八九百毫秒,需要系统看下,还能否优化。
协议栈底层启动,基本稳定在 1.6 ~ 1.7s,中间有 1.2s 跟模组使能和固件加载相关。目前已无优化空间。
除此之外,进程间信息交互和状态变化都属于原生Android 的逻辑,目前也没有优化空间。
AdapterService 拉起耗时相比之前增加了,请上层看下。 需要注意的是,AdapterService 都是在完全销毁后,才执行的绑定。


JT Updated by Junjie Tian 19 days ago Actions #11
7/5张旭:
Bluetooth.dm 找不到,可能由于系统更新以及文件索引滞后导致。

JT Updated by Junjie Tian 19 days ago Actions #12
7/7吴轲翔:
按心驰建议修改蓝牙进程为长驻进程。系统侧没有优化空间
