欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

1.Android-入门之系统架构介绍

程序员文章站 2022-11-07 13:10:49
1.Android 系统架构 android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层,如下图所示: 2.application应用程序层 该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用Java语言 ......

1.android 系统架构

android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层,如下图所示:

 1.Android-入门之系统架构介绍

 

2.application应用程序层

      该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者可以利用java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处

 

3.application framework应用程序框架层

该层是android应用开发的基础,提供api给写application应用程序的人调用,常用到的类库如下:

  • 活动管理器(activity manager):    表示当前显示的界面窗口,用来管理各个应用程序生命周期,为所有程序的窗口提供交互的接口.
  • 窗口管理器(window manager):  对窗口程序进行管理
  • 内容提供者(content provider):   提供一个应用程序访问另一个应用程序数据的功能,实现应用间共享数据
  • 视图系统(view system):   创建应用所需的组件
  • 包管理器(package manager):  管理应用安装、卸载,应用版本号、版本名,查询相关权限等功能
  • 电话管理器(telephony manager):  提供设备电话相关功能
  • 资源管理器(resource manager):  提供各种非代码资源供应用程序使用,如字符串,颜色,图片,音频等
  • 位置管理器(location manager):  提供位置服务
  • 通知管理器(notification manager):  使应用可以在系统状态栏中显示通知消息
  • xmpp服务 :  google在线即时交流软件中一个通用的进程,提供后台推送服务

而四大组件又分为:

  • activity活动 :  当前显示的界面窗口, 一个activity通常就是一个单独的屏幕,当然也可以有多个activity组成.然后上面的控件也可以获取用户事件,来做出相应操作.
  • service服务 :  用于后台完成用户操作,主要用于周期性的后台监控和后台服务,比如在后台下载东西
  • broadcast receiver广播接收器 :  用来接收各处app发出的广播,但是多数的广播是系统发起的.比如来电来信等.
  • content provider内容提供器 :  通过它可以将自己的数据让所有的应用程序访问到,比如访问电话簿联系人,主要用来共享数据

 

4.libraries系统库

系统库大部分由c/c++编写,提供的功能给android应用程序框架来调用

 

5. android runtime 运行库

包含了core librarydalvik虚拟机.

core library: 提供java编程语言核心库的大多数功能

dalvik虚拟机(dvm): 每个java程序都离不开java虚拟机, android系统也实现了自己的一个类似jvm但是更适合嵌入式平台的虚拟机——dalvik。dalvik的功能等同于jvm,为android平台上的java代码提供了运行环境.唯一不同的是dvm执行的是.dex文件,jvm执行的是.class文件.

  过程: android程序编译完之后生产.class文件,然后,dex工具会把.class文件处理成.dex文件,然后把资源文件和.dex文件等打包成.apk文件,如下图所示:

 1.Android-入门之系统架构介绍

dvm的优点在于:基于寄存器存取,而非虚拟栈,可以根据硬件实现最大的优化,比较适合移动设备。

 

5.1 android 4.4开始, dvm被替换

由于dvm安装后的app是字节码,所以每次打开app的时候,都会去把字节码翻译为机器码,导致app运行效率降低,用户体验很差.

  所以在 android 4.4开始,art(android runtime)虚拟机发布,用来替换 dalvik 虚拟机,android 4.4 默认采用 dvm,但可以选择art(如下图所示)。在 android 5.0 开始默认使用 art,dvm 从此被淘汰,并且art 支持 64 位并兼容 32 位 cpu,而dvm只支持32 位 cpu.

 1.Android-入门之系统架构介绍

art优点:安装应用程序时会进行一次 aot(ahead of time compilation, 预编译),将字节码编译成机器码并存储在本地,这样app每次运行时就不需要执行编译了,app运行效率大大提升,耗电量也会降低.

art缺点: 应用程序的安装时间变长,并且安装后的存储空间占用多一些(存储有机器码的原因)

6.linux内核

用来运行应用程序,并包含各种驱动,向应用层提供调用。

 

未完待续.