`
xshq
  • 浏览: 44092 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

[教程] Android手机内存的运行机制

阅读更多

使用Android手机的用户可能都安装了任务管理的软件,使用Android手机真的有必要安装结束任务的软件吗?大家在使用中也都发现了,很多软件在被结束后,马上就会又出现在任务列表里,或是稍等一会自己也会出现,任务管理不停的结束后台程序,也没见给手机的运行速度带来多少提升,这是为什么呢?
  
其实大家不用那么在意Android手机剩余内存的大小。很多人都是把使用其他系统的习惯带到了Android手机上,不是所有的智能手机系统都一样的。Android大多数应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实上他并不影响速度。相反加快了下次启动应用的速度。这本来也是Android的优势之一,如果人为去关闭进程,没有太大必要。特别是自动关进程的软件。
  可能有人会说了,那为什么内存少的时候运行大型程序会慢呢?其实很简单,在内存剩余不多时打开大型程序,会触发系统自身的调进程调度策略,这是十分消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。这种情况下系统并不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会拖慢系统。
  那么,进程管理软件到底还有存在的价值吗?其实还是有的,在运行大型程序之前,你可以手动关闭一些进程释放内存,可以显著的提高运行速度。但一些小程序,完全可交由系统自己管理。很多朋友还有个疑问,如果不关程序是不是会更耗电?这里也解释一下,Android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗cpu资源,只保留了运行状态。所以为什么有的程序切出去重新进入,还会到主界面。但是,一个程序如果想要在后台处理些东西,如音乐播放,它就会开启一个服务,服务可在后台持续运行,所以在后台耗电的也只有带服务的应用了。这个在进程管理软件里能看到,名字是service。所以没有带服务的应用在后台是完全不耗电的,没有必要关闭。这种设计本来就是一个非常好的设计,下次启动程序时,会更快,因为不需要读取界面资源,何必要关掉他们抹杀这个Android的优点呢?
( z. L1 |) b# L
  还有一点,为什么Android应用看起来那么耗内存?大家知道,Android上的应用是java,当然需要虚拟机,而Android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。
) b' I% l3 D( q/ B- {4 Z. N  t0 b
于为什么开了大程序或者开了好几个程序之后切换会变慢,具体分析如下:. J* l
& t! A/ z# D# x
 
已经开启了一个大程序,占用70%内存,如果再想运行一个程序,此时还需要50%的内存,则就需要一个从大程序占用的内存中释放或者压缩的过程,所以表现出来的就是慢一会儿。
  已经开启了几个程序共占用内存80%,运行新程序时又需要20%的内存,系统内存因为没见过剩余0的时候,也就是应该剩一部分空闲内存,那么就需要从之前开启的这几个程序中选择一个或者几个来关闭,这一过程也需要耗费系统资源,所以会慢一会儿。也就是说你手动去结束程序的时候,就是替系统在释放内存,就算你不去结束,在需要内存的时候系统也会自动结束程序释放内存。
  不在后台运行的程序(没服务的),即使不结束也不会耗电。在后台运行的(有服务的)程序,如一些播放器或实时监控的软件,自然会耗电。这就说明结束进程并不是没用,我们只需要看哪个带服务耗电哪个程序后台一直在运行,看服务就能看出来,这样的软件如果用不到的时候就结束了吧。
  以QQ举例,正常的退出,会在进程管理里留下qq的运行过的状态,但不耗电不占 cpu,如果你只是切换出去(按房子键而不是退出)那么自然会耗电,因为程序还在运行,QQ还在线呢。
  这里就有个要注意的地方了,虽然房子键和那个返回键都可以将程序切换出去,但是两者的效果差异是很大的,返回键可以视作程序已经退出了,而按房子键,则是将程序切换到了后台来运行,软件并没有退出哦!

  以上这些设计都是为了确保了Android的稳定性,正常情况下最多单个程序崩溃,但整个系统不会崩溃,也永远没有内存不足的提示出现。大家可能是被windows毒害得太深了,总想保留更多的内存,但实际上这并不一定会提升速度,相反却丧失了程序启动快的这一系统特色,得不偿失。大家不妨换种观念习惯来使用Android系统。
 本教程转载之小米社区

分享到:
评论

相关推荐

    清理释放Android 安卓手机内存空间方法教程

    ### 清理释放Android安卓手机内存空间方法教程 在日常使用Android手机的过程中,经常会遇到手机运行变慢、存储空间不足等问题。这些问题往往与手机内存管理不当有关。本文将详细介绍如何有效地清理并释放Android...

    android应用内存监控工具

    "Emmagee.apk"可能是一个专用于Android设备的内存监控应用,它允许用户直接在手机上查看和分析内存使用状况。 一、Android内存构成 Android系统的内存主要分为以下几个部分: 1. Dalvik/ART堆:这是Android应用运行...

    android手机开发基本知识介绍

    在Android手机开发领域,了解和掌握基本知识是至关重要的。Android是一种开源的操作系统,由Google主导,用于智能手机、平板电脑和其他设备。以下是对Android手机开发关键知识点的详细讲解: 1. **开发环境搭建**...

    14本经典android开发教程和计算器源码

    对于想要深入理解Android系统运行机制的开发者,这是不可或缺的知识。 4. **Android驱动开发入门及手机案例开发分析教程**:驱动开发是Android底层开发的重要部分,教程会介绍如何编写和调试硬件驱动,以及如何与...

    android平台概述 android开发教程 android开发ppt

    - 2008年9月23日,首款Android手机T-Mobile G1发布,标志着Android正式进入市场。 - **开放手机联盟(OHA)**: OHA是一个由Google领导的联盟,成员包括硬件制造商、软件开发商和服务提供商等。其目标是发展一个开放...

    传智播客_Andorid_Android项目手机卫士视频video_day07视频

    "传智播客_Andorid_Android项目手机卫士视频video_day07视频.zip" 是一套教程资源,旨在帮助初学者或进阶者提升Android开发技能。 一、Android应用基础 Android应用主要由四大组件构成:活动(Activity)、服务...

    新版Android开发教程.rar

    � 采用了对有限内存、电池和 CPU 优化过的虚拟机 Dalvik , Android 的运行速度比想象的要快很多。 � 运营商(中国移动等)的大力支持,产业链条的热捧。 � 良好的盈利模式( 3/7 开),产业链条的各方:运营商、...

    android手机教程

    《Android手机教程》 在数字化日益普及的今天,Android操作系统凭借其开源、灵活的特性,已经成为全球最受欢迎的智能手机平台之一。对于想要深入理解和熟练运用Android系统的人来说,掌握基础的Android知识至关重要...

    Android(安卓)开发全套112GB教程

    - **发展历程**:自2008年第一款Android手机发布以来,Android 已经发展成为全球最大的移动操作系统之一。 - **版本更新**:Google 不断推出新的Android版本,每个版本都有自己的代号,如Pie(9.0)、Q(10.0)、R...

    Android 7.0 全套教程PPT 全部手写 原创

    【Android 7.0 全套教程PPT 全部手写 原创】这一教程集合涵盖了Android开发的基础到高级知识,旨在帮助教师和初学者深入理解Android 7.0系统开发。作为一套原创的手写PPT,它强调了实践操作与理论知识的结合,以直观...

    新版Android开发教程及笔记-完整版

    1. **Android系统架构**:Android系统分为应用层、应用框架层、系统运行库层和Linux内核层。开发者主要在应用层进行编程,通过应用框架调用底层服务和功能。 2. **应用程序生命周期**:理解Activity、Service、...

    Android開發教程筆記

    Android是由Google领导的开放手机联盟开发的开源移动操作系统,它基于Linux内核,为各种设备提供了丰富的功能和灵活的定制选项,包括智能手机、平板电脑、智能电视、汽车信息娱乐系统等。 2. **Android架构**: ...

    Android开发教程(完全免费版).pdf

    总结来说,Android开发涉及的操作系统概念、系统架构设计、应用开发流程、用户界面设计、数据存储与管理、网络通信机制、多媒体处理能力以及硬件控制等知识点构成了Android应用开发的核心内容。开发者需要系统学习...

    传智播客_Andorid_Android项目手机卫士视频video_day04视频

    在本资源中,“传智播客_Andorid_Android项目手机卫士视频video_day04视频.zip”是一个针对Android开发的教程,特别是关于构建“手机卫士”项目的第四天教学内容。这个压缩包包含了day04的教学视频,帮助学习者深入...

    完美Android开发教程

    Android开发是移动应用开发领域的重要组成部分,尤其在智能手机市场中占据主导地位的Android系统,吸引着无数开发者投身其中。本“完美Android开发教程”旨在提供一个全面、详细的指南,帮助初学者和进阶者深入理解...

    Android项目实战——手机安全卫士开发案例解析word版

    总结起来,《Android项目实战——手机安全卫士开发案例解析》是一份全面的教程,它将引导开发者从零开始构建一个实用的Android应用,同时深化对Android系统及编程的理解,提升解决实际问题的能力。通过实践这个案例...

    Android从入门到精通经典教程

    当你的应用逐渐复杂,你将需要理解Android的权限管理机制,如何处理运行时权限请求,以及如何适配不同屏幕尺寸和设备。最后,了解如何进行性能优化,如内存管理和GPU过度绘制检测,以及如何使用ProGuard和DexGuard对...

    新版Android开发教程

    2008年,第一款Android手机T-Mobile G1问世,标志着Android正式进入公众视野。随着版本迭代,Android逐渐完善,从最初的“纸杯蛋糕”(Android 1.5)到最新的“棉花糖”(Android 6.0)及以后的版本,不断引入新功能...

    android中文教程.rar

    1. Android系统架构:首先,你需要了解Android系统的分层结构,从Linux内核到应用程序框架,再到各种应用程序,这将帮助你理解Android运行的基础。 2. 开发环境搭建:安装并配置Android Studio,这是Google官方推荐...

Global site tag (gtag.js) - Google Analytics