现在的安卓旗舰,说实话卡是不卡了,但是偶尔总是顿一下,那种不流畅的感觉,现在这手机采用 4 个月,不能做成 UI 相应优先的吗
1
shoaly 2020-04-12 10:54:14 +08:00
我用得 mate20 pro , 是不是用我老婆的 iphonexr , 会觉得觉得 xr 卡.... 好几次了还差异, 上一个 iphone6 撑了那么久, 为啥这个 xr 就撑不住了呢
|
2
codehz 2020-04-12 11:51:42 +08:00 via Android 3
你以为优先级只是修改一下数值就可以解决问题
实际上界面涉及的东西有一大堆,意思是你要画一块区域可能还要等待别的数据准备好了才能开始画,不然就完全没法不知道怎么画,具体的例子就是各种同步操作,读取一个数值时线程被锁定了,然后动画就卡了,你优先级再高它也得卡(可能还卡的更厉害,因为别的线程得不到调度),解决问题的方法只有重写相关的逻辑,强行将 ui 和数据耦合,这是目前 chrome 浏览器的做法,但是这又会带来一个问题,内存是有限的,不可能说把所有不在当前页面上的元素的数据都准备好,通常的做法都要涉及 ui 和数据处理线程的交互,你得知道页面的哪部分是用户可见的,并且在区域变化时及时更新数据,于是这里必然会存在竞争,根本不是优先级能解决的问题 Win 上的 Edge 浏览器滚动非常流畅,代价是滑得快会白屏,出现一块一块的白块,原因也是类似 |
3
sxiaojian 2020-04-12 12:34:02 +08:00 via Android
动画不是要求多快,也不要求操作时数据要准备好,而是让界面跟着用户走
|
4
nicevar 2020-04-12 12:59:16 +08:00
这个问题以前讨论的帖子很多,原因很多,讨论到最后的结论就是天生的,就像 MacOS 的 UI 展现速度不如 Windows 一样,启动个应用 icon 在 dock 里面跳啊跳来掩饰
iOS 架构是触摸响应优先,安卓不是,一旦资源吃紧的时候,你触摸都不怎么响应了,给用户的直接反馈就是卡顿了,另外 iOS 的原生动画丰富,直接采用 GPU 加速,安卓很多 app 的动画都是开发者自己弄的,安卓要改成跟 iOS 一样肯定不现实,你要动整个系统架构,再说苹果比较封闭,对应的硬件就那么几款,安卓不一样了,各种胡里花哨的都有,不好限制。 |
5
jinsongzhao 2020-04-12 13:34:11 +08:00
这个想法,在 Android 里不可能了,你只能等只是技术发展,顺带提高了 UI 体验了。Android 底层是 Linux,靠 Java 顾及前台 UI 开发,这本身就是个妥协方式,当初就没为了客户体验去设计,以后也不会,因为玩开源 Linux 和 Java 的工程师们的风格都是自由派,各种花里胡哨的新鲜技术优先玩,最后才考虑客户体验,这是一种生态文化,潜移默化的影响了架构,没法改变了。其实 IOS 里的很多新东西,都是 Linux 世界验证不错了,才被拿去商业化的。
|
6
aptupdate 2020-04-12 14:09:02 +08:00 via iPhone
看过某个视频讲 Android 会出现偶尔顿一下是因为过渡动画导致的,大概意思 iOS 是线性的 Android 则是非线性,所以有人会说老旧的 iOS 设备是“缓慢”而不是“卡顿”。然后看打开 App 或者滑动等操作的慢放后感觉 iOS 是从开始到结束整个动画过渡的很自然,Android 是那种开始很自然但到中间或者结束就突然来那么一下或者动画突然停止了。然后 Google 在新版中也提到了线性的话题,希望能有所改善。
|
7
MaiKuraki 2020-04-12 21:00:59 +08:00
那是不可能的
|
8
yinzhili 2020-04-13 09:01:08 +08:00
iOS 手机在售的不到 10 款
安卓在售的手机至少有 500 款 优化工作很难做啊 |
9
sameram 2020-04-13 14:22:05 +08:00
安卓厂注意力都在吹爆摄像头上,没有精力搞系统吧。
|