多任务管理探秘
Android4.0之前,用户长按Home键呼出来的是一个“最近使用的程序列表”,新系统官方在这里加入了很多图形化的处理模式,看上去像极了webOS那样的“真正”多任务管理,究竟这个界面是多任务管理,还是“最近使用的应用程序列表”呢?
类似webOS的卡片式多任务界面
首先要做的是关闭开发者模式里面的“不保留后台进程”选项,然后在后台进程限制里面选上标准限制,我们选择了2个应用进行测试,浏览器和美图秀秀。分别打开后,按Home键返回主界面。呼出卡片式缩略图界面后,确实可以直接回到应用而无需重新加载。
先要把后台进程限制去掉
但是我们在后台的“正在运行”选项卡中并没有找到这些应用的踪迹,但是不要着急,点开下面小小的“显示缓存进程”选项卡,你会有新发现——没错,这些应用都被缓存在了这里。看来Android4.0的卡片式多任务界面是和缓存对应的,那么它显示的是此时在后台的缓存、还是使用记录呢?
很简单,在“显示缓存进程”选项卡里面关掉美图秀秀的缓存之后,我们发现它依然在卡片式多任务界面里面,因此卡片式多任务对应的肯定就是开启程序历史记录,而不是实时的后台缓存进程数据了。
浏览器和美图秀秀出现在了缓存进程里面,而非正在运行的服务
我们不妨做一个大胆的推断:Android程序的后台情况分两种,能力较强的是具备“服务”的应用(例如微信、例如新浪微博,主要是一些需要实时收取信息的应用)。这些应用一旦被切换到后台,会开启若干服务,这些服务最大的特点是可以在后台持续运行。只有在进程被强制关闭之后它们才会出现在后台的缓存进程中;能力较弱的是不具备“服务”的应用,例如(美图秀秀、浏览器、相机),这些应用被切换到后台后,就以后台缓存进程的形式存在,此时应用处于完全暂停状态,只是将数据缓存在RAM中,方便用户来回切换。重点来了,Android4.0的卡片式多任务界面就是一个记录程序开启记录,同时可以清空后台缓存进程(注意是后台缓存进程)的直观界面。
为了最后验证一下,我们用“愤怒小鸟”做测试。打开愤怒小鸟游戏,然后切到后台,我们发现后台缓存进程里面多了占用RAM达90余MB的怒鸟游戏。在卡片式界面中滑动消除怒鸟游戏缩略图之后,我们发现后台缓存进程那里被占用的90多MB又回来了,这部分证明了我们上面的推断。按照上面的推断,大多数情况下我们是无法在卡片式多任务界面里面滑动消除具备服务开启能力的应用的(例如新浪微博和微信),实际测试情况也验证了我们的判断。
先打开愤怒小鸟游戏
切换到主界面后看到游戏是在缓存进程里面的
滑动消除卡片,对应的缓存进程消失
最后得出结论:Android4.0中的卡片式任务管理界面其实还是“伪多任务管理界面”,它显示的依然是最近使用程序的记录,而非正在运行或则会后台缓存的内容,滑动消除关闭的其实只有缓存的后台进程,也就是说,原本具备服务开启能力的应用(例如新浪微博和微信应用)很多时候是没有办法通过滑动缩略图关掉的。
总体来说,Android4.0全新的卡片式任务管理界面是对本来管理不善的Android多任务的一个很好提升,虽然有一定的局限性,但是用来在多个程序之间切换、或者清除后台应用所占用的缓存还是非常有效直观,值得肯定。
|