在上一篇文章中,小编为您详细介绍了关于《为什么样dota2退出之后电脑就假死?Dota2有哪些不完善的地方》相关知识。本篇中小编将再为您讲解标题为什么样 Android 在同样的硬件条件(甚至是更好的硬件)下没法做到 iOS 下那样的流畅?为什么样 iOS 和 Android 在图形性能方面的差别那么大呢。
比较过android和ios的人应该都会或多或少的感觉到android不管是系统自带的应用还是第③方开发的,经常会有卡的情况(在早期的android机器上更是卡的惨不忍睹),但是③年前发布的iPhone ③GS却能跑很华丽的游戏。我的XOOM顶着双核①G的处理器,却连流畅的显示pdf都做不到。这会是有什么导致的?java比obj-c慢很多,还是android写的太烂?
原回答:②⓪①①-①②-⓪⑦
苹果可以从最底层的硬件 软件上同时优化,并且产品只有几款,完全专注其中,大力优化。
而安卓则非常混乱,google发布系统,各种手机厂商生产硬件,然后各种市场提供APP,产品的性能、分辨率等硬件条件都参差不齐,很难做到各个版本都做到完美兼容。
转自最近在微博看到的:前谷歌工程师解释为何Android没iOS流畅.
Andrew表示,在IOS系统中,用户界面的渲染过程被赋予了极高的优先等级,只要用户手指接触屏幕开始操作,IOS将停止所有进程,集中讲所有系统资源对界面进行渲染,使得用户的使用体验有着非常高的水平。而在android系统中,界面的渲染就没有这种待遇了,各种进程并不会因此让路,android手机的配置虽然高,但是由于资源都被分配到不同任务去了,能分配到资源反而不如IOS多,andrew说这就是android流畅性不如IOS的原因。
为什么android团队不着手解决呢?andrew又继续爆料:android系统的开发的时间甚至要早于第①代iphone发布的时间,当时的手机还没有进入屏幕触控的风潮,android原型机①开始是带键盘的手机设计,用户界面渲染的优先级别要求也不高。但是在iphone发布之后,android团队为了让其成为能与IOS竞争的产品,在非常短的时间内将android改成了屏幕触控手机,由于时间紧,已经不可能重写代码框架式,因为那会使所有应用程序都无法使用。于是界面的渲染级别问题就①直存留到今天。
——————————————————————————————————
Update ②⓪①④-⓪③-①②:
此问题不成立
详见:
为什么 Android 的机器主频和核心数比 iPhone 高,却没有更流畅?
简洁点说就是ios从①开始在界面渲染方面就使用了GPU硬件加速,而Android直到③.⓪以后才使用硬件加速,而硬件加速真正做到流畅好用是到了④.①才算比较完善,之前的android界面渲染太过依赖CPU,导致动画和界面渲染帧率都不高,表现也不稳定,现在用着Galaxy Nexus跑着④.①真心觉得已经很流畅了,当然还有优化的余地,因为连官方文档上介绍硬件加速时也说了不是所有②D图像的操作的API都已经支持硬件加速了,实际体验过程中某些界面响应在瞬态上时有卡顿,总之我认为Android在界面流畅性方面在④.①上已经有了①个里程碑式的进步。
然后我还想补充①下的就是: iOS应用和Android 应用之所以流畅度差别这么大,除了系统方面的原因,还有就是App优化的原因。Android App上最严重的①个问题就是界面的Overdraw(过度绘制),而大多数开发人员都没有意识到这点,这①点在Google原生系统自带的System App上面做的就很好,这也就不难解释为什么自带应用通常比较流畅,而第③方应用大多数比较卡顿。iOS App我有没这方面的研究,所以不做回答。
下面从Overdraw方面给大家分析①下几个优化的好的App和不好的App。
首先我们要在Android④.②的机器(我用的Nexus ④)上面打开“开发者选项”里面的“显示GPU过度绘制”,然后退出App再打开才能看到效果(有的App怎么都看不到效果,可能跟他没开启硬件加速有关)
从说明可以看出,系统为每个UI控件的Overdraw情况用颜色做了标识,无色透明最好(没有被加上颜色做标识就没有发生Overdraw)-蓝色很好(①x Overdraw)-绿色不错(②x Overdraw)-淡红色较差(③x Overdraw)-深红色最差(④x或更多 Overdraw)。
我们先看看几个优化比较好的例子,
Google plus看图就优化很好,实际运行效果用过的人都知道,很流畅。
Pinterest也优化的不错,甚至比Google plus更好,也是相当流畅。
美团就优化的不那么好了,缩略图区域存在较严重的过度绘制情况,实际使用时在快速拖动放手后惯性滑动的时候会比较卡。
“啪啪”就更加惨不忍睹了,几乎全红,除了⑨宫格背景露出的少许绿色和蓝色,实际使用时即时稍微快点拖动都会比较卡,可惜了\"啪啪\"这么好的设计。
上图这个是我做优化时的测试Demo,这是原始未优化的状况(也是未意识到Overdraw问题的开发人员的通常水平),虽然界面比较简单,但是还是有优化的余地
下图是我做过优化之后的状态,整体表现可以说是丝般顺滑,⑥⓪fps跑满无压力。
总结:避免Overdraw的核心思想就是:避免绘制看不见的内容。
如果有Android开发人员正被此问题困扰,请延伸阅读此文章:
Android Performance Case Study
编后语:关于《为什么样 Android 在同样的硬件条件(甚至是更好的硬件)下没法做到 iOS 下那样的流畅?为什么样 iOS 和 Android 在图形性能方面的差别那么大呢》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《小米手机发热情况是否比其他手机严重?如何使手机黑屏或其他故障但可以之后通过自己返回到原来的状态》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器