其实从很多方面,Android系统的机制都和其他系统也很大不同,更多的时候,用户是把使用其他系统的经验带到了Android手机上,例如很多人买到Android手机的第一件事就是安装“高级任务管理器”或者“Auto task killer”等杀进程软件。那么久从最浅显易懂的方式分享下Android的某些与众不同的机制。
后台
使用过Symbian或Windows Mobile系统的用户普遍都会有一个习惯——频繁关注剩余RAM的多少,恨不得把一份RAM掰成两瓣儿使,且生怕后台有什么应用程序开着耗光手机电量,但Android采用的是不同的内存管理机制:当用户从程序切回主界面时,该程序会被暂停,系统此时不会给它分配CPU资源,这样做一来可以增加下次进入该程序的速度,二来不会在多任务的时候耗电过于严重,三来更不会拖慢系统速度,正所谓一石三鸟。经常使用Android程序的用户可能就有这样的体验,Home键切回主界面再回来的时候,程序还要从主界面再次Loading,这就是该机制所致。
实际上,Android程序对于RAM的消耗很厉害,这是因为Android实际上是基于Java的,每个打开的应用程序都带有一个Java虚拟机,因此相比其他系统会消耗更多的RAM,但这样做有很大好处——单一的程序崩溃并不会影响到系统的稳定性,算是一个有益的Android特性。
我们可以看到,Android平台在保证多任务的同时兼具了兼顾了稳定性和速度,但正是由于其他平台给用户带来的思维定势,让很多Android用户认为后台只要开多了自然会变慢,自然会缩短续航时间,但其实用户大可不必在这方面费脑筋。
回收机制
细心的朋友可能会问,RAM是有限的,如果被程序占满了怎么办?Android系统在这方面的处理同样是自动化的——内存回收机制,这个机制是由Linux内核中的LowMemory Killer完成的。
具体来讲就是,Android系统有一个按重要性从高到低排列的表格,所有应用程序按照重要度高低对号入座(分为FOREGROUD_APP,VISIBLE_APP,SECONDARY_SERVER,HOME_APPHIDDEN_APP,CONTENT_PROVIDER,EMPTY_APP等),位于这个排行榜末尾的程序自然就是Android下手的主要对象。例如六个程序分别属于这六个类型,从高到底排为1,2,3,4,5,6,对应的内存阀值分别为8MB,12MB,20MB,32MB,48MB,60MB(假设),当空闲RAM小于48MB的时候,系统会杀掉5和6;当空闲RAM小于20MB的时候,系统会杀掉3到6的程序,此处笔者简化了此机制,实际上是所有程序类型和内存阀值一一对应,严密执行的。因此,用户在使用一般应用程序或待机的时候(例如UC浏览器),完全可以把内存管理的工作交由Android系统来完成。当然,在需要开启大型游戏的时候,杀进程还是有用的,更多空余的RAM能够提高游戏启动速度。
Flash和跑分
Android2.2并不是支持Flash的充要条件——除了Android2.2,一个支持Armv7指令集的CPU是必须的,这也是很多Android2.2机型不支持Flash的原因,所以,不要被某些参数给忽悠了。
Quadrant Advanced这个软件相信Android用户都已经非常熟悉,它能够针对一款Android的硬件从I/O,CPU,3D,2D等方面做出测试,并生成与其他机型和横向柱状图,一时成为很多Android玩家比拼硬件水准的一个标尺。然而笔者在测试过程中发现,类似的软件实际上并不够客观,优化的好坏、固件的版本等因素会很大程度左右测试结果,经过优化的Nexus S甚至能够跑到10000+(双核旗舰一般也在3000左右徘徊),该软件对于双核手机的实际性能也有些无能为力,因此建议大家客观看待这些跑分结果。
耗电和自启动
像前文笔者提到的那样,后台进程,例如微信(需要推送)或者音乐播放(需要后台运行)等应用,这些应用再被切换到后台时会自动开启一个Service服务,这些附带Service服务的应用才会消耗CPU资源以及电力。没有Service的一般应用基本是不消耗CPU资源和电力的。
很多人觉得双核CPU会更耗电,其实使用过摩托罗拉Atrix 4G的用户应该最有发言权,使用双核的Atrix 4G由于核心协同工作提高了工作效率,反而更省电,Android手机最费电还是屏幕,尽可能减少屏幕开启时间和调低屏幕亮度,是延长待机时间最有效直接的方式。
关于应用程序自启动,相信很多人都有这个疑问,“我明明关了程序,为什么过一会儿它又自动运行了?”笔者查阅了很多资料,相关资料非常少,但笔者可以确定的是,这些自动启动的服务都是插件必须、同步需要,或后台正在运行的Service对应的应用程序,有些时候后台程序并不是真的启动,而是保持了暂停状态,以便用户最快速进入,这是上面提到的Android系统的一个优点,只要启动的程序没有Service项,它们实际上都只是出于暂停状态,并不会消耗CPU资源或者电力,和这些程序较劲其实是没有任何意义的。
当然,如果真想杜绝它们自启动的话,方法还是有的,第一种是在手机待机的时候关闭网络,这样绝大部分应用程序都不会再自行启动;第二是Root后删除对应的自启动应用程序,从源头上灭掉这些程序,不过这两种方法在笔者看来绝对是弊大于利的。
App2SD和程序卸载
关于App2SD,使用PC的经验告诉用户,C盘空间越小PC速度会越慢,因此很多人开始尝试开启App2SD,甚至对存储卡分区,希望将程序转移到SD卡上面,为Android手机省出一定的空间,希望提高手机运行的速度,但这样做也有很大的弊端,第一是会导致耗电的增加,第二是部分插件失效,第三是程序运行效率下降,此外对SD卡也提出了较高的要求。
关于程序卸载,很多人买到Android手机后,会发现自己无法卸载手机中的一些程序,其实这是和固件有关系的,有些厂商或运营商会将修改版的固件刷入手机,固件中的程序已经属于系统级,自然很难删除,用户只有将自己的手机Root,然后才能进行系统级别的修改。稍不注意这点用户便会被扣费,这也是很多人购买手机时容易忽略的一个方面。
相关推荐
Android系统基于Dalvik或ART(Android RunTime)虚拟机,这两种虚拟机都对内存管理有特定的规定。由于Android设备的内存有限,理解内存机制有助于优化应用性能,防止内存溢出(Memory Leak)等问题。 首先,Android...
Android系统为开发者提供了丰富的传感器接口,使得开发者能够充分利用手机硬件资源,创建出各种创新应用。 文章首先介绍了Android系统自2007年发布以来在智能手机市场的快速发展,强调了传感器在手机应用开发中的...
不过,既然标题是“安卓kernel 内存回收机制”,那么我可以根据这个主题,详细说明安卓内核内存回收机制的知识点。 安卓操作系统是基于Linux内核构建的,Linux内核具有强大的内存管理能力,安卓系统在此基础上...
### 基于Android手机导览系统概要设计说明书知识点解析 #### 1. 引言 - **编写目的**:本文档旨在明确基于Android手机的导览系统的软件需求、规划项目进度、组织软件开发与测试工作。目标是提高景区资源利用率、...
"安卓Android大学生校园论坛交流系统源码.zip"这个标题表明这是一个基于Android平台的、专为大学生设计的校园论坛交流系统的源代码压缩包。它可能包含了一个完整的应用项目,允许学生们在移动设备上进行互动、讨论...
Android属性系统分析知识点总结: Android属性系统是Android操作系统的核心组件之一,它为系统提供了配置和...通过深入理解Android属性系统的工作机制,开发者可以更加有效地进行Android系统的定制、优化和安全加固。
为了确保安全性和防止恶意篡改,Android系统对APK进行了签名机制。"Android系统签名APK"是指使用特定的系统证书对APK进行签名,这样可以让应用获得系统的权限,执行一些常规应用无法触及的功能。 APK签名的过程主要...
在Android平台上开发一个MP3播放器涉及到多个技术层面和组件的整合。这个"android系统mp3播放er开发源码"提供了宝贵的参考资料,帮助开发者深入理解...同时,分析和调试源码也能加深对Android系统底层机制的理解。
Android系统分为应用程序层、应用程序框架层、系统库层和Linux内核层,这四层构成了Android的完整架构。 二、Android Studio与SDK Android Studio是Google官方推荐的Android开发环境,它集成了代码编辑器、调试器、...
Android Handler机制是Android系统中的一种机制,用于处理线程之间的通信和消息传递。在Android系统中,Handler机制是基于Java的线程机制来实现的。下面将对Android Handler机制进行详细的解析。 一、线程概念 在...
3. Android系统框架分析:详细解析Android系统框架,包括Linux内核、中间件、运行时环境、应用框架和应用层等。了解各个层次的功能和运作机制是进行系统改造的基础。 4. 应用开发与系统改造的关系:阐述在开发应用...
《网狐棋牌6603安卓Android手机版本游戏说明文档》是针对移动游戏开发者和学习者的重要参考资料,它涵盖了在Android平台上开发网狐棋牌6603游戏的关键技术和流程。这款文档旨在帮助开发者理解游戏的核心功能,实现...
本资源是关于"安卓Android源码——小米系统之便签应用"的压缩包,它提供了小米手机内置便签应用的源代码,这对于想要了解Android系统级应用开发,尤其是小米定制系统MIUI的开发者来说,是一份宝贵的学习资料。...
4. Android系统的安全机制 Android操作系统的安全机制包括但不限于权限管理、应用沙箱隔离、代码签名等。操作系统需要为应用提供大量权限以保证应用的丰富性,但这也导致了权限滥用的问题。 5. Android安全评估方法...
以下是对该机制中关键角色及其作用的详细说明。 **1. Looper** - **简介**:Looper负责管理特定线程内的Message Queue(消息队列)。每个线程只能有一个Looper实例。 - **功能**:Looper的主要职责是循环不断地从...
本资源“安卓Android源码——大型游戏源码android游戏源码说明.zip”提供了大型游戏的源代码,旨在帮助开发者更透彻地了解Android平台上游戏开发的内在运作机制。 首先,Android源码是Google开源的移动操作系统核心...
为了满足您的要求,如果有可能,请提供具有实际内容的文件部分,这样我才能根据那些信息详细说明Android系统原理及开发要点。 不过,尽管目前没有详细内容,我可以概述一些基础的Android系统原理及开发要点的知识点...