首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

RecyclerView滑动时怎么办

我遇到的第一个问题就是滑动时候,无法忍受,于是就在网上找了很多文章,看了很多代码,在这里就给大家总结一下这两天我觉得对这个问题处理有效的解决方式。...Item离开这个页面的时候调用) onViewRecycled(当Item被回收的时候调用) 2.复杂布局 好多文章都说过这个办法,的确是有效,但是这个效果也就因人而异吧,我的只能说是缓解了一点点的卡,...但是,即使这样做了,还是会出现,。 1.尽量减少布局嵌套,层级越深,每次测量时间久越久。 2. 如果布局很复杂,可以考虑自定义布局能不能实现。 3.尽量减少过度绘制区域。...我们对于滚动过程中,的判断可以打开手机开发者选项中的:GPU呈现模式分析->在屏幕上显示为条形图。就可以非常直观的看到滑动过程中有没有顿了。...样式也很多,那就需要考虑滚动的时候不做复杂布局及图片的加载,尽量减少滚动过程中的耗时操作,这样滚动停止的时候再加载可见区域的布局,因为这个时候是停止状态,即使略微耗时一些用户的感知也是比较小的,就会给人一种不的假象

3.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    腾讯文档表格指标探索之路

    腾讯文档这样的大型前端应用,面临的卡问题比常规前端页面要频繁得多。但本身难以监测,即使检测到的发生,也常常难以快速定位,更别提说想要了解大盘的用户真实体验。...本文记录了腾讯文档在线表格的卡体系搭建过程,包括检测、定位、指标、大盘数据搭建等内容。...我们大盘数据的搭建,同时使用了前面介绍的技术侧指标和用户侧指标。为什么要有两种指标呢?...后判断)相关的卡埋点已经被清除了,无法获取产生的位置基于两种指标,我们分别可以建立不同角度的卡大盘数据:技术侧数据:结合埋点方案,我们可以搭建基于不同模块维度的卡情况,优先解决较多的问题...用户侧数据:该指标可以用于监控大盘用户的真实率。1. 各模块指标看板由于具体的模块位置依赖于埋点数据,因此该看板主要数据来源于技术侧指标。

    22740

    优化

    AndroidPerformanceMonitor implementation 'com.github.markzhai:blockcanary-android:1.5.0' AndroidPerformanceMonitor 是一个检测的开源库...而其使用与LeakCanary也比较相似,可以自主设置检测时间,检测到的卡同样是以Notification展示,在使用体验上也相当类似,与LeakCanary可以说是孪生兄弟。...提示框(Room表现不一,有些手机厂商会把提示框给去掉) ANR 解决方式 adb pull data/anr/traces.txt存储路径,然后分析CPU、IO及锁 ANR 测试 //给主线程造成...检测组件 https://github.com/SalomonBrys/ANR-WatchDog 使用:new ANRWatchDog().start(); 原理 ANR-WatchDog同样是一个检测的检测库...AndroidPerformanceMonitor与 ANR-WatchDog 区别 AndroidPerformanceMonitor:监控Msg ANR-WatchDog:看最终结果 前者适合监控

    1.7K30

    Android优化 | 单点问题监测方案

    ARTHook实战 小结 项目GitHub 背景介绍 前面提到过两种自动化自动化检测方案: AndroidPerformanceMonitor和ANR-WatchDog; 需要本方案的原因:自动化检测方案无法满足所有场景...; 如,有很多Message要执行, 但是所有Message的时间, 都没有达到自动化检测方案所配置的卡的判定阈值, 那这种情况,自动化检测方案对这些“较小型”的卡问题便无能为力了;...可是这些没有达到的判定阈值的“较小型”的卡问题, 却会一直影响用户体验,这显然是不行的!!...需要建立体系化的卡解决方案, 便要尽早地尽可能多地暴露问题,补充已有方案的不足; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 需要关注的单点问题...View绘制等; 下面以主线程IPC为例, 因为IPC其实是一个很耗时的操作, 但实际开发时很多时候都没有得到足够的重视, 偶尔还会在主线程进行IPC操作,以及频繁的调用, 而这种耗时其实很少达到的阈值

    2.4K20

    计算机win7如何解决方法,win7电脑出现怎么办_win7电脑严重解决方法…

    win7系统也是一款比较经典的系统,不管怎么样我们电脑使用久了,都会出现的问题,有时候打开一个文件,程序反应非常慢。那么win7电脑出现我们要怎么办呢?...接下来小编就跟大家分享一下win7电脑严重解决方法。 win7电脑严重解决方法: 方法一: 1、首先鼠标右键点击“计算机”,选择“属性”。 2、在属性页面,点击“高级系统设置”。...以上就是win7电脑严重解决的三种方法,还有不会的小伙伴们可以根据以上的步骤来操作哦,希望对您有帮助哦。 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    22K30

    监测APP

    这就是界面的原因。...所以,造成的原因分为CPU和GPU,CPU可以用CADisplayLink来检测,UI更新可以用Runloop的mode来检测 监测:开一个子线程,利用displaylink或者...Runloop来监测; 收集堆栈:将顿时的堆栈收集起来; 上传记录:将上传到后台或自定义; 这里我引用一张微信开发团队的监测流程图: 二、Runloop检测 首先我们来看一个...所以通过比较dispalylink的更新时间就可以知道是否存在 - (void)updateTime{ if (!...2、上传位置,一种是自己建立后台来统计这些,嫌麻烦的话是利用第三方平台、如友盟(统计崩溃比较多)、听云、OneApm、博睿,都大同小异。

    1.3K10

    Android分析

    一、原因 屏幕1秒60帧,平均每帧16.6毫秒,如果代码实现不佳,或者过于复杂,导致一帧绘制时间大于16.6毫秒,则无法完成绘制,造成丢帧,连续出现掉帧,在现象上表现为。...默认情况下,性能分析器只会将帧显示为有待调查的候选对象。在每个帧中,红色部分突出显示了相应帧超出其渲染截止时间的时长。...image.png 发现帧后,点击该帧;可根据需要按 M 键调整缩放程度以聚焦到所选帧。...若要调查导致的确切细节,您可以查看 Threads 部分,其中会显示与界面呈现有关的线程。...这些线程与界面呈现有关,可能是导致的原因。 如需在 Android 10 或更低版本上检测情况,请执行以下操作: 查看 Display 中的 Frames 轨迹。

    2.5K20

    iOS优化

    按照60FPS的帧率,每隔16ms就会有一次VSync信号,1秒是1000ms,1000/60 = 16 的原因: iOS默认刷新频率是60HZ,所以GPU渲染只要达到60fps就不会产生。...RunLoop监听 原理:是在主线程进行了耗时的操作,可以添加Observer到主线程的Runloop中,通过Runloop状态切换的耗时,达到监控的目的。...监控起一个子线程定时检查主线程的状态,当主线程的状态运行超过一定的阈值,则认为主线程,从而标记为一个。...分析实现: 使用Runloop进行监控,定义一个阈值判断的出现,记录下来上报到服务器。...子线程Ping 根据发生时,主线程无响应的原理,创建子线程去循环ping主线程,ping之前先设置标志为True,再派发到主线程执行后设置标志为false,子线程在设置阈值时间内休眠结束后,根据标志判断主线程有无响应

    3.5K11

    Android监控系统

    实际可能是这段时间内某个函数的耗时过大导致,而不一定是T2时刻的问题,如此捕获的卡信息就无法如实反应的现场。 我们看看在这之前微信iOS主线程监控系统是如何实现的捕获堆栈。...堆栈上报到平台后,需要对上报的文件进行分析,提取和聚类过程,最终展示到平台。前面我们提到,每一次发生时,会高频采样到多个堆栈信息描述着这一个。...做个最小的估算,每天上报收集2000个用户文件,每个文件dump下了用户遇到的10个,每个高频收集到30个堆栈,这就已经产生2000*10*30=60W个堆栈。...,按照上报重复的次数降序列出; 2、归类后展示每个的关键耗时代码,也可查看全部堆栈内容; 3、支持操作记录,如搜索,提tapd单,标注已解决等; 4、展示每个版本的卡问题修复数据情况,...目前monitor监控库主要有监控主线程情况,获取平均帧率使用情况,高频采样和获取信息等基本功能。

    7.6K52

    Android BlockCanary检测

    前言 在日常业务测试中经常会发现页面跳转、滑动等等问题,但是往往发生了问题也没有什么具体信息提供给开发同学排查问题,所以也就不了了之了。...Blockcanary介绍 介绍 Blockcanary是@markzhai开发的检测app主线程工具,不需要在代码中插桩和debug代码就能检测出。...log日志 根据上面的配置代码并打包app,进行手工测试如果主线程超过1000ms,会在手机sdcard/BlockTest目录下生成日志。...文件包含几点: 发生时间 版本 imei cpu型号 内存 堆栈 上报log日志 之前方式的卡日志需要连接该设备把log手动导出来分析,或者在弹框中展示,这样并不能做到日志持久化和做后期的数据分析...项目 我们模拟一个Demo项目来模,点击block按钮后sleep2秒来模拟日志:

    1.4K30

    Matrix TraceCanary -- 初恋·

    什么是 什么是,很多人能马上联系到的是帧率 FPS (每秒显示帧数)。那么多低的 FPS 才是呢?又或者低 FPS 真的就是吗?...一个稳定在 30FPS 的动画,我们不会认为是的,但一旦 FPS 很不稳定,人眼往往容易感知到。 FPS 低并不意味着发生,而发生 FPS 一定不高。...不可重现的卡 但往往大部分是很难及时发现的,不可重现的卡,经常出现在线上用户的真实使用过程中,这种往往跟机器性能,手机环境,甚至是操作偏好等因素息息相关。...一般也是从用户反馈中得到,通常表述为“新版本变了”,“朋友圈很卡”,“聊天经常无响应”,我们很难在这种描述中,直接洞察到的根源,甚至有些连的场景都不知道,很难准确重现,所以这种容易让人摸不着头脑...在这样不断发现,解决的过程中,希望尽可能地优化微信Android客户端的流畅性,给用户带来更好的体验。

    4.2K41
    领券