这个并非是垃圾回收机制的问题,安卓运行java代码的时候用的并不是sun公司的虚拟机,而是自己写的dalvik虚拟机,同样也具有垃圾回收机制,dalvik采用寄存器的架构不同于jvm的堆栈结构,因此更适合在有限内存的移动设备上使用,每一个Dalvik 应用作为一个独立的Linux 进程执行,所以说在手机上,dalvik是做了很大的优化的,而安卓通过对四大组件的生命周期监控几乎是实时的,一定符合条件就会启动。比如一个activity一旦失去界面就会被destory销毁掉(如果没有配置的话),另外在低内存的时候,dalvik会根据顺序主动去关闭一些服务,所以在这上面dalvik做的还是不错的。
而你所说的用长时间会卡,一方面和你手机配置有关,另一方面,你后台的应用可能太多了,有的时候你可能关了这些应用,其实它们还是在后台运行,只不过方式不一样,有的是在后台监听广播时间,一旦接受到信号就启动,有的是通过注册服务,也就是server来再后台运行,还有的根本就没有界面和图标,但是已经安装在你手机了,所有的这些都是在后台运行的,并不是你清理了可见的应用程序后就会消失的。
安卓的垃圾回收机制是回收没被调用的内存控件而不是回收类、对象
知道吗,安卓和windows有一个共同特点就是,安装过多的软件后回留有大量的注册文件和data文件残余,就算你删除,还是留有痕迹,像清理大师,只是清理缓存和历史记录或者是隐私。但一些注册和一些软件设置还有你每天开机的一些线程记录都是没有权限没法删除。这就是为什么windows要administrators。安卓要root的原因。不过你说的重置当然会变快,因为出厂设置会恢复个人的使用情况,也就是会把我刚刚在上面说的那些东西全部删除,其实不是删除,应该说是恢复。但据我个人经验来说,恢复过多后也会慢慢变迟钝,那是因为,机器大量读写后有磁盘碎片,电脑也一样。可能你会拿安卓和ios的apple比,但你要这样想。十多种杂牌用的是安卓,而ios是专为apple设计的,只有apple才能用ios。没看过安卓用ios吧?那是因为apple的处理器都是为ios系统优化的。而那么多安卓设备都用安卓系统。而那么多不一样的设备,安卓能一个个单独优化吗。说实话,比较耐用的就是尽量不要安装那种附带很多修改控件条件的软件。
太专业不如通俗易懂。