最近开始研究android,看到了android软件栈方面的知识,参考网上文章,
android软件栈的示意图如下:
android最核心的部分为Linux内核,主要跟手机的硬件进行交互,比如我们手机常用的wifi功能,Linux内核负责跟手机的硬件的wifi模块通信;手机的蓝牙功能,Linux负责跟手机的硬件蓝牙模块通信,有比如我们常用的手机相机功能,键盘功能,音乐播放器等,总的来说就是Linux主要负责跟底层硬件的通信,相对于应用来说,是最低层的。
Linux内核之上的一层:就是C/++库,比如我们做开发时用到的数据库SQLLITE,画图时用的OpenGL,还有浏览器webkit,以及我们做应用时字体样式FREETYPE,大多数应用程序框架都是通过Dalvik VM访问这些核心库。
android运行时:Android运行时可以让一个Android手机从本质上与一个移动Linux实现区分开来。由于Android运行时包含了核心库中Dalvik虚拟机,因此,它是向应用程序提供动力的引擎,它和库一起形成了应用程序框架的基础。
应用程序框架:提供用来创建应用程序类,管理用户界面和应用程序资源。
上层应用程序:包括所有的应用程序,原生的和第三方的,比如我们常用的微信,QQ都属于。使用应用程序框架来构建上层应用,应用层运行在android运行时,