1. 首页 / 知识 /  正文

安卓16GB运存领先苹果近四倍,为何有人觉得流畅度不如苹果?

安卓16GB运存领先苹果近四倍,为何有人觉得流畅度不如苹果?

安卓的16GB运存的流畅度和苹果4G预存的流畅度对比,理论上来说安卓肯定是比苹果要快的,但是为啥很多人用气量觉得流畅度还是不如苹果呢。

其实这跟系统有关系。

安卓系统对内存的掌控不够绝对

安卓系统运存的使用取决于各应用进程的申请,为了规范申请,于是安卓对进程搞了一套管理规则。

安卓系统对进程的管理是基于进程的类型。

而进程的类型从重要程度分由高到低依次是:前台进程、可见进程、服务进程、后台进程、空进程。

1、前台进程

顾名思义,前台进程就是目前显示在屏幕上和用户交互的进程,在系统中前端进程数量很少,而这种进程是对用户体验的影响最大,只有系统的内存稀少到不足以维持和用户的基本交互时才会销毁前台进程。因此这种进程重要性是最高的。

2、可见进程

可见进程也拥有一个可视化的界面,但是不能和用户交互,通常可见进程在前台进程的后边,用户退出前台进程后就会显示可见进程。

可见进程一般调用了生命周期方法OnPause(),可见进程比前台进程重要性低,但是在交互方面影响还是很大,因为用户可能随时切换过去,所以系统不会轻易销毁它。

3、服务进程

一个服务进程就是一个Service,它调用了startService,就是UNIX中说的守护进程,对用户不可见,但是保证了一些重要的事件被监听或者维持着某些状态,比如网络数据传输、后台音乐播放、后台下载资源等等。

这类进程在系统内存不足且为了保证前台进程交互的顺利进行的时候被销毁。

4、后台进程

这里叫后台进程可能会和一般意义上的后台进程混淆,要说明的是,android里的后台进程是调用了OnStop()的,可以理解成在不可见进程,就是用户暂时没有和这个进程交互的动作,所以这里后台进程有点“待销毁”的意思。

5、空进程。

这是一种系统缓存机制,其实就是个进程的外壳,当有新进程创建的时候,这个空进程可以加快进程创建速度,当系统内存不足的时候,首先销毁空进程。

基本上只有基于这套规则,你就能申请到内存,理论上来说这样是最可靠的,要多少申请多少,规规使用。

但是在国内则变味了,首先就是推送服务

国外能使用谷歌推送服务,但是国内由于某些原因使用不了谷歌服务,于是开始各手机厂商和软件开始各显神通。

首先是手机厂商,比如小米搞的小米推送,华为搞的华为推送,这些都是可以使用的,但是大多数开发者都不会使用,因为只能在小米或者华为手机上使用。

所以软件开发者更喜欢使用第三方的推送服务或者自己实现推送服务,这样就不用去做适配工作了,而且安全可控。

那问题来了,如果自己实现推送服务的话,必须要保证自己的APP随身“活着”,于是一系列的保活方案出来了,比如在后台播放无声音乐,保留一像素页面等等,这些操作的背后都是需要内存的,基本上所有APP都会做至少一种保活方案,那消耗内存是几何级的。

工信部主推的统一推送联盟,就是为了解决这种现象,既浪费资源又阻碍行业发展,但是目前统一推送联盟还没在市场正式使用,期待吧!

IOS系统对内存拥有绝对的权利

我觉得这是IOS系统与安卓的差别,这也算是闭源的一种好处吧。

IOS不允许APP有退出功能,所有APP的退出都由系统来决定。基本上APP只要退出到后台超过10分钟,就会被销毁,但是会留下一张你当前的页面,就是你双击Home键弹窗看到的APP截图,这种被称为“墓碑机制”。

所以即使苹果内存在小,也不会卡顿的原因,理论上来说,IOS系统永远只会运行一个APP,除了系统应用和哪些必须在后台运行的APP(音乐APP,导航APP等)以外。

另外IOS又一套系统推送服务,所有的APP可以不用自己去实现推送,在APP后台发出推送后,IOS系统接收到后会唤醒对应的APP,来处理推送。

总结由于国内安卓系统推送服务不够统一,导致各APP都实现保活方案,大量消耗内存,从而导致卡顿,另一反面由于国内软件开发者的不规范开发,无节制申请内存,导致运行APP时卡顿。

而苹果系统由于闭源且对内存拥有绝对的控制权,所以实现了一个系统同一时间只运行一个APP,这样大大节省内存。

我是非著名攻城狮,希望我的回答对您有用,感谢您的点赞支持!