由这篇文章引发的思考“技术控解释为什么Android没有iOS那么顺滑”

Vue3结合vue-office实现Word文档上传与预览全流程解析 本文详细解析了如何在Vue3项目中集成vue-office插件实现Word文档上传与预览功能。从项目初始化、插件安装到文件上传处理(包括ArrayBuffer转换)、预览优化及常见问题解决方案,提供了一套完整的实现流程,帮助开发者快速实现高效的文档预览功能。 阅读详情

CSDN首页今天有篇关于Android UI和iOS UI作对比的文章:《技术控解释为什么Android没有iOS那么顺滑》:http://mobile.csdn.net/a/20111207/308708.html

很有趣,可以读读,作者是一个曾经在谷歌呆过Google的软件工程师,他的观点认为由于Android的UI渲染线程优先级过低,造成了Android没有iOS那么顺滑,即使在四核处理器下,事实上,熟悉了不少GUI框架,包括Windows的,Java Swing的,大部分渲染线程是单线程,无法利用多线程处理器的优势,不知道Android的UI框架是不是个例外。

事实上,调整线程优先级是很轻松的一件事,Java Swing的GUI线程就是比普通的线程多一个优先级,我不认为Android的工程师调整这个线程优先级有多复杂。

用过iPhone的用户发现它的UI界面反应,特别是一些动画效果特别流畅,而Android UI不流畅的问题,可能有几个原因:

  1. 过多的计算在UI渲染线程,而没有进行很好的优化。比如说处理一个UI动画效果,例如两个界面动态的切换,可能需要生成两个图片,并对这两个图片进行处理,然后渲染,图片的生成就会耗费大量的时间,有的效果可能必须要生成图片对象,而生成这些图片有可能必须放在渲染线程执行,对生成图片对象的优化就变成了很重要的问题,必须耗费更少的时间达到更好的效果,有些图片最好做一些缓存。
  2. 不应该放在UI渲染线程的任务放在了渲染线程,事实上,上述文章提出的一些问题,比如下载和查收短信,类似这样的任务应该放在其他线程,而针对多线程的处理器,这些线程的任务不会影响UI渲染线程的反应。
  3. 主动绘制和被动绘制的问题没有处理好,大部分GUI框架是被动绘制,就是通过系统触发界面区域变脏的事件进行被动绘制,而视频游戏,动画效果基本上是主动绘制,通过一个线程循环对界面所有元素进行绘制;类似iPhone的界面效果可能是主动绘制和被动绘制相结合的效果,或者针对动画部分例程,进行了特别的处理,就是针对动画效果不能用被动绘制;针对GUI界面,主动绘制也没必要,JavaFX就是一个GUI主动绘制的例子,GUI的控件就是scene中的一个Node,动画效果很好,但GUI表现又太差;完全使用主动绘制要考虑CPU占用的问题。
事实上,在多核时代,GUI框架应该进行一些改变,UI渲染线程应该绘制一些内部状态准备好的控件对象,而把和界面无关的其他计算放在其他线程,而UI上边的动画效果则需要特别的处理来保证流畅,而UI反应过慢这些问题很容易通过一些性能分析工具查出来,个人使用NetBeans自带的分析工具也分析出来GUI程序的不少问题,比如以前的博客提到的类似一些方法非常慢的问题( GraphicsDevice.getDisplayModes()GraphicsEnvironment。getAllFonts(),PrinterJob.getPrinterJob()和PrinterJob.defaultPage()方法等)

相关的关于性能问题的几篇文章:

制障碍函数(Control Barrier Function,CBF) 一、定义 介绍制障碍函数 阅读详情

相关推荐

3、图像中文字信息提取技术全解析

本文全面解析了图像中文字信息提取(Text Information Extraction,TIE)的技术原理、挑战及应用领域。详细介绍了图像中三种主要文字形式:场景文字、字幕文字和文档文字的特点及提取难点。系统阐述了TIE技术的主要流程步骤,包括文字检测、定位、提取与增强、识别等关键阶段,并对主流技术方法进行了分类比较,包括基于连通组件、边缘、纹理等方法的优缺点分析。文章还介绍了多种其他提取技术,如二值化方法、混合方法、基于梯度的方法等,并提出了一种基于立体帧的新型场景文字提取方法,通过实验验证了该方法在召

ll5678的博客 101

谷歌工程师深度技术分析“为什么iosandroid流畅

转自http://www.soomal.com/bbs/10400005914.html 首先说明一下,这里面的解释并非我自己写的,而是我找到相关资料整理出来的,也算是为坛子做出点贡献,文末也分析了谷歌三个儿子和三星i9100,希望这篇文章能在技术层面上提供一个科学的评判androidios。如果能解决大家心中的困惑的话,不妨给小弟加几分,在此先谢谢大家了。我发这贴也没有贬低android

pandarick的专栏 1631

【四足机器人项目实战】四足机器人腿部机械结构设计

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对四足机器人–腿部机械结构设计做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 为了减轻腿部惯量,使用有限元分析着重进行轻量化设计,小腿采用工字梁方案,大腿采用内部镂方案,并使用1.5 mm的AL 6061硬质材料,轻量化的腿部设了腿部运动时摆动

qq_35635374的博客 7477

如何用 iPhone 直接操 Android 手机:Scrcpy-iOS 从零配置手记

先讲一个我自己的真实经历。某个周日的晚上,家里老人拿着一台 Android 手机来找我,说微信收不到消息、桌面图标乱糟糟的。可我当时手边只有一台 iPhone,既没有电脑也没有第二部手机。那一刻我特别想要一个东西:**能让我在 iPhone 上直接看到并操作这台 Android 屏幕的工具**——不用把手机拿过来,不用装奇怪的远程软件,最好还能跨网络。 后来我找到了 Scrcpy-iOS,一个把

gitblog_00322的博客 739

一次react滚动列表的实践---兼容ios安卓

一、背景 近期项目改版,对原有的h5页面进行了重新设计,数据呈现变成了瀑布流。希望新版兼容ios和安卓两端的情况下,无限制的刷新加载数据。大致效果如下: 整个页面分4部分: 顶部导航 步数状态卡片 用户信息卡片 滚动列表 期望效果:列表滚动到用户信息卡片消失后,展示另一个吸顶的导航栏。 效果如下: 分析可以发现,首先我们要做的就是适配iPhone X,其次我们需要监听列表的滚动高...

w1366352655的博客 179

关于 AndroidiOS 流畅度的一切

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34355715的博客 293

iOS 27 AI收费传闻下的开发者技术准备

随着AI能力从云端向端侧渗透,移动应用的技术架构正在发生深刻变化。从端侧模型推理到云端私有计算,AI功能不再是简单的系统内置能力,而是需要鉴权、分级和订阅管理的服务化产品。对于iOS开发者而言,理解AI服务化的原理,意味着要提前掌握App Intents、StoreKit 2和Core ML等关键技术,以便在系统AI入口、订阅状态判断和本地推理之间构建高效通路。这些技术不仅关乎功能实现,更直接影响应用在后续系统版本中的适配成本与用户体验。无论苹果最终是否对iOS 27的AI功能收费,构建一套支持端侧优先、按

weixin_26757925的博客 327

顺滑!优化android ListView拖拽移位

由于项目需求,要实现类似于ios上的listview的排序。之前在网络上搜索,发现了下面这篇文章,先感谢一下: http://blog.csdn.net/jj120522/article/details/8240407#comments。 后来看到魅拍上面也有类似的功能,但是性能要快好几倍,同时动画也非常的流畅,于是试着自己优化下。现在性能上基本OK,还有些细节的地方需要优化下,代码也

1万+

iphone如何分屏_iosAndroid哪个好?iphone和华为p30该如何选?

现在的手机系统主要分为苹果的ios系统和安卓手机的Android系统,哪个系统更适合现在的人们的使用习惯?哪个系统更有优越性?这是双方粉丝一直在争论的问题。与此同时,两个系统最具代表性的旗舰手机, iPhone X与华为P30又该怎么选?哪一款手机更加的适合购入?今天看看电竞游戏界达人,海涛,涛哥亲自的评测,作为游戏界的大佬,我认为涛哥的评价还是很中肯的,以为为其微博原文:​​这是一篇非常不专业的...

weixin_39890543的博客 437

鸿蒙OS,到底是个啥?这篇文章打消你的各种“疑虑”

华为发布了Harmony OS 2.0 Beta版,并开始向普通用户推送更新包。从6月2日晚间起,华为Mate系列、P40系列手机,MatePad平板,以及智慧屏S等机型,可以升级到Harmony OS。相当于,此前只针对开发者的测试系统,如今开放给大众用户进行“测试”。 按照规划,华为旗下的手机、平板、电视、车机、智能穿戴等设备,都可以搭载Harmony OS。作为一个跨平台的新生系统,Harmony OS被寄托了取代Android系统的重任。 其实,Harmony OS本身是一个IoT系统,它可以搭载

288

PojavLauncher iOS完整上手指南:三步让iPhone畅玩Minecraft Java

PojavLauncher 是一款基于 Boardwalk 开源项目的 Minecraft Java 版启动器,专门帮助 iPhone、iPad 用户突破系统限制,在移动设备上跑起完整的 Java 版游戏——从远古测试版到最新快照一网打尽。这篇文章会从装什么、怎么装,讲到如何配模组、榨性能、排故障,读完你就能亲手把 Java 版方块世界搬进手机。 [![PojavLauncher iOS的Min

gitblog_01037的博客 130

[文章]Android不流畅,究其本质

看了篇文章,挺有收获。转载过来。   Andorid更新了一个版本又一个版本,硬件从单核到双核到四核,系统流畅度总算基本能和iOS持平了。不过人们不禁会问,为什么都是基于Linux,两个系统会差别如此大?为什么iPhone 4用单核处理器就能实现的流畅度,Android要高端双核才能保证?近日,Android开发小组工程师Dianne Hackborn算是半官方回答了其中的一个缘由。Dian...

weixin_30538029的博客 140

PowerPaint-V1 Gradio快速上手:移动端浏览器适配与触操作优化

本文介绍了如何在星图GPU平台上自动化部署PowerPaint-V1 Gradio镜像,实现移动端友好的AI图像修复功能。通过该平台,用户可一键启动适配触的交互界面,快速完成水印去除、背景替换及课件内容修正等典型图像编辑任务,显著降低AI修图使用门槛。

weixin_30415591的博客 342

iOS 开发:用 Instruments 来检验你的app

编者注:或许很多人对 Instruments 应用不太了解,但可能很多老的 iOS 开发者都应该用过 Instruments 工具来检测iOS应用内存泄漏情况。特别是在iOS 5.0之前,即苹果在iOS平台上面还没支持ARC的时候,写iOS应用就类似C语言那样,容易忘记释放内存,而内存对移动设备而言是非常可贵的。 入门 为了节省大家的时间,提供一个演示的Demo给大家.代码传送门.

n7800的专栏 473

Qwen2.5-VL-7B-Instruct入门必看:Streamlit界面移动端适配与触操作优化

本文介绍了如何在星图GPU平台上自动化部署👁️Qwen2.5-VL-7B-Instruct镜像,实现移动端友好的多模态视觉交互。通过Streamlit界面深度优化,支持手机/平板触操作,典型应用于现场拍照提取文字并实时翻译,显著提升移动场景下的AI视觉任务效率。

weixin_35829279的博客 429

骚扰电话识别与拦截实战:Android来电筛选技术全解析

通信安全日益受到关注,骚扰电话与AI外呼的泛滥让传统黑名单拦截手段逐渐失效。识别骚扰电话的关键在于多维信号分析,包括号码信誉度、呼出行为特征以及通话内容识别等核心原理。在移动开发领域,Android平台提供了CallScreeningService这一系统级接口,使开发者能够在来电响铃前完成号码筛选与自动拦截。通过本地规则与云端号码信誉库的协同,可以有效构建动态防骚扰机制。这项技术不仅适用于普通用户的来电管理,也能帮助App集成智能拦截功能,提升通信体验。本文从号码识别的基本概念出发,解析骚扰电话的判定逻辑

weixin_34320159的博客 454

fir.im Weekly - 1000 个 Android 开源项目集合

冬天到了,适宜囤点代码暖暖身。本期 fir.im Weekly 收集了最近一些不错的 GitHub 源码、开发工具和技术实践教程类文章分享给大家。codeKK — 集合近 1000 Android 开源项目@Trinea说道: codeKK 集合了近 1000 Android 开源项目,支持搜索。功能已经比较完善,超过国内外同类网站,可以正式对外了。支持: 每小时自动同步最新的开源项目,最新项目

FIRim的专栏 759

PojavLauncher iOS使用指南:把Minecraft Java版完整装进你的iPhone

在App Store里下载的Minecraft手机版,装不了Forge、玩不到最新快照、存档也没法和电脑互通——玩久了总觉得缺了点什么。PojavLauncher iOS这款开源启动器,就是为了把原汁原味的Minecraft Java版搬上iPhone和iPad而生。它基于Boardwalk项目打造,几乎通吃从远古beta到最新快照的所有版本,模组、光影、自定义按键一个不缺。接下来的内容会带你从零

gitblog_00673的博客 131

Java中的Constants类

Constants类即常量类是将一些常用的变量集合到一个地方的类,常量应该定义在类中,而不是接口中(见Effective Java 2nd Edition, Item19),如果定义的常量是int类型的,可使用Enum类来代替(见Effective Java 2nd Edition, Item30),然而,有些常量类,比如String类型的常量类,可能不太适合使用Enum类来代替。 不像Enum

矢志不渝,追求完美 2万+

Notepad2-4.22.11r4478-64bit-Green

Notepad2 是一个相当优秀的轻量级文本编辑器,基于 Scintilla 开发,体积小巧、运行快速,与系统默认记事本具备相同资源消耗,但提供了大量实用功能,如代码高亮、编码转换、行号显示、多步 Ctrl+Z、增强的查找替换等等,是代替系统默认 Notepad 的极致选择。Notepad2 是一款开源软件,XhmikosR 又在Notepad2 基础上二次开发了更加实用强大的Notepad2-mod,额外提供代码折叠、书签、自动完成、支持更多代码格式高亮等功能,更加地好用了。1 自定义语法高亮,支持HTML, XML, CSS, JavaScript, VBScript, ASP,PHP, CSS, Perl/CGI,C/C++, C#, Java, VB, Pascal, 汇编, SQL, Python, NSIS,INI,REG, INF, BAT,DIFF等众多脚本文件。2 支持ANSI,Unicode,UTF-8等编码互换3 可以设置无限个书签(9种图标可换)轻松定位4 空格,制表符彩色显示,并可互相转换5 可以对任意的文本块进行操作,ALT键+鼠标……

ABB机器人视频教程57集+FANUC机器人视频教程84集 视频教程教学.zip

发那科FANUC机器人视频教程84集ABB机器人视频教程57集文件比较大,下载后是百度网盘下载链接去下载的,无需担心链接会失效,失效了里面也有联系方式可以找我重新发下载的

上一篇: Java类库中一些反模式的API
下一篇: 用户体验的挑战
zfqjava
博客等级 码龄19年 298粉丝 50原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值