Android架构分为4层,分别为
(1)应用程序:使用java编写
(2)应用程序框架:
活动管理器:用来管理应用程序生命周期并提供常用的导航回退功能
资源管理器:提供非代码资源的访问,如本地字符串、图形和布局文件
内容提供器:用来存放和获取数据并使用这些数据可以被所有应用程序访问
XMPP服务器:基于XML的网络实时通讯协议
(3)系统运行库+Android运行时
系统运行库:android包括一些c/c++库,这些库能被android系统中的不同的组件使用,例如libc是一个从BSD
继承来的标准c系统函数库;webkit为Web浏览器引擎,支持Android浏览器(苹果Safari的引擎也是webkit)。
SQLite为功能强劲的轻量级关系数据库引擎(iOS也是采用的该数据库引擎)。
Android运行时:包括核心库(基本类库,例如data structure,network,file system等),很多实现代码都来自Apache Harmony项目,主要目的时保证虚拟机的类库能够与Java SE类库最大程度的兼容)与Dalvik虚拟机(用于运行dex:dalvik executable格式二进制可执行文件,该虚拟机较之java虚拟机的最大区别是Dalvik基于寄存器)
(4)linux内核:基于linux 2.6内核
总的来说,如果要深层次挖掘Android的漏洞就要明白linux内核安全,如果要挖身深层次挖掘iOS的漏洞就要了解Mac内核安全(BSD内核安全)。