Android是一种基于Linux自由、开源的操作系统。主要用于智能手机、平板电脑等移动设备,由Google开发公司和开放手机联盟。Android系统架构可分为应用程序层、应用程序框架层、系统运行库层和内核层,如图1所示。
图1 Android系统结构
Android应用层允许开发者在不修改底层代码的情况下扩展设备的功能,Android应用程序框架层为开发应用程序框架层API来访问Android的设备。
Android 应用和Android 框架都用 Java 语言开发并在 中运行DalvikVM 中运行。DalvikVM主要功能是为操作系统底层提供高效的抽象层。DalvikVM基于寄存器的虚拟机可以解释执行情况Dalvik可执行格式DEX的字节码,Android 应用和Android 框架都用 Java 语言开发并在 中运行DalvikVM 中运行。DalvikVM主要功能是为操作系统底层提供高效的抽象层。DalvikVM基于寄存器的虚拟机可以解释执行情况Dalvik可执行格式DEX的字节码,
Android 将安全设计贯穿系统架构的各个层次,涵盖系统核心、虚拟机、应用程序框架层和应用层,努力保护用户的数据、应用程序和设备的安全。
1. Android过程沙箱隔离机制
工艺沙箱隔离机制,使Android应用程序在安装过程中被赋予独特的用户标识(UID),并永久保持。应用程序及其操作Dalvik虚拟机运行在独立的Linux与其他应用程序完全隔离的过程空间,如图2所示。
图2 Android过程沙箱隔离机制
在特殊情况下,过程之间也可以有相互信任。例如,通过同一开发人员或同一开发机构的应用程序Android提供的共享UID(Shared UserId)该机制使具有信任关系的应用程序能够在同一过程空间中运行。
2. 应用程序签名机制
规定 APK 文件必须由开发者数字签名,以识别应用程序作者与应用程序之间的信任关系。安装应用程序APK首先检查系统安装程序APK安装前是否签名。当应用程序升级时,需要检查新应用程序的数字签名是否与已安装的应用程序相同,否则将被视为新应用程序。Android 开发人员可以通过不同的签名将安装包命名为相同的名称,并确保不同的安装包不被更换,并防止恶意软件更换安装应用程序。
3. 权限声明机制
如果您想在对象上操作,您需要绑定该对象的权限和操作。不同用程序行使权限的认证 *** 也不同,Normal可使用等级申请,Dangerous用户在需要安装时确认等级,Signature和SignatureOrSystem系统用户必须使用级别。
4. 工艺通信机制
基于共享内存Binder 实现,提供轻量级远程过程调用(RPC)。用接口描述语言(AIDL)定义接口和交换数据的类型,确保过程中通信的数据不会溢出,如图3所示。
图3 工艺通信机制
5. 内存管理机制
基于Linux设计实现了独特的低内存管理机制LMK,对过程的重要性进行分级和分组,当内存不足时,自动清理级别过程占用的内存空间。同时,引入 Ashmem 内存机制,使Android有能力清理不再使用共享内存区域。
正是因为Android采用多层架构,既保护了信息安全,又保证了开放平台的灵活性。