分享

主流Android架构有哪些?安卓开发架构解析!

 码农9527 2021-04-14

  安卓是Google在Linux平台上开发的一个开放源码操作系统。其中包含了操作系统、用户界面和应用程序——手机上运行的所有软件都是必需的,并且没有任何以前阻碍手机行业创新的特殊障碍。安卓系统使用了WebKit浏览器引擎,拥有触摸屏、高级图形显示和上网功能,用户可以在手机上查看电子邮件,搜索网站,观看视频节目,等等;与iPhone等其他手机相比,安卓系统更加强调搜索功能,其界面更加强大,可以说是一个集成了所有Web应用的单一平台。下面是Android的系统架构。

c

    android系统框架设计

    与操作系统一样,android也是采用分层结构的体系结构。android在结构上分为四层,由高层到低层分别为应用层、应用框架层、系统运行库层和操作系统内核层。

    1.应用程序

    安卓和其他一些核心的软件包一起发布,这些软件包包括email客户端、短信程序、日历、地图、浏览器、联系人管理程序等等。使用JAVA语言编写了所有应用程序。

    安卓的系统结构

    2.应用程序框架。

    开发者还可以完全访问核心应用所使用的API框架。这个应用程序的体系结构设计简化了组件的重用;任何一个应用程序都可以发布功能块,而其他任何应用程序都可以使用它发布的功能块(不会超过框架的安全限制)。类似地,应用程序复用机制让用户能够方便地替换程序组件。

    每个应用程序背后隐藏着一系列服务和系统,包括;

    *可用于构建应用程序的丰富和可扩展视图(Views),包括列表(lists)、网格(grids)、文本框(textboxes)、按钮(buttons),甚至是可嵌入web浏览器。

    *ContentProviders(ContentProviders)允许应用程序访问其他应用程序的数据(例如联系人数据库),或共享其自身的数据。

    *ResourceManager(ResourceManager)用于访问非代码资源,例如本地字符串、图形和布局文件(layoutfiles)。

    公告管理器(NotificationManager)允许应用程序将定制的提示信息显示在状态栏上。

    ActivityManager(ActivityManager)用于管理应用程序的生命周期,并提供常用的导航和返回功能。

    要了解更多细节以及如何从头编写应用程序,请参考如何编写Android应用程序。

    3.系统运行库。

    1)程序库

    Andriod包含一些C/C++库,它们可以为Andriod系统的不同组件所用。他们通过Android应用框架来为开发者服务。有些核心库如下:

    SystemCustomer-从BSD继承来的标准C系统函数库(libc),它是专门为基于embeddedlinux的设备定制的。

    *基于PacketVideoOpenCORE的介质库;该库支持多种常用的音频、视频格式的播放和录制,同时还支持静态图像文件。本发明采用MPEG4,H.264,MP3,AAC,AMR,JPG,PNG的编码格式。

    *SurfaceManager-显示子系统的管理,提供了2D和3D图层对多个应用程序的无缝融合。

    *LibWebCore-一款最新的web浏览器引擎,支持Android浏览器和嵌入式web视图。

    *SGL-底层的二维图形引擎。

    *3Dlibraries-基于OpenGLES1.0APIs实现;这个库可以使用(如果可用的话)硬件3D加速,或者高度优化的3D软加速。

    *FreeType-位图(bitmap)和向量(vector)字体显示。

    *SQLite-一种轻薄、关系数据库引擎,可供所有应用程序使用。

    2)Android运行库

    安卓包含一个核心库,它提供JAVA编程语言核心库的大部分功能。

    每个Android应用程序都在其自己的进程中运行,并且都有Dalvik虚拟机的独立实例。达维克被设计为一台设备能够同时有效地运行多个虚拟系统。dex的Dalvik可执行文件,用于Dalvik虚拟机执行(.dex),格式文件为小内存使用做了优化。与此同时,虚拟机是基于寄存器的,所有类都通过JAVA编译器编译,然后通过SDK中的"dx"工具转换为.dex格式,由虚拟机执行。

    虚拟机Dalvik依赖于linux内核的某些功能,如线程机制和底层内存管理机制。

    4.Linux内核

    安卓的核心系统服务是基于Linux2.6内核的,比如安全、内存管理、进程管理、网络协议栈以及驱动模式。在硬件和软件栈之间,Linux内核也是一个抽象层。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多