Android-操作系统你必须了解的知识
目录
Android 操作系统你必须了解的知识
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 ) : 支持在多个应用中存储和读取数据,相当于数据库。 Android 操作系统的优点: 一、开源 Android 不像其他的操作系统那样封闭。它是开源的,允许第三方修改。所谓的“开源”是用于描述那些源码可以被公众使用的软件,并且此软件的使用、修改和发行也不受限制。 Android 操作系统的开源意味着开放的平台允许任何移动端的厂商加入到 Android 联盟中来。同时专业人士也可以利用其开放的源代码进行二次开发,打造出个性化的 Android 。 二、给用户的自由度高 Android 操作系统给予了用户跟高的自由度,熟悉 Android 的都清楚:用户可以根据自己的喜好来设置手机界面, Android 的应用市场甚至上还有各式各样的启动器来供用户自己选择,让自己的手机与众不同。 三、选择多样化 由于 Android 的开放性,众多的厂商为了迎合大众会推出层出不穷的新产品。迄今为止,以 Android 为操作系统的机型已经达到了几十上百种。但是这些功能、机型上的差异不会影响到数据的同步、软件的兼容等等。这样便给了消费者更多地购机选择。 Android 操作系统的发展: Android 在正式发行之前,最开始拥有两个内部测试版本,并且以著名的机器人名称来对其进行命名,它们分别是:阿童木( AndroidBeta ),发条机器人( Android 1.0 )。自 Android 1.5 发布的开始谷歌以甜点命名法为 Android 命名:纸杯蛋糕( Android 1.5 ),甜甜圈( Android 1.6 ),松饼( Android 2.0/2.1 ),冻酸奶( Android 2.2 ),姜饼( Android 2.3 ),蜂巢( Android 3.0 ),冰激凌三明治( Android 4.0 ),果冻豆( Jelly Bean , Android4.1 和 Android 4.2 )。 深圳嵌入式Arm+Linux、单片机、ARM、MIPS、FPGA、安卓培训! 免费试听,满意后给您量身定制课程(包学会),快速提高您的技能! 教学特色:名师督学+工程师指导;项目案列解析+实际解决方案! 技术顾问:曹老师;QQ:2859780203 详情可查看:http://www.edu118.com |