安卓系统是基于Linux系统的吗

31次阅读
没有评论

共计 2810 个字符,预计需要花费 8 分钟才能阅读完成。

今天丸趣 TV 小编给大家分享一下安卓系统是基于 Linux 系统的吗的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

安卓系统是基于 Linux 系统;安卓是 Google 于 2007 年 11 月 05 日宣布的基于 Linux 平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。

Android 操作系统介绍

Android 是 Google 于 2007 年 11 月 05 日宣布的基于 Linux 平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。它采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分。底层以 Linux 内核工作为基础,由 C 语言开发,只提供基本功能;中间层包括函数库 Library 和 虚拟机 Virtual Machine,由 C ++ 开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以 Java 作为编写程序的一部分。

Android 一词的本义指“机器人”,最初的 Android 主要支持手机,后来经过开发改良,逐渐扩展到平板电脑及其他一些领域上,是首个为移动终端打造的真正的开放和完整的移动软件。

系统架构:

Android 的系统架构和其操作系统一样,采用了分层的架构。Android 分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和 Linux 内核层。

一、应用程序

Android 会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS 短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用 JAVA 语言编写的。

二、应用程序框架

开发人员也可以完全访问核心应用程序所使用的 API 框架。该应用程序的架构设计简化了组件的重用; 任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。

三、系统运行库

Android 包含一些 C /C++ 库,这些库能被 Android 系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。

四、Linux 内核层

Android 内核是基于 Linux 内核的修改的内核版本,它提供了用于支持 Android 平台的设备驱动。

系统结构:

一、系统内核

Android 是运行于 Linux kernel 之上,但并不是 GNU/Linux。因为在一般 GNU/Linux 里支持的功能,Android 大都没有支持,包括 Cairo、X11、Alsa、FFmpeg、GTK、Pango 及 Glibc 等都被移除掉了。Android 又以 Bionic 取代 Glibc、以 Skia 取代 Cairo、再以 opencore 取代 FFmpeg 等等。Android 为了达到商业应用,必须移除被 GNU GPL 授权证所约束的部份,例如 Android 将驱动程序移到 Userspace,使得 Linux driver 与 Linux kernel 彻底分开。Bionic/Libc/Kernel/ 并非标准的 Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所产生的,这样做是为了保留常数、数据结构与宏。

二、硬件抽像层

Android 的 HAL(硬件抽像层)是能以封闭源码形式提供硬件驱动模块。HAL 的目的是为了把 Android framework 与 Linux kernel 隔开,让 Android 不至过度依赖 Linux kernel,以达成 Kernel independent 的概念,也让 Android framework 的开发能在不考量驱动程序实现的前提下进行发展。

三、中介软件

操作系统与应用程序的沟通桥梁,应用分为两层:函数层(Library)和虚拟机(Virtual Machine)。Bionic 是 Android 改良 libc 的版本。Android 同时包含了 Webkit,所谓的 Webkit 就是 Apple Safari 浏览器背后的引擎。Surface flinger 是就 2D 或 3D 的内容显示到屏幕上。Android 使用工具链(Toolchain) 为 Google 自制的 BionicLibc。

Android 采用 OpenCORE 作为基础多媒体框架。Open CORE 可分 7 大块:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。

Android 使用 skia 为核心图形引擎,搭配 OpenGL/ES。skia 与 LinuxCairo 功能相当,但相较于 Linux Cairo, skia 功能还只是雏形的。2005 年 Skia 公司被 Google 收购,2007 年初,Skia GL 源码被公开,Skia 也是 Google Chrome 的图形引擎。

Android 的多媒体数据库采用 SQLite 数据库系统。数据库又分为共用数据库及私用数据库。用户可通过 ContentResolver 类(Column)取得共用数据库。

Android 的中间层多以 Java 实现,并且采用特殊的 Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik 虚拟机是一种“暂存器型态”(Register Based)的 Java 虚拟机,变量皆存放于暂存器中,虚拟机的指令相对减少。

Dalvik 虚拟机可以有多个实例(Instance),每个 Android 应用程序都用一个自属的 Dalvik 虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行 Java 字节码(Bytecode),而是运行一种称为.dex 格式的文件。

四、安全权限机制

Android 本身是一个权限分立的操作系统。在这类操作系统中,每个应用都以唯一的一个系统识别身份运行(Linux 用户 ID 与群组 ID)。系统的各部分也分别使用各自独立的识别方式。Linux 就是这样将应用与应用,应用与系统隔离开。

应用组件:

Android 开发四大组件分别是:

一、活动(Activity):用于表现功能。

二、服务(Service):后台运行服务,不提供界面呈现。

三、广播接收器(BroadcastReceiver):用于接收广播。

四、内容提供商(ContentProvider):支持在多个应用中存储和读取数据,相当于数据库。

以上就是“安卓系统是基于 Linux 系统的吗”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,丸趣 TV 小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注丸趣 TV 行业资讯频道。

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2024-02-04发表,共计2810字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)