美国上市公司

亿元级外企IT培训企业

  • 全国服务监督电话400-827-0010
IT培训 > 学习笔记 > android架构设计 android架构图
  • android架构设计 android架构图

    发布:IT培训 来源:学习笔记 时间:2015-11-26

  • 提及“android架构设计,android架构图”,先从谷歌公开的体系结构图上开始吧,本着拿来主义的原则,直接贴图。开始就从了解体系架构入手吧。

  • 提及“android架构设计,android架构图”,先从谷歌公开的体系结构图上开始吧,本着拿来主义的原则,直接贴图。开始就从了解体系架构入手吧。

    从图上可以看出一共有四层结构,从下到上分别为:

    1-----Linux 内核层

    2-----中间件层

    3-----应用程序框架层

    4-----应用程序层

    谷歌公开的体系结构图

    下面咱们依次分层细谈吧,先把模块打散,然后再组装吧,自己画的,虽然丑点吧,毕竟是自己的,ok,就这样了,这玩意也没有必要,也不必过下美图秀秀。

    一、系统分层架构图,简化版的

    二、Linux内核层

    1--------------------

    从下到上来吧,Android 核心内核使用了Linux 2.6的内核,为了便于商用,那帮家伙将Linux中的GUN协议部分进行取代。里面集成了调用实体设备的驱动程序,用来驱动真实实体设备。并暴漏接口调用给上一层,即中间件层。

    三、中间件层

    2--------------------

    中间件层--从体系架构图中可以看出,该层主要的功能分成了两块:运行库和运行时。并封装了相应的接口调用给应用程序框架层

    =================运行库

    系统运行库层:当我们使用Android应用框架时,Android系统会通过一些C/C++库,来支持对我们使用的各个组件,使其能更好滴为开发者服务,比如里面列举一些主要的库:

    ①---Bionic系统C库-----C语言标准库,系统最底层的库,C库通过Linux系统来调用;

    ②---多媒体库(MedioFrameword)-----Android系统多媒体库,基于PacketVideo OpenCORE,该库支持多种常用的音频、视频格式的回放和录制以及一些图片,比如:MPEG4、MP3、AAC、AMR、JPG、PNG等

    ③---SGL-----2D图形引擎库

    ④---SSL-----位于TVP/IP协议与各种应用层协议之间,为数据通讯提供支持。

    ⑤---OpenGL | ES -----3D效果的支持

    ⑥---SQLite-----轻量级关系型数据库

    ⑦---Webkit-----Web浏览器引擎

    ⑧---FreeType-----位图(Bitmap) 及 矢量(Vector)

    ===============运行时

    运行时里面最重要的应该算是虚拟机吧。Dalvik是google自己设计的用于Android平台的Java虚拟机(.dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统)这是在android4.4之前的版本了。android 4.4及以后的版本,谷歌直接祭出了ART(Android Runtime),用来取代Dalvik,运行模式确实提高了不少,优化了性能和流畅性。

    比较一下二者的不同吧:

    ------Dalvik:应用每次运行的时候,字节码都需要通过即时编译器转换为机器码,这会拖累应用的运行效率。

    ------ART:应用在第一次安装的时候,字节码就会预先编译成机器码,使其成为真正的本地应用(这个过程叫做预编译[AOT,Ahead-Of-Time]),这样的话,应用的启动(首次)和执行都会变得更加快速。

    反正就是ART比Dalvik强就是了。

    四、应用框架层

    3--------------------

    应用程序框架层---封装了开发应用所需要的核心API框架,提供了丰富多彩的组件,这样简化了程序开发的架构设计,但也必须遵守其框架的开发原则,开发自主性上被限制住了。该层封装了SDK,提供了API给上一层调用使用。

    SDK中内置了一些对象,其中最重要的组件有四个:Activities、Intents、Services以及Content Providers。

    1--------------

    Activities 活动:

    一个活动就是一个用户界面。一个应用程序可以定义一个或者多个活动,每个活动都能够保存和恢复自身的状态。

    2--------------

    Intents 意向:

    Intent是描述一个特定活动的一种机制,比如“选取照片”、“拨打电话”等具体的动作。在Android机制中所有的东西都是通过Intents完成的,这样开发者有机会替代或重用大量的组件。

    比如有一个“发送邮件”的Intent,当你应用程序需要发送邮件时可以激活这个Intent。开发者甚至可以重新编写一个新的邮件应用程序,并注册为活动以处理这个Intent代替标准的邮件应用程序。

    那么,其他的应用程序就可以使用新编写应用程序来发送邮件了。

    3--------------

    Services 服务:

    一个服务Service就是运行在后台,没有用户直接交互的任务(与Unix daemon类似)。

    比如要做一个音乐播放器,可能会被另一个活动激活,但音乐是需要作为背景音乐播放,那么这种程序就可以考虑作为一种服务Service。然后别的活动可以来操作这个播放器。Android中内置了很多服务,可以方便滴使用API进行访问。

    4--------------

    Content Providers 内容提供者:

    一个内容提供者content provider就是由自定义的API封装读写操作的一套数据。Content Provider是不同应用程序之间共享全局数据最好的方式。比如,Google提供了联系人的Content Provider,包括姓名、地址、电话等所有信息在内的联系方式能够被所有应用程序使用。

    五、应用程序

    4--------------------

    应用程序层,开发丰富多彩的应用程序。

    先总结成这个样子吧,自己也是初学,慢慢加深理解吧!

  • 上一篇:android学习视频链接推荐 android学习视频下载

    下一篇:安卓编程入门教程视频 安卓编程入门教程从入门到精通

相关资讯
2001-2016 达内国际公司(TARENA INTERNATIONAL,INC.) 版权所有 京ICP证08000853号-56