龙空技术网

同一款游戏,安卓设备与苹果设备体验为何差距较大呢?

枪速雾岛 228

前言:

现在朋友们对“c语言手机编译”可能比较注意,你们都想要剖析一些“c语言手机编译”的相关内容。那么小编在网上搜集了一些对于“c语言手机编译””的相关内容,希望同学们能喜欢,姐妹们快快来学习一下吧!

相信很多朋友们都玩过手机游戏,例如和平精英,王者荣耀,原神,穿越火线枪战王者等,绝大多数人也会从各大平台,论坛了解,或通过自身体验感受到用苹果玩游戏要比安卓玩该游戏更流畅,如,许多主播钟爱iPhone 8 plus, 某职业联赛指定用机从iPhone 6s plus到7 plus,再到8 plus......这不仅仅得益于苹果手机优秀的投屏录屏画质清晰度,还取决于苹果性能的强大和系统的流畅性,再加上苹果公司对软件优化下的工夫十分充足。至于苹果在哪些方面领先以及给玩家的体验为什么优于大多数的安卓手机,这个问题一直困惑着许许多多的玩家们,今天这篇文章就让我来给大家分析一下这个原因。(以上内容仅自己的主观见解,如有错误请大佬们及时指正,谢谢)

一、硬件:

众所周知,硬件决定性能,,性能是运行游戏的基础,好的性能可以满足大型游戏的各种需求。

苹果采用的是A系列仿生处理器,安卓手机使用高通,海思麒麟,联发科,猎户座系列处理器。安卓闪存协议为UFS,苹果闪存方式为NVMe,NVMe读写速度是明显强于UFS(下文会讲述).

1.处理器方面

多核性能方面领先高通,海思(华为麒麟)联发科,猎户座(三星)整整一代(注:多核性能一般指CPU超算能力,如刷微博,朋友圈等多线程操作)

单核性能方面领先上述处理器整整两代(在实际当中,大部分办公软件、网游、小型软件都更看重单核性能,而专业软件、一些3A大作会对多核心进行优化。)

热门机型的单核及多核性能(小白测评数据)

2.闪存协议方面

苹果采用的NVMe为电脑固态硬盘的闪存协议,性能远高于两三年前安卓手机使用的UFS2.0,UFO2.1,UFS3.0,虽然UFS3.1的读写速度与NVMe已经相差无几,但是由于安卓手机型号过多,逐一优化与适配困难,体验上还是与苹果有一定差距。

闪存性能决定着机器的读写速度(注:读写速度与游戏加载速度关系较为紧密,这就是苹果手机比安卓手机进游戏速度快的原因之一)

二、软件

除了性能,软件也是运行大型游戏的主要因素,因此,软件是适配与后期优化也显得格外重要。

1. 系统

(1)两系统的特点

IOS是基于Swift,Objective-C,C,C++语言(主要代码是C语言)开发的沙盒运行机制的系统,是一种直接运行到CPU上的系统,C语言为编译型语言,简洁灵活,对内存的占用小,响应速度快,加上IOS运行机制----墓碑/半墓碑后台,使得后台应用被尽可能地降低权限甚至杀掉后台,从而尽最大限度的保证了前台的运行,给用户更好的游戏体验(C,C++语言采用单线程运行体制结构)。

安卓系统是基于JAVA开发的移动端操作系统,运行时不是直接运行在CPU上的,而是运行在JAVA虚拟机(JVM)上的,效率比起IOS系统会大打折扣,JAVA代码量十分冗杂,同一个程序代码量约为C,C++的1.5-2.5倍,内存占用则更大,虽说厂商在对软件进行尽可能的优化,但并改变不了其本质,且国内安卓系统缺乏GMS代理,因此会造成许多乱象,如后台无法被彻底停止运行,权限在后台被获取等,后台会占用内存,导致前台内存不足造成卡顿。安卓系统因为自身开源,使用时间久会产生大量垃圾,同样也能造成手机的卡顿。(iPhone 6s现在仍旧有人使用,而同时期的三星S6,HTC M9早已石沉大海)

其触屏工作机制也存在不同之处。IOS对触摸的深度优化,iOS对用户触摸的优先级很高,其系统的触控设置为优先响应屏幕触控,触控预测要多重方向,而且动作重定向也能保证动画的连贯性。IOS相应次序为“Touch(触控)--Media(媒体)--Service(服务)--Core(内核)”,触控放在最优先级,也就是说,苹果按了按键先动画再运算,安卓先响应再动作(苹果在加载动画之前已经预先运算好,也就是说已经上传到内存,动画加载完毕的同时CPU已经完成该指令,而安卓由于虚拟机的存在,拖慢了该进程的运行,故只能先加载图片,再加载内存(此处解释为什么苹果服玩家先看到安卓服的玩家,也算是iPhone的跟手性好的原因之一)。例如,用户从屏幕向上滑动,启动多任务切换,但突然用户又想回到主界面,回到主界面在动画还没跑完又点开新的应用,动作的反复重定向的过程中iOS都要保证动画连贯不中断,甚至有时候要两个动画同步执行,所以苹果对触摸的优化甚至能出一本教科书。

(2)内核的匹配度

A. 对配置要求较高的大型游戏,如CFM,王者荣耀,和平精英等是基于C语言开发的,而IOS主要代码是基于C语言开发,与游戏内核更加匹配(解释IOS设备运行游戏时帧率稳定的原因),安卓的底层代码为JAVA,与游戏的匹配度不如IOS,且上述所提,安卓基于虚拟机运行,虚拟机状态下自身性能和运行效率会大打折扣,目前硬件性能差距已经不是很大(≤2代),在运行日常软件方面相差无几,但是在运行FPS类的快速游戏时差距还是很明显的(此处解释几年前的8p还能很流畅的玩大型游戏的原因)。

B. 苹果系统和处理器均为自己研发,处理器架构是按照系统设计的,更加兼容和匹配,而安卓是组装,芯片厂商只一味的追求性能上的强大,在硬件方面进行堆料,而忽视与系统的交互(举例:每个机器原装配件比非原装配件好用)。

1. 后期的优化

游戏开发者的优化

苹果硬件条件相对安卓手机简单太多,例如处理器即使从2015年的a9算起,10款处理器都不到(这已经包括iPad的A12x,A12Z的处理器了),分辨率也相对固定,这大大减轻了游戏厂商优化的工作量,因此可以说是一对一优化

安卓这边,2019发布的中高端处理器都不10款(骁龙855+,865 ,888,870,765 (G)730,麒麟990 9905g版 810,9000三星猎户座系列,联发科天玑1000(+) 1000L.1200),还有各类分辨率,最保守估计感觉iOS近五年的硬件型号复杂度和2019年的安卓一年复杂度差不多,游戏厂商因优化安卓工作量大,质量与苹果相比,当然会大打折扣。

手机厂商的优化

苹果公司对软件的优化不用说,不光要求软件(游戏)厂商达到相应的优化标准,且苹果公司自身也会对软件进行相应的优化,尽可能地减小资源的使用与浪费。

安卓碍于其系统的原因,优化无法和苹果比较。

三、资金

IOS的强大吸金能力,虽然安卓玩家及其用户数量远高于IOS用户,但IOS用户的人均消费能力远高于安卓用户,厂家依然更用心做优化。

在各大厂商的共同努力下,安卓手机较前几年相比已经取得了巨大的改善,如,华为通过自主研发开发了鸿蒙系统,流畅度和续航较安卓来说已有较大提升。但是因为其开源代码和运行机制的缺陷,其他国产手机还有许多问题需要解决。同时,作为一名中国人,也是希望国产手机做的越来越好。

标签: #c语言手机编译