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

点击按钮背景变灰色,松开恢复原来色

demo有的页面有100多个列表项,需要点击列表项的时候背景变灰色,松开后背景恢复原来色,这个样式加上才让人清楚地看到是点击的哪一个按钮,视觉友好。...最初的时候我是想用js逻辑去修改样式,如果点击了,那么就改为灰色,松开后,再改为白色。结果demo有100多个列表项,我也不可能加上100多个监听,我突然想起以前学的事件代理,然后就实践了一把。.../li> 这是li22222 这是li33333 这是li44444 只要是li标签,移动端点击的时候就是改为灰色...如果ul上面有其他样式导致click-style无效的话,ul外包裹一层div,div绑定click-style的id选择器即可。...我微信x5、safari、chrome测试都可以,android和ios这么写都是没问题的。(不知道是不是视觉原因,我觉得ios比android反应更灵敏)

45210

浅谈App的启动优化

类比:这对应我们的应用程序,就是将一些原本主线程串行执行的耗时资源/数据加载,改为子线程中并发执行。这在几个耗时任务耗时差距不大的时候优化尤为明显。...Android12,Google强制增加了这个开屏页,就是为了让用户提前看到你的应用页面,让用户产生应用启动很流畅的假象,从而提高用户的启动体验。...可以选择支持随机读写、延时解析的数据存储结构以替代SharePreference。 启动过程中避免大量的序列化和反序列化。 3.3 线程优化 我们开发应用的过程中,都或多或少会使用到线程。...3.5.2 页面数据预加载 一般来说,我们喜欢每个页面内部才开始加载和显示数据,因为这样写可能容易让人看懂,利于以后的维护。...利用IdleHandler特性,消息队列空闲时,对延迟任务进行分批初始化。 3.7 GC 优化 启动过程中应当减少GC的次数。因为GC会暂停程序的执行,从而会带来延迟的代价。

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

五年Android开发,让我“刻骨铭心”的那些坑

不同进程间使用SharedPreferences操作数据会导致SF中的数据随机丢失的情况(获取到的值为空); 原因分析:虽然API中提供了Context.MODEMULTIPROCESS模式打开SF...方法第一个参数为需要依附的view),Activity没有完全显示时,PopupWindow无法依附在该View,如果在此时显示PopupWindow会导致上面的异常,同样退出Activity后也不能正常显示...Activity是依附在Window的,如果给Activity设置了背景,并且没有去掉window的背景,很容易导致过渡绘制;这里还有一个坑,有的应用为了避免程序冷启动时出现黑屏/白屏的问题,主题中给...window设置了背景,并且Activity的布局中给Activity也设置了背景,这会导致当前界面存在两个背景,占用了双倍的内存,并且还会有过渡绘制的问题。...解决方案:为了应用在使用过程中流畅,需要尽量减少触发GC操作,这涉及到性能优化,对于静态代码的分析,AS已经很强大了,可以使用Android Studio的Analyze→Inspect Code..

1.4K40

Native和H5分久必合,Weex会带来移动端的巨变吗?

用 Weex只需写一份代码,便可运行在Android、iOS以及H5中,并且 Android 和iOS以Native UI的形式呈现,为用户提供更好的用户体验。...• 2012年,H5和Native成长路径的拐点出现了。Facebook宣称:“Facebook 的应用完全依赖 HTML5 是最大的错误,导致浪费了两年宝贵的时间,将来要改为原生应用。”...Native开发的诸多亮点中,流畅体验和系统调用是最多被提及的,然而,实际是痛并快乐着。 • 流畅体验体现在页面滚动/动画的流畅性,背后是更好的内存管理和接近原生的性能。...以2016年双11主会场(可用淘宝扫描下图二维码观看对比视频)为例,H5的问题非常明显: • H5滚动过程中图片加载缓慢,滚动过程中系统阻止了JS执行,导致图片懒加载被延迟。...(5) 渲染引擎:从架构设计Android/iOS/H5渲染引擎是相互独立、地位平等的渲染端,这是保持三端一致的基础,当然协议实现层面需要更多的设计、质量保证。

1.8K00

微信终端跨平台组件 mars 系列 - 我们如约而至

背景 2012 年中,微信支持包括 Android、iOS、Symbian 三个平台。但在各个平台上,微信客户端没有任何统一的基础模块。...再如在网络切换时,为了平滑切换的过程,使用了 iOS 中网络的特性, iOS 中做了延迟处理等。 移动特性优化。...解决方案: WiFi 网络下强制把 MSS 改为1400(代码见 unix_socket.cc)。 做移动客户端避不开手机厂商。...但因为一直找不到一个愿意配合我们又满足条件的用户,导致这个问题很长一段时间内都没有任何进展,最终偶然一个机会,一台测试机器重现了该问题,tcpdump 发现在三步握手阶段,服务器带回的客户端带过去的...代码重构 首先,代码风格方面,因为最初我们使用文件名、函数名、变量名的规则是内部定义的规则,为了能让其他人读起来舒心,我们决定把代码风格改为谷歌风格,比如:变量名一律小写, 单词之间用下划线连接;左大括号不换行等等

71030

Fluid -11- 封面视频背景顺滑加载

Fluid -2- 随机视频背景切换 中记录了 Fluid 主题背景随机切换的实现方法,但存在加载视频覆盖原始图像背景的情况,本文记录顺滑加载解决方案 。...当前问题 当前问题为背景图像加载较快,视频稍慢 导致背景加载时会有先出现图像,再覆盖另一个视频的尴尬场景 解决思路 放弃图像加载 放弃图像加载是一种解决方案,这样就只会加载视频,没有图像的闪动 但手机端需要加载图像...,不能放弃图像背景 更重要的原因是图像加载快,用户可以更早地感受到网页加载 因此不能放弃加载图像 加载更小的视频第一帧图像 又需要图像,同时又让视频覆盖起来顺滑 于是就有了使用视频第一帧图像作为背景图像加载的思路...实现思路 实现思路为加载视频路径json时顺带加载相应的第一帧图像 动态替换原始背景的 style background 链接地址,实现顺滑加载 该方案不会影响手机端的原始背景图像正常加载 解决方案...实现动态背景视频加载 参考 Fluid -2- 随机视频背景切换 获取视频图像第一帧 获取视频第一帧:Python 从视频中提取图像 调整保存图像的质量:Python 图像保存质量设置 保存质量可以低一些

80020

微信终端跨平台组件 Mars 系列:我们如约而至

背景 2012 年中,微信支持包括 Android、iOS、Symbian 等三个平台。但在各个平台上,微信客户端没有任何统一的基础模块。...再如在网络切换时,为了平滑切换的过程,使用了 iOS 中网络的特性, iOS 中做了延迟处理等。 移动特性优化。...解决方案: WiFi 网络下强制把 MSS 改为1400(代码见 unix_socket.cc)。 做移动客户端避不开手机厂商。...但因为一直找不到一个愿意配合我们又满足条件的用户,导致这个问题很长一段时间内都没有任何进展,最终偶然一个机会,一台测试机器重现了该问题,tcpdump 发现在三步握手阶段,服务器带回的客户端带过去的...代码重构 首先,代码风格方面,因为最初我们使用文件名、函数名、变量名的规则是内部定义的规则,为了能让其他人读起来舒心,我们决定把代码风格改为谷歌风格,比如:变量名一律小写, 单词之间用下划线连接;左大括号不换行等等

3.8K40

微信终端跨平台组件Mars系列-我们如约而至

背景 2012 年中,微信支持包括 Android、iOS、Symbian 等三个平台。但在各个平台上,微信客户端没有任何统一的基础模块。...再如在网络切换时,为了平滑切换的过程,使用了 iOS 中网络的特性, iOS 中做了延迟处理等。 移动特性优化。...解决方案: WiFi 网络下强制把 MSS 改为1400(代码见 unix_socket.cc)。 做移动客户端避不开手机厂商。...但因为一直找不到一个愿意配合我们又满足条件的用户,导致这个问题很长一段时间内都没有任何进展,最终偶然一个机会,一台测试机器重现了该问题,tcpdump 发现在三步握手阶段,服务器带回的客户端带过去的...代码重构 首先,代码风格方面,因为最初我们使用文件名、函数名、变量名的规则是内部定义的规则,为了能让其他人读起来舒心,我们决定把代码风格改为谷歌风格,比如:变量名一律小写, 单词之间用下划线连接;左大括号不换行等等

88120

经典随机Crash之二:Android消息机制

作者:鲁可——腾讯SNG专项测试组 测试工程师 背景《经典随机Crash之一:线程安全》 问题的模型 好几次灰度top1、top2 Crash发生场景:很平常、频繁的使用页面,打开一个界面,马上返回...抱着这样的疑问,我去看了下Activity的源码(以Android5.0为准) 果真Activity中会有一个mHandler 看了下这个mHandler什么地方会被用到 只有runOnUiThread...错了,导致丢消息,篓子就捅大了。...效果 延迟消息分发SDK已加入NewMonkey随身版挑战者模式中,能做到无场景延迟Runnable类型消息的分发,功能上线短短1天内,就发现了Android QQ 4个Crash,都得到了开发同学的迅速...由于本人能力、精力有限,对Android消息机制远未啃透,若有纰漏,欢迎斧正,对其他平台的消息机制更是一窍不通,若对您有所启发,深感荣幸。 道高一尺魔高一丈,降Crash率,依旧任重而道远。

32820

低代码互动课堂有哪些应用场景

实时互动-教育版支持老师、助教、巡课、学生等多种课堂角色,具备TRTC互动、实时消息互动、课件文档演示、白板、实时录制、屏幕共享、教学组件(如答题器、奖杯、计时器、随机选人)等丰富功能,教学场景覆盖一对一私教课...提供云端录制、音视频连麦互动、全平台客户端(Android/iOS、Windows/MacOS、Web/H5、小程序插件)等功能。...提供云端录制、音视频连麦互动、全平台客户端(Android/iOS、Windows/MacOS、Web/H5、小程序插件)等功能。...支持所有延迟等级的直播需求,会议 + 直播深度融合。支持屏幕共享、白板、连麦、分组讨论等多种互动方式,提升培训效果。无需 App ,可通过 Web 网页创建或参与培训,随时随地,高效便捷。...支持高清低延直播和AI自动明暗矫正,绘画演示清晰。支持高清屏幕共享和摄像头接入,美术教育专业。支持TRTC互动,及时解答学生疑惑,提高教学效率。

12010

原生长列表内嵌 Flutter 卡片性能调研

主要调研的指标包括三方面: 原生长列表的滚动流畅度,是否存在一些 Flutter 相关的调用会长时间阻塞主线程,也就是 Flutter.platform 线程,导致掉帧; Flutter 卡片的空白延迟帧数...为了进行调研,我们编写了一个 Android Demo,Demo Android Native 端使用了 androidx 提供的 RecyclerView 实现长列表。...从 Demo Pixel 运行的情况来看,因为卡片比较简单,大部分情况下都是两帧空白。...如果仅仅只是两帧的空白,考虑到卡片本身只是一部分可见,设置卡片的 Flutter Widget 背景色跟原生 View 保持一致,或者干脆 Flutter Widget 不绘制背景,完全透明(需要使用...另外,因为 Flutter 的图片是异步加载和解码,所以图片如果太大,图片的绘制相比其它 Widget 可能会有明显的延迟

1.4K20

Android 内存优化总结&实践

GC时会导致线程暂停,导致卡顿,Google新版本的Android中优化了这个问题, ART中对GC过程做了优化揭秘 ART 细节 —— Garbage collection[5],据说内存分配的效率提高了...我们也来看看系统是怎么做的,对于类似xml里面直接通过android:background或者android:src设置的背景图片,以ImageView为例,最终会调用Resource.java里的loadDrawable...枚举,Android平台上枚举是比较争议的,较早的Android版本,使用枚举会导致包过大,个例子里面,使用枚举甚至比直接使用int包的size大了10多倍 stackoverflow也有很多的讨论...下面这个crash就是上面提到的LsitView的adapter里不停创建bitmap,这个地方是我们的首页banner位,理论App一打开就会缓存这张默认背景图片了,而实际使用过一段时间后,才因为为了解码这张背景图而...OOM, 改为用全局缓存解决。

1.9K71

微信小游戏直播 — Android跨进程渲染推流实践

背景 近期,微信小游戏支持了视频号一键开播,将微信升级到最新版本,打开腾讯系小游戏(如跳一跳、欢乐斗地主等),右上角菜单就可以看到发起直播的按钮一键成为游戏主播了: ?...我们的兼容性测试中,覆盖了Android 5.1及以后的各个主流系统版本和机型,除了Android 5.x机型出现了跨进程渲染黑屏的问题外,其余均可以正常渲染上屏和推流。...引入鉴权机制,连接成功后发送特定的随机信息来验证对方的真实性,然后才启动真正的数据传输 小结 为了兼容Android 10以下的机型也能直播,我们选择自己处理小游戏音频的采集,并通过对比评测,选用了...LocalSocket作为跨进程音频数据传输的方案,延迟满足了直播的需求。...SCHED_OTHER改为了命令缺省设置的SCHED_RR,而SCHED_RR是一种“实时策略”,导致线程的调度优先级变得非常高。

2.2K20

KRACK官网翻译「建议收藏」

数据包可以被解密是因为密钥重装攻击会导致传输的随机数(有时被称为数据包号或初始化向量)被重置为0。这样就导致以前已经使用过的加密密钥和随机数值再次被使用。...也就导致了WPA2所有的加密协议加密数据包时重用了密钥流。如果重用密钥流的消息具有已知内容,那就很容易导出所使用的密钥流,此密钥流就可以用相同的随机数来解密消息。...盯着那行代码的时候,我在想“嗯。如果该函数调用两次,会发生什么。”。当我(正确地)猜到调用它两次可能会重置与密钥相关联的随机数。而且由于消息3可以被接入点重传,实际它可能被调用两次。...这个位置只允许攻击者可以延迟,阻止或重放加密的数据包。所以攻击的这一点,他们还不能解密数据包。相反,延迟和阻止数据包的能力用于执行密钥重装攻击。执行密钥重装攻击后,数据包可以解密。...也就是说,密钥重装攻击实际可以自发发生,没有攻击者存在!举个例子如果握手的最后一个消息由于背景噪声而丢失,导致先前消息的重传。

4.5K30

Android 性能分析学习(启动速度优化)

image.png 造成APP卡顿的原因,大部分都是Application.onCreate()、Activity.onCrreate()中执行了耗时的操作,导致Window 的显示比较慢,给用户的感觉就是点击...此值代表从启动进程到屏幕完成对应 Activity 绘制所经过的时间。经过的时间包括以下事件序列: 1.启动进程。 2.初始化对象。 3.创建并初始化 Activity。...启动白屏问题 解决方案:自定义默认背景,替换掉系统默认掉白色背景 // 定义Splash主题 ...savedInstanceState) { super.onCreate(savedInstanceState); setTheme(R.style.AppTheme); } 这个解决方法只是视觉...因此我们应该对这些第三方库进行分类和优化: 可以延迟到用到的时候再初始化的 可以延迟到闪屏页的生命周期中再初始化的 可以使用异步线程进行初始化的 可以延迟,但是需要在Application中初始化 必须在

83210

分析了自家150个ML模型之后,这家全球最大的旅行网站得出了6条经验教训

别把这段引文解读为不值得机器学习投资。...Booking.com 构建模型时需要解决那些问题? 你大概听说过 Booking.com,「世界最大的在线旅行社」。...(如灵活度) 旅行者背景模型:同样语义层,预测旅程发生的背景(如家庭出行、与朋友出行、商务出行、……) 条目空间导览模型:追踪用户的浏览记录,使得推荐能整体考虑用户个人历史记录和整个目录。...一个介绍合成延迟的实验中,Booking.com 发现,如果延迟增加 30% 左右,转化率就会下降 0.5%。「对我们的经营来说,这是一个相关成本。」...Booking.com 采取多种方法降低模型引入的延迟,包括分发多个模型副本来达成横向扩展、自研定制版线性预测引擎、偏好参数少的模型、批量请求以及预计算和/或缓存。

54420

Android冷启动优化,一顿操作猛如虎

另外,如果初始化的任务会关系到UI的刷新,这时,Activity显示后再去执行,体验也可能会有所折损。...回顾冷启动流程图,冷启动结束时,刚好是UI渲染完,如果我们能确保UI渲染完再去执行任务,这样,既能提升冷启动数据,又能解决UI的问题。...第一张点击完桌面Icon后并没有马上拉起应用,而是停顿了下,给人感觉是手机卡顿了; 第二张点击完桌面Icon后立即出现白屏,然后隔了一段时间后才出现背景图,体验很明显觉得是应用卡了。...那是什么导致它们的差异?...以前做服务端时,前端(当时几百万DAU)有一个哥们直接写死早上9点请求某个接口,导致接口直接报警了,如果他把9点改为10点,结果肯定一样,后面改成了区段性随机请求,这样就把峰值磨平了。

1.3K31
领券