必威体育Betway必威体育官网
当前位置:首页 > IT技术

Android平台架构简介

时间:2019-07-18 17:41:06来源:IT技术作者:seo实验室小编阅读:79次「手机版」
 

android平台

Android系统介绍

Android系统的底层建立在Linux系统之上,该平台Linux内核层、系统运行库层、应用框架层及应用层四层组成,它采用一种被称为软件叠层(Software Stack)的方式进行构建。这各软件叠层结构使得层与层之间相互分离,明确各层的分工。这种分工保证了层与层之间的低耦合,当下层的层内或层下发生变化时,上层应用程序无须任何改变。以下就对不同层分别加以介绍:


Linux内核层

Android系统建立在Linux 2.6之上,这一层为Android设备的各种硬件提供了底层的驱动(Linux内核提供了安全性、内存管理、进程管理、网络协议和驱动模型等核心系统服务)。

Linux内核也是系统硬件和软件叠层之间的抽象层


系统运行库层

这一层通过一些C/C++库来为Android系统提供了主要的特性支持。此层中还有Android运行时库,它主要提供一些核心库,来允许开发者使用Java语言来编写Android应用。因此可以将此层看作由提供Android系统特性的函数库Android运行时库两部分组成,以下就对其进行分别介绍:

提供Android系统特性的函数库

Android包含一组C/C++库,这些库为Android系统提供了主要的特性支持。一般说来,Android应用开发者不能直接调用这套C/C++库集,但可以通过其上的应用框架层来调用这些库。

常用的一些核心库有:系统C库、媒体库、Surface Manager、LibWebCore、SGL、3D libraries、FreeType及sqlite等。


Android运行时库

Android运行时库由Android核心库集Dalvik虚拟机两部分组成。Android核心库集,能够允许开发者使用Java语言来编写Android应用;而Dalvik虚拟机则使得每一个Android应用都能运行在独立的进程中,并且拥有一个自己的Dalvik虚拟机实例

Android虚拟机与java虚拟机
  1. Dalvik并未遵守JVM规范,两者也不兼容
  2. JVM虚拟机运行的是Java字节码(通常是.class文件),但Dalvik运行的是其专有的dex(Dalvik Executable)文件。
  3. JVM直接从.class文件或JAR包中加载字节码然后运行,而Dalvik则需要通过DX工具将应用程序的所有.class文件编译成.dex文件,然后再运行该.dex文件。

Dalvik虚拟机依赖于Linux内核提供的核心功能,如线程和底层内存管理。Dalvik虚拟机非常适合在移动终端上使用,相对于在PC或服务器上运行的虚拟机而言,Dalvik虚拟机不需要很快的cpu计算速度和大量的内存空间,它主要有如下两个特点:

  1. 运行专有的.dex文件。专有的.dex文件减少了.class文件中的冗余信息,而且会把所有.class文件整合到一个文件中,从而提高运行性能;而且DX工具还会对.dex文件进行一些性能的优化
  2. 基于寄存器实现。大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。一般来说,基于寄存器的虚拟机具有更好的性能表现,但在硬件通用上略差

应用框架层

Android应用程序框架层提供了大量的API供开发者使用,在开发Android应用程序时,就是面向底层的应用程序框架进行的

应用程序框架层除可作为应用程序开发的基础之外,也是软件复用的重要手段任何一个应用程序都可发布它的功能模块——只要发布时遵守了框架的约定,那么其它应用程序也可使用这个功能模块。


应用层

所有安装在手机上的应用程序都属于这一层。

Android系统将会包含系列的核心应用程序,这些程序包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人等。这些应用程序都是使用Java编写的。


android software stack


参考《疯狂Android讲义》《第一行代码——Android》

相关阅读

Android中文语音合成(TTS)各家引擎对比

Android中文语音合成(TTS)各家引擎对比Yao.GUET 2012-02-03,转载请注明出处:http://blog.csdn.net/Yao_GUETAndroid系统从1.6版本开

Android自定义View:MeasureSpec的真正意义与View大小控

自定义View是Android开发中最普通的需求,灵活控制View的尺寸是开发者面临的第一个问题,比如,为什么明明使用的是WRAP_CONTENT却跟MAT

Mac 上 android 反编译apk完整流程

总结的反编译流程,查看如下流程: 工具介绍来看看呗(3个) apktool 将apk安装包解析成能看懂的资源文件dex2jar 将classes.dex打成jar

Android面试题总结【完整详细版本"一"】(含答案)

1、四大组件是什么? Activity【活动】:用于表现功能。 Service【服务】:后台运行服务,不提供界面呈现。 BroadcastReceiver【广播

socket编程简介(强烈推荐)

前言 本篇文章摘抄于网络,放在自己的博客只是为了方便查看和记忆。现在CSDN已经有手

分享到:

栏目导航

推荐阅读

热门阅读