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

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

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)

相关推荐

  • android基础入门教程!一次关于JVM的面试经历,实战篇

    前言 众所周知,Android是一个基于Linux实现的操作系统.但对于Linux内核来说,Android也仅仅只是一个运行在内核之上的应用程序,与其他运行在内核之上的应用程序没有任何区别. 所以An ...

  • 安卓开发用什么语言?Android架构师教你如何突破瓶颈,含泪整理面经

    前言 随着移动网络的不断升级,客户端的网络传输由3G进化到Wifi.4G.5G,且Wifi场景越来越多.虽然网络环境在变好,但也对网络的应用提出了更高的要求,会发现很多大厂都十分重视网络指标,如果技术 ...

  • Android开发架构设计演变

    code小生,一个专注大前端领域的技术平台 每天 8.40 推送技术文章 软件架构设计是个不老的话题,随着业务驱动,技术展现形式随之变化,从当初的"堆"模式开发到后来有点模型的形式 ...

  • 【项目纪实】某投资开发公司组织架构优化与人力资源开发咨询项目纪实

     客户行业  投资公司  问题类型  组织结构与人力资源开发 [客户评价] 怎样有效发挥公司现有的资源优势,是我一直很困惑的问题.华恒智信专家团队提出的组织结构优化与员工能力提升双管齐下的解决方案,为 ...

  • RESTful 架构以及 RESTful API开发

    时间主题11.06(周二)20:00 讲师养成之吸睛PPT的写成11.07(周三)20:00RESTful架构及RESTful API开发 在周三的测试运维试听课程中,芒果给大家介绍了RESTful架 ...

  • 我在架构设计和代码开发中的一些常用原则

    不管我一生中取得了多大的成功,其主要原因都不是我知道多少事情,而是我知道在无知的情况下自己应该怎么做.我一生中学到的最重要的东西是一种以原则为基础的生活方式,是它帮助我发现真相是什么,并据此如何行动. ...

  • 汽车开发架构模块化的重要性深入探讨

    汽车市场的不断增长还伴随着消费者的成熟,而消费者的需求反而变得越来越高.最突出的变化之一是缩短了产品生命周期(PLC),并且需要有更多种类的产品来满足不同的消费群体.此外,电气化,共享出行,自动驾驶和 ...

  • 直播软件搭建,直播软件的基本开发架构

    直播行业的热度持续吸引到加入得人越来越多,直播软件搭建这个词的热度也一直居高不下,仅仅是借助直播进行本身行业的宣传室个不错的选择,现在直播越来越多的是扮演一个辅助,帮助其他行业的发展,直播与其他行业结 ...

  • c/s架构提升企业资源开发管理的灵活度

    如今企业资源管理已成为企业信息化最难开发维护部分,面对更加复杂企业资源环境的出现和企业业务增长应该如何管理维护一个安全高效的管理更简单的环境,基于这些企业运用企业需要加强维护开发工作.C/S架构早期企 ...

  • 基于领域驱动设计(DDD)超轻量级快速开发架构

    smartadmin.core.urf 这个项目是基于asp.net core 3.1(最新)基础上参照领域驱动设计(DDD)的理念,并参考目前最为了流行的abp架构开发的一套轻量级的快速开发web ...