android的架构,android app架构

Android 系统概览

本篇内容主要目的在从整体上了解Android 庞大的系统架构,根据系统架构中的不同模块和分层找到和梳理一条学习路径,这样能更好的切入到不同的模块学习,直到最后全部打通。

为横峰等地区用户提供了全套网页设计制作服务,及横峰网站建设行业解决方案。主营业务为成都做网站、网站建设、横峰网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

接下来我们从两个角度来分析

下面这张图是Android官方提供的一张Android系统的预览图。

从上面这个图中我们可以知道,Android系统一共有5部分组成,他们分别是

从纵向层级架构的角度来看,我们了解了android系统经典5层结构,他们如垒砖一般纵向堆叠在一起。但是其实每一层都包含了大量的子模块子系统,并不能体现出Android整个系统的内部架构、运行机理,以及各个模块之间是如何衔接与配合工作的。接下来借鉴了gityuan总结的一张系统进程图,从系统进程的角度来看Android系统的工作原理。

Loader层: 引导kernel启动

Kernel层: Android内核空间

Native层: 进入用户空间

Framework层: 给app层提供api以及系统服务,

App层: 各种各样的应用程序apk

参考文献:

android的系统架构

android系统架构分从下往上为linux 内核层、运行库、应用程序框架层、和应用程序层

linuxkernel:负责硬件的驱动程序、网络、电源、系统安全以及内存管理等功能。

libraries和 androidruntime:libraries:即c/c++函数库部分,大多数都是开放源代码的函数库,例如webkit,该函数库负责 android网页浏览器的运行,例如标准的c函数库libc、openssl、sqlite等,当然也包括支持游戏开发2dsgl和 3dopengles,在多媒体方面有mediaframework框架来支持各种影音和图形文件的播放与显示,例如mpeg4、h.264、mp3、 aac、amr、jpg和png等众多的多媒体文件格式。android的runtime负责解释和执行生成的dalvik格式的字节码。

applicationframework(应用软件架构),java应用程序开发人员主要是使用该层封装好的api进行快速开发。

applications:该层是java的应用程序层,android内置的googlemaps、e-mail、即时通信工具、浏览器、mp3播放 器等处于该层,java开发人员开发的程序也处于该层,而且和内置的应用程序具有平等的位置,可以调用内置的应用程序,也可以替换内置的应用程序。

上面的四个层次,下层为上层服务,上层需要下层的支持,调用下层的服务,这种严格分层的方式带来的极大的稳定性、灵活性和可扩展性,使得不同层的开发人员可以按照规范专心特定层的开发。

android应用程序使用框架的api并在框架下运行,这就带来了程序开发的高度一致性,另一方面也告诉我们,要想写出优质高效的程序就必须对整个 applicationframework进行非常深入的理解。精通applicationframework,你就可以真正的理解android的设计 和运行机制,也就更能够驾驭整个应用层的开发。

一般的android开发都用到了系统架构哪些层?

开发一个程序,android的系统框架是层层相扣,不能分开的。

应用程序层:

这个层主要指的就是用java语言编写的运行在虚拟机上的程序,Google在最开始时就 在android系统中捆绑了一些核心的应用(核心应用的编写必须使用应用层序框架层的API框架),例如你android手机中SMS发送短消息的程序,通讯录等等。

应用程序框架层:

指的就是开发时所需要的API框架,开发人员是在遵守该框架的原则上,调用他们的,开发自己所需要的程序。

系统运行库层:

用于支持应用框架层的各个组件的。就是说当开发人员使用android应用框架层时,android系统会通过一些C/C++库来支持对我们使用的各个组件,使其能更好地为开发者服务。

linux核心层:

android的核心系统服务如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于Linux2.6内核,Linux内核同时也作为硬件和软件栈之间的抽象层。

因此,你开发的程序是运行在应用程序层,开发中写代码调用的包,是基于应用框架层,而在应用框架中的各个组件是需要系统运行库的支持的,例如,你要登陆查看的信息就必须访问到SQLite数据库,SQLite就位于系统运行库,再有,你登入要输入信息,肯定需要键盘驱动的支持,而各种驱动是依赖Linux内核的。

Android 的ARM架构和X86架构

Android开发中,在打包发布应用时会选择应用适配的cpu架构平台,在引用第三方库时也遇到根据不同cpu架构引入相应的so包。Android主要包括一下cpu架构:

在Android系统上,每一个CPU架构对应一个ABI:

ABI是Application Binary Interface的缩写,常表示两个程序模块之间的接口,且其中一个模块常为机器码级别的library或操作系统。它定义了函数库的调用、应用的二进制文件(尤其是.so)如何运行在相应的系统平台上等细节。其中mips及mips64极少用于手机,出发点是高性能,主要用于路由器、猫。

从CPU发明到现在,有非常多种架构,从我们熟悉的X86,ARM,到不太熟悉的MIPS,IA64,它们之间的差距都非常大。但是如果从最基本的逻辑角度来分类的话,它们可以被分为两大类,即所谓的“复杂指令集(CISC)”与“精简指令集(RISC)”系统。

Intel和ARM处理器的第一个区别是,前者使用复杂指令集(CISC),后者使用精简指令集(RISC)。属于这两种类中的各种架构之间最大的区别,在于它们的设计者考虑问题方式的不同。

ARM架构是一个32位精简指令集RISC(Reduced Instruction Set Computing)处理器架构,其广泛地使用在许多嵌入式系统设计。但在其他领域上也有很多作为,由于节能的特点,ARM处理器非常适用于移动通信领域,匹配其主要设计目标为低成本、高性能、低耗电的特性。

ARM的优势不在于性能强大而在于效率,ARM采用RISC流水线指令集,在完成综合性工作方面根本就处于劣势,而在一些任务相对固定的应用场合其优势就能发挥得淋漓尽致。ARM结构的电脑是通过专用的数据接口使CPU与数据存储设备进行连接,所以ARM的存储、内存等性能扩展难以进行(一般在产品设计时已经定好其内存及数据存储的容量),所以采用ARM结构的系统,一般不考虑扩展。基本奉行“够用就好”的原则。

x86 架构是一个复杂指令集CISC(Complex Instruction Set Computer)处理器架构。X86结构的电脑无论如何都比ARM结构的系统在性能方面要快得多、强得多。X86的CPU随便就是1G以上、双核、四核。X86结构的电脑采用“桥”的方式与扩展设备(如:硬盘、内存等)进行连接,而且x86结构的电脑出现了近30年,其配套扩展的设备种类多、价格也比较便宜,所以x86结构的电脑能很容易进行性能扩展,如增加内存、硬盘等。

名称栏目:android的架构,android app架构
当前地址:https://www.cdcxhl.com/article48/dsdojep.html

成都网站建设公司_创新互联,为您提供做网站建站公司搜索引擎优化服务器托管虚拟主机标签优化

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

手机网站建设