Bug #114108

测试 Test-IT #110867: V1.0测试功能汇总

测试 Test-IT #110873: BSP-BVT测试-AUDIO

【AF】【EVT】【AUDIO】不断拖动副屏弹出的音量对话框, 音量事件处理缓慢, 导致音量对话框ui响应缓慢.

Added by CD TEST-方永红 over 2 years ago. Updated over 2 years ago.

Status:CLOSEDStart date:2022-11-23
Priority:HighDue date:
Assignee:CD TEST-方永红% Done:

100%

Category:CD-FW
Target version:MCE_V4.0update_20221215(原VC1_FSE_Vdec1219)
Need_Info:-- Found Version:FlatBuild_HH_VX1_MCE_FSE.M.D.user.01.00.X101.202211230319
Resolution:-- Degrated:--
Severity:Critical Verified Version:FlatBuild_HH_VX1_MCE_FSE.M.D.user.01.00.X101.202212100316
Reproducibility:Every time Fixed Version:
Test Type:IT Root cause:任务太多,导致设备处理不过来

Description

【前提条件】
1、设备已开机

复现步骤:
1. 主屏发送事件给副屏, 此时副屏弹出音量对话框.
2. 不断拖动音量对话框.

复现现象:
1. 副屏对话框响应缓慢.
2. 调整音量事件在后台不停地发送.

【复现率】
5/5

local.prop (194 Bytes) CD MM陈海波, 2022-11-23 14:48

History

#1 Updated by CD MM陈海波 over 2 years ago

问题背景:
调整副屏音量, 副屏会发送事件给主屏.
主屏和副屏在会有响应时间(android原生设计没有此问题).
如果响应时间特别短, 不会存在问题.
但响应时间如果特别长的情况下(尤其超时), 调整音量事件就会累积在对应线程中, 导致UI对话框得不到及时响应, 无法及时弹出对话框.

具体复现步骤:
1. 主屏发送音量事件给副屏, 此时副屏弹出音量对话框.
2. 不停地拖动弹出的音量对话框.
3. 音量对话框消失后, 主屏再次发送音量事件给副屏, 此时对话框不能及时弹出

具体的代码:

frameworks/base/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java
    private final class VolumeSeekBarChangeListener implements OnSeekBarChangeListener {
        ...
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
            ...
            final int userLevel = getImpliedLevel(seekBar, progress);
            if (mRow.ss.level != userLevel || mRow.ss.muted && userLevel > 0) {
                mRow.userAttempt = SystemClock.uptimeMillis();
                if (mRow.requestedLevel != userLevel) {
                    mController.setActiveStream(mRow.stream);
                    mController.setStreamVolume(mRow.stream, userLevel); //频繁调用setStreamVolume
                    ...
                }
            }
        }

因为添加有主副屏通讯的定制, 同时事件的发送与接收为同步流程,无法从audioservice侧将频繁调用的事件进行丢弃,
所以需要SystemUI对发送音量事件的频次作出调整, 以免频繁发出.
(补充: Setting中调整音量条没有此问题/下拉消息框, 调整音量条没有此问题. 原因为调用音量接口没有那么频繁)

测试环境准备:
执行下述命令, 开启主屏/副屏通讯功能的代码:
adb push local.prop /data
adb shell chmod 644 /data/local.prop
adb reboot;
设备重启后, 如果使用命令: adb shell getprop |grep -iE idcm
看到下边的信息, 说明功能开启:
[log.tag.IDCM]: [DEBUG]

#2 Updated by CD MM陈海波 over 2 years ago

  • Assignee changed from CD MM陈海波 to CD FW-王伟

#3 Updated by CD MM陈海波 over 2 years ago

#4 Updated by CD FW 曹覃刚 over 2 years ago

  • Category changed from AUDIO-FW to CD-FW
  • Status changed from New to ASSIGNED
  • Assignee changed from CD FW-王伟 to CD FW 曹覃刚

#5 Updated by CDTS_TEST 王成 over 2 years ago

  • Priority changed from Normal to High
  • Severity changed from Normal to Critical

#6 Updated by CD FW 曹覃刚 over 2 years ago

  • Assignee changed from CD FW 曹覃刚 to CD APP-王宏

#7 Updated by CDTS-TEST 周婷 over 2 years ago

  • Target version set to MCE_V4.0update_20221215(原VC1_FSE_Vdec1219)

#8 Updated by IoT scm over 2 years ago

Gerrit Merge Information
ID Project Branch Uploader
168675 general/platform/frameworks/base Pre_figure_turbox-c2130c-la1.1-qssi12-dev
AF:QuickSettings: Fix the slow response of the volume dialog ui
TC-RID: 1201-0201903
IssueID: TS-R-BUG-114108
Change-Id: I97aeffa091a33f4ba13ce27be30795d388fe4aae

#9 Updated by CD APP-王宏 over 2 years ago

  • Status changed from ASSIGNED to RESOLVED
  • Assignee changed from CD APP-王宏 to CD TEST-方永红
  • Root cause set to 任务太多,导致设备处理不过来

■ Current conclusion
查找到任务是通过Handler处理的
■ My analysis
由于Handler是根据添加的顺序一个一个处理的,但是拖动事件产生了太多的任务,来不及处理
■Submit URL
https://dev.thundercomm.com/gerrit/c/general/platform/frameworks/base/+/168675
Test Steps:
1. Modify the system property to [log.tag.IDCM]: [DEBUG]
2. Open the volume adjustment window on the right side of the screen
3. Keep dragging the adjustment progress of the secondary screen
4. After the volume tone disappears, use other mobile phones to remotely increase or decrease the volume

#10 Updated by CD TEST-方永红 over 2 years ago

  • Assignee changed from CD TEST-方永红 to CD MM陈海波

12.9
当前测试这边没有测试环境,麻烦研发同事帮忙验证

#11 Updated by CD MM陈海波 over 2 years ago

  • Assignee changed from CD MM陈海波 to CD TEST-方永红

Hi, 方红,

此问题12/10版本上验证, 测试pass.

验证步骤为:
1. 主屏发送音量事件给副屏, 此时副屏弹出音量对话框.
2. 不停地拖动弹出的音量对话框.
3. 音量对话框消失后, 主屏再次发送音量事件给副屏, 此时对话框不能及时弹出 <-修复后, 可以及时弹出对话框, pass

麻烦帮忙关闭此问题吧.

谢谢!

#12 Updated by CD TEST-方永红 over 2 years ago

  • Status changed from RESOLVED to VERIFIED
  • % Done changed from 0 to 100

#13 Updated by CD TEST-方永红 over 2 years ago

  • Status changed from VERIFIED to CLOSED

#14 Updated by CD TEST-方永红 over 2 years ago

  • Verified Version set to FlatBuild_HH_VX1_MCE_FSE.M.D.user.01.00.X101.202212100316

Also available in: Atom PDF