`
debbbbie
  • 浏览: 26867 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux认证:Android系统特质不需要太多剩余内存

阅读更多

 linux认证:Android系统特质不需要太多剩余内存,其实很多人都是把使用其他系统的习惯带过来来了。android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这机制了。其实和java的垃圾回收机制类似,系统有一个规则来回收内存。进行内存调度有个阀值,只有低于这个值系统才会按一个列表来关闭用户不需要的东西。

 

当然这个值默认设置得很小,所以你会看到内存老在很少的数值徘徊。但事实上他并不影响速度。相反加快了下次启动应用的速度。这本来就是android标榜的优势之一,如果人为去关闭进程,没有太大必要。特别是自动关进程的软件。

到这里有人会说了,那为什么内存少的时候运行大型程序会慢呢?其实很简单,在内存剩余不多时打开大型程序,会触发系统自身的调进程调度策略,这是十分消耗系统资源的操作,特别是在一个程序频繁向系统申请内存的时候。这种情况下系统并不会关闭所有打开的进程,而是选择性关闭,频繁的调度自然会拖慢系统。所以,论坛上有个更改内存阀值的程序可以有一定改善。

但改动也可能带来一些问题,取决于值的设定。

那么,进程管理软件有无必要呢?有的。就是在运行大型程序之前,你可以手动关闭一些进程释放内存,可以显著的提高运行速度。但一些小程序,完全可交由系统自己管理。谈到这里,可能有的朋友会问,如果不关程序是不是会更耗电。我就说说android后台的原理,你就明白了。android的应用在被切换到后台时,它其实已经被暂停了,并不会消耗cpu资源,只保留了运行状态。所以为什么有的程序切出去重进会到主界面。但是,一个程序如果想要在后台处理些东西,如音乐播放,它就会开启一个服务。服务可在后台持续运行,所以在后台耗电的也只有带服务的应用了。这个在进程管理软件里能看到,标签是service。至于广播什么的我就不涉及了。所以没有带服务的应用在后台是完全不耗电的,没有必要关闭。这种设计本来就是一个非常好的设计,下次启动程序时,会更快,因为不需要读取界面资源,何必要关掉他们抹杀这个android的优点呢?还有一个。为什么android一个应用看起来那么耗内存。大家知道,android上的应用是java,当然需要虚拟机,而android上的应用是带有独立虚拟机的,也就是每开一个应用就会打开一个独立的虚拟机。这样设计的原因是可以避免虚拟机崩溃导致整个系统崩溃,但代价就是需要更多内存。

以上这些设计确保了android的稳定性,正常情况下最多单个程序崩溃,但整个系统不会崩溃,也永远没有内存不足的提示出现。大家可能是被windows毒害得太深了,总想保留更多的内存,但实际上这并不一定会提升速度,相反却丧失了程序启动快的这一系统特色,很没必要。大家不妨按我说的习惯来用用这个系统。

分享到:
评论

相关推荐

    Android系统内存设计

    linux认证:Android系统特质不需要太多剩余内存,其实很多人都是把使用其他系统的习惯带过来来了。android大多应用没有退出的设计其实是有道理的,这和系统对进程的调度机制有关系。如果你知道java,就能更清楚这...

    linux入门学习文档

    5. **多CPU支持与内存优化**:显著改善了多CPU计算机的支持,单CPU系统则拥有高达4GB的用户进程空间,取消PCI总线限制,虚拟内存可达64GB,展现出企业级操作系统的特质。 6. **移动存储设备兼容性**:对USB“热插拔...

    Android开发的多媒体备忘录(含代码)

    在开发这样一个应用时,还需要考虑性能优化,如避免内存泄漏、减少不必要的计算和I/O操作,以及适配各种Android设备和版本。此外,测试是至关重要的,包括单元测试、集成测试以及在各种实际设备上的真机测试,以确保...

    Java、Linux命令、操作系统、数据库、网络、数据结构、Scala面试题

    在IT领域,掌握Java、Linux命令、操作系统原理、网络知识、数据结构以及数据库技术是非常重要的。这些技术构成了软件开发和系统运维的基础,并且在面试中经常被考察。下面将对这些知识点进行详细的阐述。 首先,...

    CentOS操作系统:稳定与高效的商业级Linux平台.docx

    ### CentOS操作系统:稳定与高效的商业级Linux平台 #### 一、CentOS的起源与定位 CentOS作为一个基于RHEL(Red Hat Enterprise Linux)构建的发行版,在IT领域中占据着重要地位。它不仅继承了RHEL的核心优势,还...

    应聘Android工程师_2年开发经验.doc

    1. **ListView优化**:Android开发中,ListView是经常使用的组件,需要掌握如何进行优化,比如使用ViewHolder来减少对象创建,异步加载数据以提高用户体验。 2. **网络数据加载**:熟练使用异步任务加载网络数据,...

    Rust编程语言:现代系统编程的新纪元.pdf

    - **意义与应用**:这种特性允许开发者在不牺牲性能的前提下享受高级语言带来的便利,这对于那些需要同时考虑性能和代码可读性的项目来说非常重要。 ##### 4. 强大的类型系统 - **支持特性**:Rust 拥有一个强大的...

    Android 4.4.2 简单的人品测试.rar

    1. **KitKat版本**:4.4.2属于Android KitKat系列,该版本的主要目标是提高性能、优化内存使用,尤其是对低内存设备的支持,使得更多的设备能够运行最新版的Android系统。 2. **ART运行时**:4.4.2引入了Android ...

    关键任务智能系统的云操作系统需要哪些特质——访风河系统公司首席技术官Paul Miller.pdf

    本文主要介绍了风河系统公司首席技术官Paul Miller对于关键任务智能系统所需的云操作系统特质的看法。随着电信运营商对5G网络的大规模投资,新一代操作系统必须具备跨多云部署和高度自动化的能力。风河公司为此推出...

    Linux系统中网络配置详解

    Linux系统因其开源特性以及高度可定制化的特质,在网络领域展现出了非凡的能力。如何有效地配置Linux系统中的网络环境,确保其既高效又安全地运行,对于网络管理员而言至关重要。 在安装Linux系统时,如果用户已...

    Traitor.jl:Julia特质系统的早期原型

    赋予(或背叛)编程语言特质的人或程序包一个不常见的(甚至有人说虚构的)术语。 概述 Traitor.jl软件包是幼稚的(并且可能是邪恶的)尝试,以Julia编程语言为基于特征的调度创建方便的框架。 特性提供了单继承多...

    Java+Android+Dome简历模板各种面试简历资料

    Android是Google开发的开源移动操作系统,主要应用于智能手机和平板电脑。它基于Linux内核,提供了一个用于开发应用程序的软件开发工具包(SDK),包括Java语言编译器、调试工具和模拟器。Android SDK允许开发者使用...

    Android程序员简历模板_网络公司it人员简历_程序员简历模板_计算机相关专业.docx

    * 标题:Android程序员简历模板_网络公司it人员简历_程序员简历模板_计算机相关专业.docx * 描述:Android程序员简历模板_网络公司it人员简历_程序员简历模板_计算机相关专业.docx 二、标签 * 面试题 * 简历 三、...

    linux运维工程师简历模板

    为了展示自己的技能和经验,Linux运维工程师需要准备一份详实而专业的简历。以下是对“Linux运维工程师简历模板”的详细解析: 【描述】:“Linux运维工程师简历模板” 一个优秀的简历模板应该突出体现应聘者的...

    Hire&Fire专辑【8】:产品经理需要哪些特质?-俞永福.JPG

    Hire&Fire专辑【8】:产品经理需要哪些特质?-俞永福.JPG

    特质:特质库

    在Scala中,我们可以这样定义一个特质: ```scala trait MyTrait { def myMethod(): String } ``` 然后,一个类可以混入这个特质,实现其抽象方法: ```scala class MyClass extends MyTrait { override def ...

    8021x.exe程序使用兼容模式时内存和CPU时间占用过高的情况

    【8021x.exe程序使用兼容模式时内存和CPU时间占用过高的情况】 8021x.exe程序,通常与无线网络认证有关,是IEEE 802.1X协议的一部分,用于在网络设备上实现身份验证。在某些情况下,当用户运行8021x.exe程序时选择...

    arbitrait:JavaScript的特质

    每个人都知道我们不应该修改Array.prototype 。 但是,如果我们真的想拥有array.first()怎么办? 我们可以以特质整齐且无害地隔离一些接近的东西! npm install arbitrait const trait = require ( "arbitrait" ...

Global site tag (gtag.js) - Google Analytics