RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:9:30-18:00
你可能遇到了下面的问题
关闭右侧工具栏

技术支持

谷歌推广 > 技术支持 > 推广优化 >

Android系统架构

  • 作者:谷歌推广
  • 发表时间:2020-01-08 17:00
  • 来源:迅龙网络

Native层包括init、Audio系统(包括AudioTrack、AudioFlinger和AudioPolicyService)、Surface系统(包括Surface和SurfaceFlinger)、常用类(包括RefBase、sp、wp等)、Vold和Rild。

Android是Goodle公司推出的一款智能手机平台,该平台本身是基于Linux内核的,图1-1展示了系统的架构;

Libraries层:这一层提供动态库(也叫共享库)、Android运行时库、Dalvik虚拟机等,从编程语言角度来说,这一层大部分都是用C或C++写的,所以也可以简单的把它看成是Native层。

Linux内核层:包含了Linux内核和一些驱动模块(比如USB驱动、Camera驱动、蓝牙驱动等)。目前Android2.2(代号为Froyo)基于Linux内核2.6版本。


blob.png

blob.png

Java Framework层包括Zygote、System_server以及Jaca中的常用类(包括Handlier和Looper等)

图 1-2 Java世界和Native世界交互

blob.png

Framework层:这一层大部分用Java语言编写,它是Android平台上Java世界的基石。

Android系统,深圳系统开发,深圳网页设计

从上面图中可以看出,Android系统大体可分为四层,从下往上依次是:

从上图可知:

Java Application层包括MediaProvider和Phone。

图 1-1 Android系统架构

Applications层:与用户直接交互的就是这些应用程序,它们都是用Java开发的。

Java虽具有与平台无关的特性,但Java和具体平台之间的隔离却是由JNI层来实现的,Java是通过JNI层调用Linux OS中的系统调用来完成对应的功能的,例如创建一个文件或一个Socket等。


除了Java世界外,还有一个核心的Native世界,它为整个系统高效和平稳的运行提供了强有力的支持,一般而言,Java世界经由JNI层通过IPC方式与Native世界交互,而Android平台上最为神秘的IPC方法就是Binder了,除此之外,Socket也是常用的IPC方式。这些内容在后面的代码中可以分析到。


从上面的介绍可看出,Android系统的最大特点之一就是搭建了一个被广大Java开发者热捧的Java世界,但这个世界并不是空中楼阁,它的运转依赖于另一个被Google极力隐藏的Native世界,两个世界的交互关系可用图1-2表示:


上一篇:金融科技风起云涌 百度战略投资宇信科技抢跑新赛道 下一篇:百度、Gartner、埃森哲、达摩院等研究机构发布