Android是一款基于Linux内核的,面对移动终端的操作系统。为适配移动终端,谷歌特意做了优化与设计,使其进程调度和资源管理与其他Linux有明显区别。
1,application Framework
application Framework把操作系统封装了起来。对于开发者而已,所有APP都是运行在application Framework之上的,并不需要关心底层的情况。
而application Framework层为应用开发者提供了丰富的接口,例如activity manager,notification manager等等。而在application Framework之上以activity为一个单位,每个activity对应一个视图,而应用都被打包成apk,由Dalvik VM解释执行。
2,Dalvik VM
Dalvik虚拟机采用寄存器架构而不是JVM的栈结构。主要用于解释apk。但是Java程序编译后的class不能直接被Dalvik解释执行。所以里面要借用媒介dx工具。
而每一个APP都有每一个Dalvik来执行,通过这种方式,每个APP的资源被完全屏蔽,互不干扰。
Android内存回收机制
当安卓程序退出的时候,并不清理其所占用的内存,Linux内核进程也相应的继续存在,所谓“退出但不关闭”。从而使得用户调用程序时能在第一时间得到响应。当系统内存不足时,系统将激活内存回收机制。然后这个回收机制会按照优先级来回收程序。
foreground