Android安全机制解析与应用实践 Android 基础

Android由底层往上分为4层:linux内核层(Linux Kernel),系统运行时库层(Libraries和Android Runtime),应用程序框架层(Framework),应用程序层(Application)

架构图
Android安全机制解析与应用实践 Android 基础_第1张图片
linux内核层(Linux Kernel)

内核驱动和用户软件之间还存在硬件抽象层(HAL),他是对硬件的具体实现加以抽象。

系统运行库层由系统类库和Android运行时构成,为Android各个组件提供服务。

Android安全机制解析与应用实践 Android 基础_第2张图片
系统类库

除了上述类库,常用的还有Android NDK,即Android原生库。NDK为开发者提供了直接使用Android资源,并采用c/c++编写的接口,因此,第三方应用程序可以不依赖Dalvik虚拟机进行开发。

NDK缺点:原生库无法访问应用框架层API,兼容性无法保证,且用非安全语言c/c++编写,容易产生系统漏铜

Android运行时包括核心库和Dalvik虚拟机,核心库提供Android核心api。Dalvik虚拟机是基于Apache的Java虚拟机,并被改进以适应低内存,低处理速度的移动设备。

Dalvik和Java虚拟机的区别:

(1)Dalvik基于寄存器,Java虚拟机基于栈。基于寄存器的实现虽然更多依赖于CPU结构,硬件通用性较差,但其使用等长指令时,在效率速度上优于JVM。

(2)Dalvik经过优化,允许在有限的内存里运行多个高效的虚拟机的实例,并且每个Dalvik应用作为一个独立的Linux进程执行,都拥有一个独立的Dalvik虚拟机。

(3)Dalvik虚拟机的Dex文件还可以进一步优化,提高运行性能。

应用程序框架层提供开发Android程序所需的一系列类库,使开发人员快速开发程序,方便重用组件,以及个性化扩展。


Android安全机制解析与应用实践 Android 基础_第3张图片
应用程序框架层

应用层是各类与用户直接交互的程序。

Android系统的启动操作流程由Linux系统启动Android应用系统启动组成。

(1)Linux系统启动:系统上电和启动Rom,Bootloader引导程序,Linux内核启动,init初始化系统服务

(2)Android应用系统启动:Linux内核启动完成后,init进程启动Android应用系统,init进程创建Android系统中的重要进程,如Android系统本地服务(Native Service)和Zygote进程,其中Zygote进程和其子进程Android系统服务(System Service),是Android系统的基础,当Zygote进程和System Service启动完成后,开始启动主界面(Home),主界面启动完成后,Android系统应用程序启动才算完成。


Android安全机制解析与应用实践 Android 基础_第4张图片
Android系统应用启动流程

你可能感兴趣的:(Android安全机制解析与应用实践 Android 基础)