当前位置:首页 > 实用技巧 >

vivoy67分屏中怎么添加软件(vivoy67怎么设置分屏功能)

来源:原点资讯(www.yd166.com)时间:2023-10-29 00:11:54作者:YD166手机阅读>>

1 整体思路

闲鱼在业务的快速迭代过程中,app 的长列表滑动流畅度逐步恶化,对用户浏览内容体验产生伤害。闲鱼作为国内 flutter 应用的先驱,APP 以 flutter 和原生 Native 的混合工程存在。这里分别就 Android 原生、flutter 页面和大家分享我们的优化思路。

本文分为三个部分:

  1. 流畅度指标和检测工具构建

  2. 原生 Android 长列表优化

  3. flutter 长列表优化

流畅度优化整体思路图如下:

vivoy67分屏中怎么添加软件,vivoy67怎么设置分屏功能(1)

2 流畅度指标和检测工具构建

2.1 现状和难点

检测工具现状:以 Android 为例,现有流畅度工具可分为:

  • 侵入式

    • 集成 sdk,通过注册帧回调计算流畅度。Android 见 Choreographer 类

  • profile 模式

  • 无侵入式

    • 执行系统命令,如 adb shell dumpsys gfxinfo ${packageName}

    • 腾讯 GT APP,底层执行 service callSurfaceFlinger1013,高版本 Android 已不支持

流畅度指标现状有:

  • FPS (Frames Per Second)

  • SF(SkippedFrame,跳帧) app 在单位时间 1 秒内,跳过执行 Choreographer 中 doFrame 的次数

  • SM(Smooth,流畅度) app 在单位时间 1 秒内,实际执行 Choreographer 中 doFrame 的次数。其中 SM=60-SF。

  • 帧耗时数据 使用 adb 命令得到几个关键分位的帧平均耗时:


vivoy67分屏中怎么添加软件,vivoy67怎么设置分屏功能(2)

然而以上工具和指标定义在 app 的复杂场景下,尚存在问题

  • 多平台问题

    现 APP 技术有原生、h5、小程序、RN、weex、flutter 等。暂无一款无侵入的流畅度检测工具能同时支持多个平台、多种机型和多个指标数据,而侵入式的检测工具无法检测竞品 APP。

  • 指标选择和用户体验一致性

    我们期望能有少量的几个指标数据,准确的表达用户流畅度体感。平均 FPS(SM 和 SF 类似),不足以反映用户体验。如相同 30 FPS,可以是 1s 内 30 个 33.3 ms的画面,也可以是 29 个 16.6ms 的画面再加 1 个 516.9 ms 的画面,但用户体验并不相同。

  • 流畅度数据影响因素多

    滑动速度和滑动状态:idle(停止)、drag(手指拖拽)、fling(自由滑动)都是影响流畅度数据的重要因素。

2.2 流畅度指标制定

维基百科中动画定义:一种通过定时拍摄一系列多个静止的固态图像(帧)以一定频率连续变化、运动(播放)的速度(如每秒16张)而导致肉眼的视觉残象产生的错觉——而误以为图画或物体(画面)活动的作品及其影片技术。

列表滑动同理,是 APP 以一定频率(60hz下16.6ms)和不同 offset 计算出一系列静止画面,让肉眼看到滑动动画。

当我们说列表滑动不流畅,是因为频率过低无法让肉眼产生视觉残留,或在时间(画面停留时长)和空间(画面内容)产生跳变,让用户感知到变化的不自然。以此我们可以定义指标如下:

  • 时间角度

    • 定义平均 FPS:定义一次检测的平均帧率。反应画面平均停留时长。

    • 定义 1s 大卡顿次数:平均 1s 内出现占用 3 帧及以上的画面次数。反应画面停留时长跳变

  • 空间角度

    • offset 跳变值:在画面不掉帧的情况,若其中一个画面出现跳变,甚至花屏或者绿屏会让用户体验到不流畅。在 APP 滑动过程中,画面内容由 offset 决定,而 offset 跳变,和卡顿时长、差值器实现均有关联,现有差值器实现基本基于 D/T 曲线(距离/时间),为此平均 FPS 和 1s 大卡顿次数很大程度上体现了画面跳变,同时考虑到无侵入式检测 offset 的难度问题,暂不考虑 offset 跳变值。

综上,我们定义流畅度指标为平均 FPS 值和 1s 大卡顿次数。

2.3 流畅度检测工具实现

我们从 APP 录屏画面入手,计算流畅度指标值。当我们得到 APP 滑动过程中的录屏数据,可通过每 16.6ms 检测录屏画面是否发生变化,当连续画面未发生变化,则表示发生了卡顿。无变化的连续画面数则表示了卡顿的时长。

vivoy67分屏中怎么添加软件,vivoy67怎么设置分屏功能(3)

为得到目标 APP 录屏数据,检测工具 APP 向系统注册录屏服务,然后在检测工具 APP 的帧回调中不停读取录屏画面,并和上次检测画面 hash 值进行比对。

  • 检测工具 APP 和目标 APP 进程隔离,为此目标 APP 发生卡顿并不影响检测工具 APP 的帧回调

  • 为保证每次录屏画面读取和 hash 值计算在 16.6ms 内完成,需根据高低端机型调整画面宽高压缩比。

vivoy67分屏中怎么添加软件,vivoy67怎么设置分屏功能(4)

栏目热文

vivoy67强制分屏怎么开(vivoy67手机为什么不能分屏)

vivoy67强制分屏怎么开(vivoy67手机为什么不能分屏)

大家好,今天我们来了解一下vivo手机如何实现分屏操作。分屏功能可以让您在使用手机时同时操作两个屏幕,提高工作效率,同时...

2023-10-28 23:31:59查看全文 >>

苹果蓝牙耳机弹窗不了(苹果蓝牙耳机不出现弹窗)

苹果蓝牙耳机弹窗不了(苹果蓝牙耳机不出现弹窗)

扬子晚报网4月26日讯(记者 刘浏)购买正版蓝牙耳机,连接手机时往往会跳出该品牌标识的耳机弹窗。有不法分子借此打起了擦边...

2023-10-29 00:06:58查看全文 >>

苹果蓝牙耳机连接后没有提示音(苹果蓝牙耳机连接成功但没有声音)

苹果蓝牙耳机连接后没有提示音(苹果蓝牙耳机连接成功但没有声音)

关于AirPods 3的测评,这篇文章来得确实有些太晚,所以有些内容我们我们会简单略过,但SOOMAL的测评还是会带给大...

2023-10-28 23:37:20查看全文 >>

苹果蓝牙耳机怎么没有弹窗(我的苹果蓝牙耳机怎么没有弹窗)

苹果蓝牙耳机怎么没有弹窗(我的苹果蓝牙耳机怎么没有弹窗)

在世超看来,AirPods 应该是苹果近几年来口碑最好的产品之一了,各方面都比较均衡,如今也是很多 iPhone 用户购...

2023-10-28 23:35:37查看全文 >>

苹果连接蓝牙耳机的弹窗(苹果蓝牙耳机连接怎么不弹窗)

苹果连接蓝牙耳机的弹窗(苹果蓝牙耳机连接怎么不弹窗)

不知道各位有没有遇到过在地铁上好好玩着手机听着歌,手机却时不时收到他人AirPods弹窗的通知,关了又响实在让人讨厌。难...

2023-10-29 00:18:23查看全文 >>

vivoy67不支持分屏怎么办(vivo y67版本分屏怎么没开关)

vivoy67不支持分屏怎么办(vivo y67版本分屏怎么没开关)

预算一千多块,确实就目前手机市场来说有很多的选择,就综合表现来说,个人比较推荐vivo,拍照、音效以及颜值上都得到不少用...

2023-10-28 23:50:15查看全文 >>

西瓜视频怎么开通赞赏(西瓜视频哪里可以开通赞赏)

西瓜视频怎么开通赞赏(西瓜视频哪里可以开通赞赏)

赞赏收益全部归作者所有哟我昨天捣鼓了另一号好久,好好分析了西瓜君的关于视频赞赏功能的这段话,也研究了好久,还在电脑上登录...

2023-10-29 00:10:19查看全文 >>

视频赞赏功能怎样打开(怎么打开自己的视频赞赏功能)

视频赞赏功能怎样打开(怎么打开自己的视频赞赏功能)

粉丝破千后,我毫不犹豫的开通了图文赞赏、视频赞赏。虽然我知道开通这些没有什么太大的意义,但是我觉得是官方告诉我,我有这个...

2023-10-28 23:34:36查看全文 >>

视频赞赏功能一直是内测中怎么办(我的视频赞赏怎么没有开启功能)

视频赞赏功能一直是内测中怎么办(我的视频赞赏怎么没有开启功能)

你知道吗?抖音上也有流量扶持!今天呢我就给大家分享如何在抖音上获得,免费的流量扶持,步骤比较多担心记不住的朋友,点赞收藏...

2023-10-28 23:54:48查看全文 >>

抖音赞赏功能开通条件(抖音开通赞赏功能要求)

抖音赞赏功能开通条件(抖音开通赞赏功能要求)

视频赞赏赚收益,开通变现全流程。你发的视频是不是经常有人给你点赞,但是你却是从来没有收到过一分钱,那么为什么别人的就能赚...

2023-10-28 23:41:42查看全文 >>

文档排行