Android操作系统的架构设计分析
程序员文章站
2023-02-02 11:49:38
之前一直在android应用层上做工作,最近开始研究android平台上的东东了,主要是在android frameworks层和系统库层进行研究。以下是我自己的理解,领悟...
之前一直在android应用层上做工作,最近开始研究android平台上的东东了,主要是在android frameworks层和系统库层进行研究。以下是我自己的理解,领悟,希望与大家一块分享。
android系统架构分为linux内核驱动、c/c ++框架、java框架、java应用程序。
android应用层:
android应用程序需要java框架支持。主要是针对手机用户的。android应用层都是由java代码写的,运行在虚拟机中。虚拟机在android平台中扮演着很重要的角色。虚拟机在执行java类的过程中,如果java类需要与c/c++组件沟通时,虚拟机会载入c/c++组件,然后让java函数顺利的调用到c/c++组件的函数。java与c/c++能通过标准的jni界面相互沟通。
注:java类是在虚拟机上运行的,c/c++不是在虚拟机上执行的。那么如何加载c/c++组件函数的呢?
答案是:通过system.loadlibrary(*.so的档案名);入口函数是jni_onload();
frameworks框架层(应用框架层):
java框架就是由c/c++库包装成为了一个jni。简称java native interface,即java本地接口。在应用层和系统库层之间起了一个桥梁的作用。主要是针对手机开发商。
c/c++框架(系统库):
具体实现java框架功能。java框架中的native方法都是由c/c++来完成的。
android驱动底层(内核层):
最后驱动硬件完成功能。
系统架构图如下: