Android安全模型解析
1. Android架构概述
Android架构自下而上主要包含以下几个关键层次,各层次相互协作,共同支撑起整个Android系统的运行:
| 层次 | 描述 |
| — | — |
| Linux内核 | 为硬件、网络、文件系统访问和进程管理提供驱动,与普通Linux内核存在差异,具备低内存杀手、匿名共享内存等特殊特性。 |
| 原生用户空间 | 包含init二进制文件、多个原生守护进程和数百个原生库,init和启动脚本与主流Linux有所不同。 |
| Dalvik虚拟机 | 用于执行Java代码,采用基于寄存器的架构,与基于栈的Oracle JVM架构不同,输入格式为Dalvik可执行文件(DEX)。 |
| Java运行时库 | 源自Apache Harmony项目,核心库大多用Java开发,部分依赖原生代码,通过JNI实现交互。 |
| 系统服务 | 实现了Android的大部分基础功能,如显示、电话和网络连接等,多数用Java实现,部分用原生代码编写。 |
下面通过一个简单的Java方法示例,展示Dalvik和JVM在处理相同逻辑时的差异:
public static int add(int i, int j) {
return i + j;
}
编译后的字节码如下:
| 虚拟机类型 | 字节码 |
| — | — |
| JVM |
public static int add(int, int);
C
超级会员免费看
订阅专栏 解锁全文
3919

被折叠的 条评论
为什么被折叠?



