Android 的内存机制

Android 的内存机制

内存是计算机中重要的部件之一,它是与 CPU 进行沟通的桥梁。内存(Memory)也称为内存储器,其作用是用于暂时存放 CPU 中的运算数据,以及与硬盘等外部存储器交换的数据。只要计算机在运行中,CPU 就会把需要运算的数据调到内存中进行运算,当运算完成后,CPU 再将结果传送出来,内存的运行也决定了计算机的稳定运行。
内存和进程的关系
手机内存的最直接作用体现在进程管理上各种进程的启动、运行和结束都是通过内存实现的。读者需要明白,在 Android中的进程和程序是两回事,程序可以一直保留在系统里,但是没有任何进程在后台“运行”,也不消耗任何系统资源。所有的程序保留在内存中,所有可以更快地启动回到它之前的状态。当内存用完了,系统会自动“杀掉”不用的任务。

另外读者还需要明白的是 Android 使用的是 RAM 方式,与 Windows 不同。在 Android 中, RAM被用满了是一件“好”事,这意味着用户可以快速打开之前打开的软件,回到之前的位置。所以 Android很有效地使用 RAM,很多用户看到他们的 RAM 满了,就认为这拖慢了他们的电话。而实际上,是用户的 CPU——当用户的软件真正运行时用到的空间——才是拖慢手机的瓶颈。

Android 系统的特点是不需要太多的剩余内存。Android 的大多应用没有退出的设计和系统对进程的调度机制有关系,这一点和 Java 机制非常相似。Android 和 Java 的垃圾回收机制类似,在系统中有一个规则来回收内存,通过阀值来进行内存调度。只有低于这个阀值,系统才会按一个列表来关闭用户不需要的进程。

至此,有人会反问道:为什么内存少的时候运行大型程序速度会慢呢?其实很简单,在内存剩余不多时打开大型程序,会触发系统自身的调进程调度策略,这是十分消耗系统资源的操作,特别在一个程序频繁向系统申请内存时。这种情况下系统并不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会拖慢系统。

可能有的读者会问,如果不关闭程序是不是会更耗电。在此介绍一下 Android 后台的原理。Android 的应用在切换到后台时,它其实已经被暂停了,并不会消耗 CPU 资源,只是保留了运行状态。因此有的程序切出去重会进到主界面。但是,一个程序如果想要在后台处理文件,如音乐播放,它就会开启一个新服务。这个服务可以在后台持续运行,所以在后台耗电的也只是带服务的应用了。在进程管理软件里能看到该标签是 Service。所以没有带服务的应用在后台是完全不耗电的,没有必要关闭。这种设计本来就是一个非常好的设计,当下次启动程序时会更快,因为不需要读取界面资源,因此没有必要关掉这些应用程序。还有一个问题,为什么 Android 一个应用看起来那么耗内存。这是因为,Android 中的应用是 Java,当然需要虚拟机,而 Android 中的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。

以上这些设计确保了 Android 的稳定性,正常情况下最多会崩溃单个程序,但是整个系统不会崩溃,也永远没有内存不足的提示出现。其实用户可能是受 Windows 系统的影响,总想保留更多的内存,但实际上这并不一定会提升速度,反而会丧失了程序启动快的这一系统特色。读者不妨按笔者讲解的习惯来使用 Android 系统。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值