❶ 安卓和iOS的性能哪个好
一、优先级别不同:iOS最先响应屏幕
当我们使用iOS或者是android手机时,第一步就是滑屏解锁找到相应程序点击进入。而这个时候往往是所有操控开始的第一步骤,iOS系统产品就表现出来了流畅的一面,但Android产品却给人一种卡顿的现象,更别说后续深入玩游戏或者进行其它操控了。这是为什么?
其实这与两个系统的优先级有关,iOS对屏幕反应的优先级是最高的,它的响应顺序依次为Touch--Media--Service--Core架构,换句话说当用户只要触摸接触了屏幕之后,系统就会最优先去处理屏幕显示也就是Touch这个层级,然后才是媒体(Media),服务(Service)以及Core架构。而Android系统的优先级响应层级则是Application--Framework--Library--Kernal架构,和显示相关的图形图像处理这一部分属于Library,你可以看到到第三位才是它,当你触摸屏幕之后Android系统首先会激活应用,框架然后才是屏幕最后是核心架构。
优先级的不同导致了iOS产品以及Android手机在操控过程中的表现差异,当你滑动屏幕进行操控的时候,iOS系统会优先处理Touch层级,而Android系统则是第三个才响应Library层级,这是造成它们流畅度不同的因素之一。
二、硬件工作配置不同:iOS基于GPU加速
目前智能手机硬件装备竞赛当中,其实处理器等配置已经达到了一个瓶颈期,各大旗舰产品在硬件比拼当中基本上没有太大的区别,而这时候GPU就成为了一个凸显差异的重要因素。一些大型软件像是3D游戏对GPU性能要求都会比较高,苹果iPhone产品采用的Power VR SGX系列GPU在当下来说非常的主流,跑分测试数据证明了它并不会比一些旗舰级别的Android产品差劲。
而iOS系统对图形的各种特效处理基本上正好都是基于GPU硬件进行加速的,它可以不用完全借助CPU或者程序本身,而是通过GPU进行渲染以达到更流畅的操控表现。但是Android系统产品则并非如此,因为Android需要适应不同的手机硬件,需要满足各种差异配置,所以很多图形特效大多都要靠程序本身进行加速和渲染,并严重依赖CPU运算的操作自然会加大处理器的负荷,从而出现卡顿的问题。虽然Android 4.0以及4.1等更高版本中进行了改进将硬件加速设为默认开启,但依旧无法做到所有特效全部都靠GPU进行加速。在很多Android手机里面都自带有“是否开启GPU渲染”这个功能选项,不过开启之后的改善也是微乎其微。
屏幕最先响应的优先级关系,再加上iSO本身GPU加速程序的特性,使得大家在操控过程中感觉iOS手机拥有着不错的流畅性。因为它本身的整个流程都是在为最大化的流畅做服务,不管是第一印象的滑动接触屏幕,还是你进一步使用程序之后的更深层操作都是如此。而GPU加速这点特性,应该是它优于Android系统流畅性的又一个因素。
三、开发机制不同:安卓机制效率低
Android的编程语言是JAVA,而iOS的则为Objective-C,不过要是说Android系统之所以有些卡顿是因为JAVA开发语言的关系,或者是拿它和Objective-C对比肯定会有人提出质疑。Objective-C的优势是效率高但比较“唯一”,而JAVA的优势则是跨平台不过运行效率相对偏低,其实这两个编程语言所带来的机制不同,就已经造成了各自系统之间的流畅性差异化。
iOS的Objective-C,编译器gcc,而这个gcc编译出来的代码又被苹果专为iOS架构优化到了极致,运行过程中也不需要虚拟机在中间插手,执行效率自然很高。这一段话应该是iOS系统本身运行程序的执行过程,而Android是通过JAVA虚拟机来执行,并且系统需要占用大量内存来换取执行速度,再加上不定期的内存自动回收机制,从而直接导致了卡顿现象的出现。
Android的JAVA编程本身运行效率比Objective-C低一些,而且再加上内存自动回收的机制,所以造成了一些卡顿不流畅的现象出现。但根据技术人员讲解,现代的JAVA虚拟机效率已经不再是最大的瓶颈,Android 4.0系统版本之后的卡顿现象明显得到了改善,所以这也是有用户并没有发现自己新买的Android手机出现太多卡顿现象的原因。看来编程语言和机制已经被Android进行了改善,这同样也不是造成它与iOS流畅性偏差的唯一因素,不过影响却是实实在在存在着。
三、系统设计不同:安卓APP无法统一
因为iOS产品的封闭性,所以所有的APP运行对象都比较单一,因为每个应用程序都是被运行在iPhone,iPad等iOS产品当中,它们有着很高的硬件利用效率。因为iOS系统的配件供应商只有那么几家,CPU也是一年换一次,这点不像Android终端年年变月月变,开发者很难遇见未来终端分辨率会包含多少种,GPU驱动会包含哪些等等,所以相对来说Android应用开发成本较高且收益较慢。而iOS应用开发则因为软硬件垂直整合而受益,这样一来苹果自然就保证了应用本身其与硬件产品之间的完美结合程度。
其实Android和iOS两大系统APP开发情况的不同,也正是它们开发和不开放的特性所造成的。如果要是拿旗舰Android手机加上一个专为这款旗舰产品设计的游戏,来和苹果iPhone运行对比的话,你真的不会遇到Android旗舰机出现卡顿延迟的问题,为什么因为这款游戏针对这款手机设计,在软硬等方面都达到了最大化的兼容和优化,自然就不会出现停滞的现象。
而Android系统程序要被安装在各种符合要求的手机上面,开发者也不可能针对所有的机器型号进行开发,只能在比较主流的机器上进行测试并保证运行效果,所以他们为了兼顾整个产品线只能不得不降低游戏体验以达到高中低产品可以共用的效果。最后那些占据了Android终端份额的大量大众用户们由于自己的手机不是旗舰产品而得不到流畅的使用体验,自然而然就会产生Android产品不如iOS流畅的抱怨。
不管是iOS产品感觉比Android流畅还是真的比它流畅,其实说到底原因很简单。苹果会花费一年甚至两年的时间去开发一个桌面icon,一种字体,并去测试屏幕点位,而Android终端中除了Nexus系列之外似乎没有太多产品可以做到用这么长的时间去做这么细致的事情。有网友说得好,Android做的更多的是“让系统跑起来”,而iOS拥有着苹果做的更多的则是“让系统以最高的效率跑起来”,或许这就是iOS产品比Android更流畅的原因吧。但更好的一面的是,随着谷歌对Android的持续升级以及各厂商对自家产品的循序改进,使得越来越多的Android终端正在摆脱卡顿不流畅的束缚,未来安卓用户的期待同样有望得到更好的满足。
❷ 安卓逆向和windows逆向哪个难
如果你比较两个操作系统下应用平台开发难度,其实相差不大,window稍微简单点,毕竟提供.net sdk的可视化开发窗口门槛会低些,Android开发界面稍微难用,但是window系统是闭源,Android是基于linux是开源,从这一点也说明window要难于android,window内部默认有两套渲染语言OpenGL和DirectX,但是Android仅仅默认OpenGL,从音频上来说window支持更高级声卡,而Android仅仅支持基础DP,从语言来说Android基于liunx可支持语言极其有限,而window几乎兼容所有编程语言,甚至黑苹果还支持MacOS,因此window操作系统也称为“计算机基础软件工业机床”,相对于主流Linux和MacOS都是难以企及window,window优点很多但是对于开发者来说并不友好,window里面由于历史原因过于漫长,曾几何时与intel联盟,地位不可撼动导致window内部API极其繁杂,比如VS C++也成为所有C++版本中最难的,因此深入研究门槛远高于Android,Linux,MacOS,这也导致国内极少人去深入研究window,而转移研究linux,相对于Linux起步门槛高但是一旦深入就并没有那么难,但是window则是起步容易深入很难,他们两个正好相反,从开发者来说国内开发Android明显多与window,产品上android也多于window,国内window产品基本都是些基础应用,国外的window开发大部分都是IDE开发环境和工具,比如3dsmax,maya,Autodesk CAD,各类编程环境,因此国内基本上没有window方面的人才,Android方面不适合做IDE,因此结论是显而易见,Android起步门槛高深入研究门槛低,window起步门槛低深入研究门槛高,我的建议主要弄android.毕竟是开源而且可移植性高。
❸ 安卓系统有哪些缺点
1、消息通知混乱
2、应用广告多
3、市场渠道不统一,软件质量参差不齐
4、适配难,质量不能保证
❹ 如何解决Android系统的12个恼人问题
1. 系统速度逐渐变慢
当你购买了一款配置不俗的全新Android手机,一开始会觉得系统运行速度很流畅,但是随着时间的推移,系统会变得越来越慢,如果手机需要5秒钟才能打开网页浏览器,想必很多用户都会抓狂。幸运的是,你无需坐以待毙,也不用更换手机,只要下载安装一些支持自动定时清理的应用软件,就可以解决这个问题。
2. 无休止的通知提醒
Android系统的通知机制十分发达,甚至也被苹果iOS借鉴,但令人烦恼的是它总是在不停地发出通知内容,在一些特殊场合难免令人尴尬。你可以尝试在通知设置中手动关闭一些内容,但是无论关闭多少,总是会有新的服务通知蹦出来。所以,最有效的解决方法不是逐个手动关闭通知,而是选择一个无声的音频文件作为默认声音。
3. 无法摆脱的预装垃圾软件
与苹果iPhone几乎零预装的风格不同,大多数Android设备都预装了一些厂商自家服务或是运营商的定制服务,有些或许是精品,但大部分其实都是一些垃圾软件,你可能从来不会去使用它们。令人烦恼的是,一些内置应用无法卸载,并且在开机时自动驻留RAM中,影响整体性能。所以,你可以做的是在设置菜单中禁用这些应用,将它们“打入冷宫”。
4. 电池寿命较短
在理想的世界中,你可以使用手机上网、查看电子邮件、进行3D游戏,而电池电量没有丝毫减少;但残酷的现实是,如果你用一款Android手机进行以上操作,往往坚持不了一整天就需要充电。如果你愿意做出一些取舍,可以通过降低屏幕亮度、禁用背景数据和关闭GPS等操作,来延长电池寿命,而无需购买额外的电池或便携式充电器。如果不担心保修问题,你还可以通过Semaphore内核设置来降低手机的电压,来获得更长的续航能力。
5. 没有更精准的电量显示功能
大多数Android手机都没有提供精准的电量显示功能,所以你无法判断精准的剩余电量,从而控制使用强度。如果手机厂商没有为其配备电池百分比功能,你还可以通过下载第三方应用程序来实现这个功能。
6. 界面效果不美观
也许你是因为品牌、价格或是其他因素购买了一款Android手机,但并不喜欢它的界面效果,还可以通过安装第三方界面应用来进行美化,这是苹果iOS和微软Windows Phone都不支持的功能。Android领域的第三方界面软件十分丰富,比如GO桌面EX、国内MIUI等等,基本上都配备了个性化的主题,甚至是自定义的手势功能,一些界面软件的运行速度甚至要比原生更为流畅。
7. 获得其他Android手机的独家功能
俗话说,得不到的永远是最好的,有时候你可能会羡慕其他Android手机内置的一些独家功能,比如LG Optimus G Pro的QSLIDE多任务窗口、三星Galaxy S4的画中画视频播放或是摩托罗拉Droid RAZR的智能操作自动化服务等,其实你完全可以使用第三方应用来实现这些功能。比如在谷歌商店中搜索“浮动应用程序”,就可以找到“漂浮浏览器(Floating Browser Flux)”或是“超级视频(Super Video)”播放器,能够实现一定程度上的多任务操作功能;另外,类似“Tasker”这样的系统应用,只要设定一些条件,就可以实现手机自动化操作的功能。
8. “分享”菜单有太多选项
Android的最佳功能之一是其丰富的分享菜单功能,几乎列出了所有的可用内容,不过随着程序安装的增多,你会发现一些根本用不到的选项,看起来十分碍眼。第三方应用程序“Andmade”可以帮助你解决这个困扰,它可以重新自定义分享菜单,删除不必要的选项,并根据自己的需求进行重新排列。
9. 解锁界面太复杂
一些智能手机厂商开始在解锁界面上添加更多的内容,比如显示天气、最常用的应用程序甚至了社交应用的更新内容,但如果你只需要一个简单迅速的解锁界面,可以进入系统设置中更改解锁屏幕的显示信息。
10. 错误的系统默认应用
有时候你想打开Android手机中的一个文件,但却发现并不是你最希望使用的软件,这可能是一些应用程序更改了默认的打开方式。与Windows系统一样,你也可以自行设置系统打开相关文件的默认应用,只需要进入应用程序设置栏目中,清除应用程序的预设值,再次打开相同的文件时,系统就会弹出选项,让你选择默认应用,可以根据需求选择“始终”或是“仅一次”的操作形式。
11. 默认输入法太难用
通常情况下,Android手机的系统内置输入法都很糟糕,很难获得良好的使用体验。事实上我们依然可以通过下载第三方应用来改变这个情况,在谷歌应用商店中,可以找到一票类似的软件,比如QQ输入法,拥有更好的联想、手机键盘效果,也可自定义皮肤,更加符合国人的使用习惯。
12. 过时的Android系统版本
目前Android系统的最新版本是4.2果冻豆,但可能你的手机还是Android 4.0冰淇淋三明治、甚至是更过时的2.3版本。换句话说,你会错过一些最新的功能,比如谷歌语音助手、详细的通知内容以及所有适配新系统的应用程序。那么,除了祈祷手机厂商会在某一天内放出新版固件,你也可以尝试自行刷机。不过,刷机过程相对复杂一些,有可能会将设备刷成砖头,并且丧失保修服务。你可以参考一下XDA等专业论坛,一些ROM爱好者提供了相当丰富的自定义固件,并且附有详细的刷机条件和说明,只要按照步骤正确操作即可。对于已经ROOT过的机型,不仅可以刷自定义固件,甚至还可以超频,获得更流畅的使用体验。
❺ 为什么安卓国产APP的体积越来越大
我是做Android的,我给大家说说原因吧。Android软件大主要是以下几方面造成的。 1 Android界面功能的实现难度。Android相对于apple在某些方面实现起来很困难。比如Android的广告推送。苹果有自己的服务器可以用,而谷歌的服务器却不能用。咋办,于是有了n 种办法,有的人会用第三方比如网络。但更多的公司会自己实现。广告推送是与盈利挂钩的,这是一个很重要的功能。一个广告推送就会让app 多产生七八个类,几百行甚至几千行代码。但这不是最重要的,最重要的是因为这个功能太重要了,以至于每一个Android APP都会有。而这个功能因为需要推送,所以这个功能需要后台24小时运行。这导致无数个pushService在后台运行,他们占用内存,占用cpu 有的甚至索要权限进行电话录制,复制个人信息。 2 android 界面相对于苹果而言,实现有点困难。这种困难从Android出生的那一刻就存在了。一个界面就有一个activity,而n 个界面就有n 个activity。n个activity里面因为某种原因造成代码冗余。于是有了fragment,但是fragment在深度嵌套时会有许多难度而最典型的难度就是传值,页面跳转。这一下字增加了其复杂度。因为要实现会产生很多冗余代码。 3 软件升级。相对于苹果,Android的升级十分的频繁。Java程序最大的特点是可重用性,特别适合二次开发。绝大部分的程序员,在软件升级时,是不会去删除那些不用的代码的。为了兼容老版本,就更不行了。这导致产生庞大的废代码。 4 界面布局文件。界面布局的碎片十分的多,而这些碎片和Java代码是相关的。一个app 页面越多,产生的垃圾布局文件越多。好多公司为了追求速度和程序的可阅读性,是不会主动去删过时的代码和布局文件。 5 图片,图标。APP的代码体积有相当大的可能是图片造成的。图片越多会造成APP体积极速扩张。与媒体相关的视频, 游戏 变成巨霸就成为无可厚非的事。但是还有一个重要原因就是Android的适配。因为Android手机碎片化严重,为了用户体验,常瞎枣基常需要2套以上的图片,图标。
安迪-比尔定律:软件就是会越来越肿
安迪-比尔定律非常了不得,大名鼎鼎的摩尔定律岩宏,在这条铁则面前也得抖三抖。说安迪-比尔定律统治了摩尔定律,似乎也不过分,当然这不会是因为安迪-比尔定律的名字比较长。无论摩尔定律拔高了多少硬件性能,人们都不得不年年掏钱升级新设备,这就是安迪-比尔定律的威力所在。安迪-比尔定律具体指什么?我们一起来看看。
安迪-比尔定律不是定律,它是一个机遇!——by卖硬件的JS
要讲安迪-比尔定律,先得提一下摩尔定律。摩尔定律大家都懂,网上普遍流传的是“芯片每18个月性能提高一倍,价格减半”,这不是原版。戈登·摩尔的原话是晶体管每24个月增加一倍,18个月是时任Intel主管的大卫·豪斯(David House)的说法。细节不要紧,大概意思基本一致。硬件的发展也的确如同摩尔磨谨定律所说,性能不断爆发式增长。
24个月的说法拟合度更好,不过在近年的移动平台上套用18个月的说法也并无不可
然而多年过去,事情却不对头,这硬件是涨了,但没感觉变快啊?三年前用电脑干什么活,现在也是基本如此。硬件猛了,但拔高的性能只能让芯片化身暖手宝,用来养电厂,这不坑爹么!转头一看,微软Intel合体的Wintel联盟笑而不语。
这就是安迪-比尔定律的本质。所谓安迪-比尔定律,安迪指的是Intel前CEO安迪·鲁夫,比尔则是大家都知道的比尔·盖茨。这条定律可是把这两位IT大佬狠狠黑了一把啊。安迪-比尔定律的含义就是,安迪给啥,比尔拿啥;Intel产多猛的硬件,微软会用越来越臃肿的系统和软件统统吃掉增长的硬件性能。安迪-比尔定律,实质上所描述的,就是软件臃肿化的问题。
安迪&比尔:别光看啊,快买呀
随着功能的加入和交互的革新,软件做得越来越大,是很正常的事情。然而,软件臃肿化并不是单指软件体积膨胀,重点是软件增加的功能和变大的体积不成比例。安迪-比尔定律的主角是Intel和微软,但其实在整个业界中,软件臃肿化已是尾大不掉。无论是桌面平台还是移动平台,软件臃肿化的迹象都随处可见。
桌面平台&移动平台:难逃软件臃肿化魔咒
桌面平台
近年来桌面平台软件臃肿化最令人菊花一紧的,应该当数Windows Vista了。Windows Vista一出,Aero毛玻璃特效亮瞎了无数人的眼,笑开了无数内存卖家的颜(虽然后来很快就哭了)。而同样的 历史 ,也在Windows XP接过Windows 98大旗时上演过(Windows Me那破烂就不提了,Windows 2000隶属Server系列也不提了)。无论是Vista还是XP,都带来了大量革新,遗憾的是,带走的老机器也不计其数。
说真的,当年期盼微软出个Vista+内存同捆套餐的人,不止一两个
除了操作系统外,桌面应用软件的臃肿化也非常明显。以IM软件为例,多年过去,IM的主要功能没有发生什么大变化,还是打字语音加视频,但QQ 2003 10M不到的体积已成绝唱。虽然新版QQ 2013五十多M的体积,看上去似乎不算夸张。但多开几个窗口你会发现,连2G内存都喂不饱QQ。夭寿啦!1G内存都能养活Windows XP了!
移动平台
在移动平台上,软件臃肿化甚至要比桌面平台更严重。先来看看以优化效果拔群闻名的苹果,iOS4的体积600M不到,而iOS7体积已经达到了1G多。至于所占资源嘛,瞧着当年行云流水iPhone 4被卡哭的样子,大家应该心里有数。而iPhone 4有什么功能是必须用iOS7才能实现?Siri?Touch ID?高速连拍?对不起,旧机型的标配是旧功能,以及卡顿。
很多新功能都是新设备专属,功能增加和软件的增肥完全不成比例
再来看看以硬件食量闻名的安卓,要不是安卓卡在了32位的瓶颈,恐怕在今年已经把RAM堆到4G了吧?8核+4G RAM,光是论名头,很多PC都没这么夸张,然而这是否就能喂饱安卓?还得打个问号。再加之安卓App受到的限制比iOS平台来得少,开发者们简直像是狂欢一样,拼命往里面添油加醋。安卓App变得重口而滞胃,实在吃不消啊。
吃吧吃吧,越吃肥得越夸张,最后也许动都动不了
可以说,无论是iOS平台还是安卓平台,无论是移动平台还是桌面平台,软件臃肿化现象都非常普遍。通胀是经济发展不可避免的现象,软件臃肿化似乎也在消费电子发展史上,充当了类似角色。为何安迪-比尔定律屡试不爽?软件臃肿化真的不能避免呢?我们一起来看看软件增肥的缘由。
增肥的食粮:软件臃肿化三大缘由
硬件需求进化:好钢用在刀刃上,刀刃同样要好钢
前面提到,随着技术进步和用户需求的发展,软件增肥,本来是一件非常正常的事情。想要马儿跑,哪能让马儿不吃草。拿最直观的界面来说,早年的计算机只能够显示最基本的字母,如英文字母以及日文的假名等等,要显示各种汉字,还得增加字库容量;到了图形界面年代,从16色到256色到32位色,每一步进化都需要更先进的硬件铺路。想要用马车把人拉到火星上,未免也太魔法了点。
虽然系统仍保留高效的命令行,但恐怕最令人流连忘返的,还是图形界面的各种吃资源特效
十年前PC可以轻松解码DVD,对1080p的蓝光盘一筹莫展,而现在的手机都能放4K视频了;十年前手机可以听歌拍照,但和现在将随身听卡片机打得掉一地牙的手机相比,完全不是一回事。在未来,3D、全息以及沉浸式体验将会给人们带来另一番新天地。理所当然,这片天地必须要用更强劲的硬件才能撑得起。
软件功能过剩:好钢用在刀刃上,刀背也来分杯羹
不知道从什么时候开始,各种软件突然变得很喜欢把奇怪的东西塞进自己里面。一个好好的聊天软件,突然就多出了新闻浏览安全杀毒等功能;一个好好的浏览器,突然就多出了安全杀毒社交聊天等功能;一个好好的杀毒软件,突然就多出了社交聊天新闻浏览等功能。平时装三个软件可以得到三种功能,现在装三个软件得到九种功能,什么你说都是功能重复的?我听不到。总之就是一片顶三片,疗效特好,专治电脑性能过高!
你告诉我,这是一个聊天软件?
目前IT业界正处于从桌面端迁移到移动端、从本地迁移到云端的剧烈转型期,新兴的应用环境层出不穷。受业界大环境的影响,专精于某一项功能的软件变得越来越少,开发者们恨不得用一个安装包就统治了用户的使用环境,为前途和钱途铺好路。在这种指导思想下,打铁的也开始割麦子,煮饭的也开始负责炼钢。想把摩尔定律拔起来的性能都物尽其用,好钢通通用在刀刃上,各种随系统自启的软件应用摇晃着一身肥肉纷纷起身抗议不答应。杀了两三个流氓,还有无数后来人。
软件欲求不满:好钢坏钢一箩筐,管他什么顶硬上
现在电脑的性能真的过剩吗?对于某些开发者而言,硬件似乎没有什么过剩不过剩的区别。无论硬件有多高,总有人能够写出榨干性能的软件。这些软件又可以分为两类。
第一类是无论是哪个时代都会出现粗制滥造导致的软件臃肿化。不管硬件性能去到多高,恶劣的代码总能够化神奇为腐朽,这在开放程度高的平台尤为常见。前面提到安卓平台软件臃肿化问题严重,就是着了这方面的魔了。安卓平台没有严格的审核,也没有细密的权限控制系统,入门门槛低,开发者可以放开手脚干。面对完全不稀缺的资源,恐怕懂得珍惜的人不多吧。于是,一堆狂吃硬件资源的安卓App诞生了。
安卓的开发环境,太容易写出垃圾App了
第二类是太过超前的软件,同样没有考虑到当前硬件平台环境。但和第一类不同,这类软件并不是粗制滥造,反而是经过精心设计——但看上去不像是为普通人设计的。以Windows Vista为例,笔者一直认为Vista是一个非常优秀的系统——前提是它不是运行在2006年主流配置为单核CPU和512M RAM的PC上。
实际上,Windows 7大致就是Vista的马甲,两者性能速度硬件需求基本是同一水平,为何两者口碑差距如此大,除了一些细节的不同外,大概还是因为Windows 7诞生于2009年而非2006年吧。
软件臃肿化:真的无药可救?
现代人的体重越来越夸张,以希望国为例,根据统计,美国的肥胖率已经接近三成。肥胖问题在美国每年可以造成约十万至四十万人死亡,并大幅增加医疗支出和其他 社会 成本,美帝每年需要在肥胖问题上花费1170亿美元,简直水深火热。现在的软件环境,和肥胖问题有异曲同工之处,人们不得不花大力气喂饱软件们贪婪的硬件需求,并直面由软件臃肿化带来的卡顿、停止响应、崩溃等问题,太虐心了。无论是人脑电脑,血管都被注入了时代特有的脂肪。
无论在人类 社会 还是IT业界,肥胖都已经成为了大问题
人们已经意识到了肥胖化的后果,减肥俨然已经成为了都市生活不可或缺的话题。同样,IT业界也在为解决软件臃肿化而努力。虽然软件臃肿化的大趋势并没有停止,但近年来被安迪-比尔定律折腾得吃不消,狂吃减肥药试图去除软件臃肿化的案例也不少。桌面平台的减肥成功人士代表为Windows,移动平台上则是安卓。一起来围观下,励志励志。
减肥励志案例一:微软Windows
Windows Vista的肥胖饱受诟病,微软显然也知道自己的设计有点太超前了。从Windows 7开始,Windows系列投入了轰轰烈烈的减肥运动中。Windows 7是第一款比前代更省资源的Windows系统,意义重大。虽然减肥程度不算夸张,和Vista基本也是处于同一重量级,但加上I/O方面的进步,Windows 7给人的感觉要更加高效。
从Vista到Windows 7,从Windows 7到Windows 8,微软每代都在减肥
微软将减肥运动延续到了Windows 8这一代,Windows 8也成为了第二款比前代更省资源的Windows系统。按现在Windows往平板手机迁移的走向,Windows 9很有可能依然比前代更省资源,希望如此吧。
减肥励志案例二:安卓4.4
安卓的臃肿相信毋庸多言了,Google也痛定思痛,这次安卓4.4在优化上下了血本。首先,Google斥巨资2300万美元收购了法国雷恩的一家创业公司Flexycore,这是一家专注安卓优化的公司。然后在安卓4.4中,Google启动了“Project Svelte”(瘦身计划),系统内存需求、运算量峰值大大减少。此外,针对安卓App效率低下问题,Google不再完全依赖Dalvik虚拟机,启动了全新的ART机制,App运行速度大幅攀升。
安卓4.4减肥成功,简直感天动地
安卓4.4的努力效果拔群,有人将安卓4.4移植到了仅有512M RAM和单核CPU的Nexus S中,发现流畅度惊人,符合Google官方声称的“安卓4.4可以流畅运行于512M RAM设备”的宣传。减肥成功的安卓4.4对于用户来说无疑重大利好,也许安卓的硬件大战可以暂缓一下了。
软件臃肿无法停息:为何大家放弃治疗?
从Windows和安卓的例子可以看出,软件臃肿化并不是无药可救,但为何人们往往放弃治疗?我们可以来参考一下从来不会发生软件臃肿化的 游戏 机平台。 游戏 机平台的寿命长得惊人,动不动五年以上乃至再战十年。随着时间的冲刷, 游戏 机上的 游戏 优化效果甚至会越来越好。06年发布的PS3至今仍可玩到GTA5、Crysis 3等最新大作(虽然效果是差了点),06年的普通PC现在还能换几条柴?
在 游戏 机平台上,软件索求的资源是稳定的,新 游戏 并不会比旧的更耗资源
游戏 机平台非常封闭,而且在长久的生命周期内硬件性能稳定得接近水平线。对于开发者而言,这一方面迫于严格的审核,必须对 游戏 成品精益求精,你不能乱来,最多也就搞搞内购;另一方面,稳定不变的硬件利于庖丁解牛,每一份性能该用在什么地方,会越来越了然于胸。 游戏 机能够在悠长的生命周期内由始至终高效发挥机能,绝缘软件臃肿化,和其独特的平台生态密切相关。
开发环境、平台生态更迭太快,没法让开发者照应到老设备
再回头看看一年一换甚至半年一换的电脑手机,压根没法为开发者提供稳定不变的开发环境,软件应用不得不尾随进化神速的硬件平台更新;同时,就算是审核以严格着称的iOS平台,苛刻程度也没法和 游戏 机平台相比,更别提门洞大开的Windows和安卓了。微软和Google自然坐拥能够在时代大潮中淡定观望,慢慢打磨代码的人力财力,放长线钓大鱼;但对于更多开发者来说,跟上平台更新的狂潮,用更多手段掌控用户,获取短期利益,才是更好的赚钱大法。至于软件肿不肿……神优化又能怎样?能发大财么?爱玩神优化的话,就让热心的独立开发者自个玩儿去吧。
安迪-比尔定律仍会跟随摩尔定律很长时间
后话
不难发现,更迭越迅速的平台,越容易发生软件臃肿化现象。硬件狂魔安卓的应用比iOS更臃肿,移动平台比近年来放缓更新步伐的桌面平台更臃肿,五年前的PC还能顶用,五年前的智能手机已成弱智矣。不是大家不想减肥,兵荒马乱之中,今天不拼命给自己塞点什么,谁知道明天还有没有机会开饭?摩尔定律作用越明显,安迪-比尔定律的效用也就更大,不得不说这是消费电子发展的怪圈,时代的眼泪啊。
希望之草 这位朋友回答的很详细,归纳起来就是全家桶、链启动、权限索取无度、安卓系统高度开源,以及代码优化不到位导致的,而且还有最重要的一点
苹果手机多年就是4.7英寸,5.5英寸,或者像iPhone SE 4英寸,APP适配起来更简单,安卓的手机尺寸,屏幕分辨率太奇葩,而且差距太大,所以很多APP厂商在做程序的时候,要针对所谓的自适应分辨率做好几套内容。
腾讯就是流氓。。。再搞这样几个软件,手机不卡才怪。。。。
有时候我真的是不明白,你说你一个输入法(不针对某产品),只是单纯为了输入文字方便而儿,有必要那么大吗?
这个图大概可以回答你们的疑问了
我的QQ 8个G
不管怎么样,我不喜欢安卓,软件太闹腾了!一天到晚的把通知栏占满应用消息、很多都是垃圾广告、我垃圾苹果安装了两百多个软件,手机清爽无打扰!好多人可能会说安卓也行!但是很多安卓软件你禁止了一些功能后就不能用了!重要的信息接收不到了!你们可以看看我的屏幕顶部除了必要的显示其他的都没有!你们也可以把你们安卓屏幕截图看看、手机是拿来用的不是接收广告的。也没是来折腾的,安卓机装了两百多个软件的话一天到晚信息不停了!我不想黑我们中国手机,魅族我也在用,系统是好系统软件不正经。
你可以试试从手机导照片到电脑,你会发现太多太多缓存图片了。不是他们处理不了。只有这么大,手机才会卡。然后一个安卓手机用一俩年就卡的不行,只好换新机,他们才有销量。人家都说苹果好,你试试就知道是不是真的。用一俩年基本不卡。不要说什么爱国买国产。这些商人最不爱国。真正国家有什么事,他们为了保值第一个转移资产。特朗普拉那么多商人人去美国建厂就是最好的例子。有钱赚啊,美国补贴高啊,税少啊。什么理由都站得住。很少会说他们不爱国。而他们拓展销路的理由尽然是让我们因为爱国买他们的东西。可笑吗?说爱国,我可以问心无愧。因为长这么大,只有知道我买的东西是日本产品,我会坚决不买。国产货还是一个婴儿。越宠越容易坏。要爱护,但是不要溺爱,那是很无脑的。
❻ 为什么Android没有iOS那么顺滑
虽然很多Android手机的配置都比iPhone要高,比如大多数Andorid手机的内存都有1GB,而iPhone 4S只有512MB内存,但用过iPhone的人都知道Android手机在使用的时候总感觉没有那么顺滑,究竟为什么会出现这种现象呢?一位软件工程师和前Google实习生Andrew Munn解释说是因为Android系统UI效率低下的框架设计的问题。
不过,这个实习生Andrew Munn是一个软件工程专业的本科毕业生,他在Android团队并没有在框架团队工作,也没有看过Android渲染的源代码,因此他所说的未必是100%准确。并且他也曾经在Windows Phone团队工作过,因此可能会不自觉的对Android产生偏见。以下就是他对Android为什么没有iOS流畅体验的看法。
Android没有iOS流畅的原因并非Java GC导致暂停,也不是因为Android运行的是Java编译的bytecode而iOS运行的native code,根本的原因是,iOS的UI渲染采用实时优先级,而Android的UI渲染遵循传统电脑模式的主线程普通优先级。
这听起来似乎很抽象和难以理解,但大家可以尝试一下,使用你的iPad或者iPhone,打开Safari,然后加载一个复杂的网页,例如新浪网首页,当网页加载到一半的时候,把你的手指放在屏幕上,并且四处移动,你会发现所有的渲染立刻停止,在你拿开手指前,网页永远也不会继续加载。
而在Android设备上重复这个操作,你会发现,浏览器会继续尝试加载页面并渲染HTML,试图多任务同时进行,因此对于Android来说,一个高效的双核处理器是很重要的,这也就是Galaxy S II能够非常平滑的原因
在iOS中UI渲染过程具有绝对的优先等级,当用户接触到iPhone的触摸屏后,iOS中所有的进程都将停止,UI线程拦截了所有的事件,系统会将所有资源用于渲染UI过程,以保证用户界面的实时渲染优先级。而在Android系统中UI渲染过程的优先级别却没有那么高,也就是说当你触摸Android手机屏幕的时候,系统后台的程序并没有停止,仍然在继续运行之中,比如下载和查收短信,这样系统UI获得的资源就不够,这就是Android系统不流畅的原因。
由于这个原因,新发布的Galaxy Nexus,甚至配备四核处理器的话说EeePad Transformer Prime平板电脑都无法保证顺滑的操作体验,这些设备只能与3年前的iPhone顺滑程度相比,那么Android团队为什么不从根本解决这个问题呢?
除了UI渲染之外,Android缺乏有效的的硬件加速也是一个原因,在不同的Android手机上的硬件加速存在巨大差异,而苹果是唯一一个既做硬件又做软件的手持设备公司,只有苹果可以在硬件中插入对软件的优化,使得基于苹果芯片的设备不仅省电,而且流畅。
实际上,Android的开发工作在第一代iPhone发布之前就已经开始了,原始Android原型体被设计成为使用键盘手机的设备,也就是黑莓手机的竞争对手。UI渲染优先级别在有键盘的手机上并没有那么重要。但是在iPhone发布之后,Android小组为了快速推出能与iPhone竞争的产品,迅速将Android改成触摸屏手机系统,但那时重写UI框架已经不可能了。因为如果这样Android应用市场中的所有程序将变得不可用,这种关系将一直处于恶性循环之中。
(这个实习生的伪科学真是编的好,在此反驳)
按照那个实习生的说法,android的ui不流畅是因为响应UI处理的优先级不够,而google不改进的原因是因为怕影响到已经发布的应用程序?
这人根本不懂ios和android的进程控制机制,且不说ios中ui有最高优先级(笑啊,ios什么时候UI有最高级了,明明是系统中断才是最高),竟然说出了android触摸UI时后台进程保持运行这样的荒谬的事情,我都怀疑他是不是在google呆过。 即便他说的UI优先级有理,也不可能出现改变优先级就会使得程序进入恶性循环这种情况。了解android系统架构应该知道负责图形处理(关于优先级部分)的是位于android系统的倒数第二层,也就是内核的上一级,而且android的设计是层与层之前低耦合的,每层对于下一层的依赖仅通过接口来调用,而层内的变化根本不会影响到层外行为。
说简单一点,就如同你去银行柜台办事,你办外汇就去外汇窗口,债券就去债券窗口,而银行内部怎么处理你的请求是他们的事,你只需要提交你的数据并接收结果即可,银行内部员工变动也不会影响你的事务办理。如果真如这个实习生所说,是UI框架处理优先级的问题,google大可以轻轻松松直接提高优先级,绝不会影响到现有任何程序,因为目前没有任何程序能绕过android的程序框架直接调用到UI下层的方法,因此下层的改进也不会对上层造成兼容性的不适。而且也不增加什么生产成本。
但为什么还是感觉android比ios卡?我觉得这是人云亦云后的“被变卡”感觉(很多人在概念空白时先入为主的被教唆到android比ios卡,不如ios,而且听多了这样的话后自然自己的感觉就不准了),以至于出现了N种关于android为什么不如ios的“科学、内幕”解释。我觉得除了辩证还要用发展的眼光来分析这个问题。
在早期,android的优化的确不如ios,这源自于产品的设计理念和年代(android本身是07年才被收购的一个公司,之前这个系统根本没有得到实际的验证,而ios始终是在apple下从mac时代起就被打造的)。而硬件也远没有iphone强,加上开放免费,什么鱼龙混杂的制造商都加入进来,元器件供应商也是水很深,造成产品水平参差不齐。很多人对android和ios的差距的认识也是从那时才建立的,而看iphone,一年才出一款机器,无论软件还是硬件,从选择供应商到制作,有足够的周期,都是精挑细琢。也就是说,android阵营从低端到高端都有,且低端又多又乱所谓的高端少而不精,而iphone就一个高端,这就如田忌赛马,老拿人家优秀的比垃圾的,自然而然口碑也就落成了android不如ios的一个大范围印象。其实这个时代跟ios产品比较,也的确是android的东西不如iphone做得好。
但是近年来android的机器硬件基本上已经超过了iphone但为什么还是觉得比ios卡?除了上述的心理因素遗留之外,我个人觉得其实这无关android本身,并不是os优化这么简单的事。而是硬件问题,其实没有人特别在意这个问题,但是我想说这就如同显示器的响应时间,响应时间快,在播放时就会流畅没有拖影。
电容屏也有响应时间,而且对工作环境电压要求很高,普通的电容板本身响应就比较慢,大概才50~100ms,而且在电压不稳定时反应更慢,而iphone4的电容板响应时间在10~20ms,差距近80ms说是不到十分之一秒,但是在实际体验时这就能影响到人们的直觉。另一个因素在于触屏的玻璃材质,硬度越高越顺滑,这是根据阻尼系数和摩擦系数可以测出的。同是镜面的情况下,硬度越高的材质在摸上去的时候更顺滑。iphone用的是大猩猩,硬度达到7,裸身时本身触感就顺滑,没有拖沓感,再加上大多数买iphone的人贴膜都会比较下本钱(我贴膜花了129),贴膜也会影响到触感。在普观android手机,用上大猩猩的寥寥无几,再肯贴好膜的更是少。在手感上也比iphone要差了。
就我个人长久使用亲身体会是,android的UI其实缺少过度动画,比如在界面切换时的细节(仔细看,ios的界面切换时除了窗口会移动,标题栏和上面的控件都会以不同的速率在移动,感觉很动感精致,如同流水般),这样在操作时造成了突兀感。实际上从触摸角度来讲,我觉得兔子没有明显的差异。而且明显的感觉是,如果iphone有后台程序,或者运行过较多程序之后,哪怕是普通的界面切换也会有卡顿感觉,很明显的。
最后一点重要的补充就是iOS是伪多线程开发,Android更注重编程模型,iOS更注重用户体验。Android将应用内(进程内)渲染(controls)和进程间渲染(surface flinger)放在了不同的模块、空间,导致动画时线程切换过于频繁,需要更高的性能的芯片才能达到和iOS相同的效果;要配合渲染也变得很复杂,所以在横竖屏切换时没有像iOS那样的转屏动画。