Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik,并在Dalvik虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上。
Android主要应用于ARM平台,但不仅限于ARM,通过编译控制,在X86、MAC等体系结构的机器上同样可以运行。

android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿色部分为C/C++语言编写的程序库,红色的代码内核(linux内核+driver)。在Application Framework之下,由C/C++的程序库组成,通过JNI完成从JAVA到C的调用。

  Android平台提供了四个不同的Java组件编程接口:Camera、MediaRecorder、MediaPlayer和Surface。这四个编程接口,几乎可以实现Android系统所有多媒体功能。

媒体部分:
        Android.Hardware.Camera:该Java类提供了对摄像机操作的编程接口。
        Android.Media.MediaRecorder:该Java类提供了在Android的界面上,Audio和Video两个应用程序都是调用MediaRecorder实现的。
        Android.Media.MediaPlayer:该Java类提供了在Android的界面上播放Audio和Video两个应用程序的编程接口。
        Android.View.Surface:被screen compositor管理的raw buffer句柄。

openMAX

这些层级之间可以相互组合实现,也可以单独实现某个层级,比如对于有些芯片厂商来说,他完全可以自己实现一套编解码硬件,然后在此基础上实现OpenMAX的IL层,这样使得基于该厂商硬件以及相关中间件开发的应用程序可以很快的移植到其它符合OpenMAX IL的软硬件设备上,同时其它平台的多媒体应用也可以无缝移植到该厂商的软硬件平台上面,而我们嵌入式软件岗在实际开发当中往往会去实现一个独立的OpenMAX IL层来承接编解码器与应用开发的桥梁。
 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐