安卓是什么?

安卓是什么?

安卓是一款手机设备上的软件栈,它包括了底层的操作系统,中间件和一些关键的应用程序。Android SDK(Soft Development Kit)安卓的软件开发工具包提供了一些工具和必要的API使得可以使用java程序语言开始在安卓平台上开发应用程序。

特性:

.Applicationframework应用框架:可重用或替换的组件集合。

.Dalvik virtual machine Dalvik虚拟机:在移动设备上已被优化的虚拟机。

.Integratedbrowser 集成浏览器:基于开源的webKit引擎。

.Optimizedgraphics 优化过的图形处理:采用自定义的2D图形库;基于OpenGL ES 1.0的3D图形库 (硬件加速可选)

.SQLite 支持结构化数据存储

.Mediasupport 媒体支持:支持常见的音频,视频,静止的图像格式 (MPEG4, H.264, MP3, AAC, AMR,JPG, PNG, GIF)

.GSMTelephony (依赖于硬件)

.Bluetooth,EDGE, 3G, and WiFi (依赖于硬件)

.Camera,GPS, compass, and accelerometer 照相机,全球定位系统,指南针和加速器(依赖于硬件)

.Richdevelopment environment 丰富的开发环境:包括设备模拟器,调试工具,内存和性能分析工具, 还有Eclipse IDE的插件。

Android的架构

下图显示了安卓系统的主要组成部分。每个部分在底下会有详细的描述。

应用程序部分

安卓系统集成了很多的核心程序,包括了电子邮件客户端,SMS程序,日历,地图,浏览器,联系人和其他。所有的这些应用程序都是用java语言写的。

应用程序框架

通过提供一个开放的开发平台,安卓提供给开发者能创建丰富而创新的应用程序的能力。开发者可以自由的利用硬件设备的优势来做许多事,诸如访问位置信息,运行后台服务,设置警报,添加通知到状态栏等,并且还有很多,很多可作的事情。

开发者可以完全的访问这些核心应用程序所使用的框架API。应用程序框架的设计就是旨在为了简化组件的重用。任何应用程序都可以公布它的功能并且其他的程序可以使用这些公布的功能(在框架的安全约束机制的范围内)。这种机制允许组件被使用者替换。

在应用程序下层的是一系列的服务和系统,包括:

.一系列丰富可扩展的可视化控件可以被使用来构建应用程序,包括list,grids,boxes,buttons,甚至是一个可以嵌入到应用程序中的浏览器。 

.Content Providers可以让应用程序访问从其他应用程序(如联系人)来的数据,或者共享它们自己的数据。    

.一个Resource Manager,提供访问不用代码编写的资源如本地字符串,图片和一些layout布局文件。  

.一个Notification Manager,能够让应用程序在状态栏上显示给用户看的通知。  

.一个Activity Manager,它负责管理应用程序的生命周期,并提供一个公共的导航回栈(什么是导航回栈?我不理解,估计翻译也不正确)。

如果想了解更多的详细信息并且想有更多应用程序方面的学习,请看 Notepad Tutorial.

安卓包括一系列被安卓系统的各个组件(组成部分)所使用的用C或C++所写的库。这些功能通过安卓应用程序框架暴露给开发者。一些核心库列在下面:

.SystemC library 一个属于标准C系统库的BSD派生的实现,为嵌入式基于linux的设备而调整的。

.MediaLibraries 基于PacketVideo的OpenCORE库;它支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4,H.264,MP3,AAC,AMR,JPG,和PNG。

.SurfaceManager可以控制显示子系统和多个应用软件间2D与3D图层之间完美的联合。

.LibWebCore一个很酷的web浏览器引擎,掌控着安卓的浏览器和可嵌入的web视图。

.SGL一个基本的二维图形引擎。

.3DLibraries 一个基于OpenGL ES1.0 APIs的实现。这个库也使用硬件3D加速(如果可以使用)或所包含的,高度已被优化过的3D软件光栅。

.FreeType 位图和矢量字体渲染

.SQLite一个可以被应用程序使用的强大又轻量的关系型数据库引擎。

安卓运行时

安卓提供一系列的核心库,它们提供了在java语言的核心库中可以使用的许多功能。

每一个安卓应用程序都运行在它自己的进程,和属于自己的Dalvik虚拟机实例中。Dalvik被设计使得设备可以更加有效的运行多个虚拟机。Dalvik虚拟机执行的是Dalvik可执行文件(.dex)。它被优化过,所占用的内存更小,虚拟机是基于寄存器的,运行.dex文件,这是由被java编译器编译过的class文件再根据dx工具转化成的文件。

Dalvik虚拟机依赖于linux内核(提供了基本的功能,如线程和低水平的内存管理。)

Linux 内核

安卓依赖于linux2.6版的核心系统服务如安全性,内存管理,进程管理,网络协议栈,和驱动模型。内核也作为一个抽象层在硬件和软件堆栈层之间。

时间: 2024-11-06 15:53:25

安卓是什么?的相关文章

解决安卓手机键盘弹出时会把背景或百分比定位的布局压缩的问题

做移动端页面时经常遇到以下案例,在有背景的页面上写表单,而且底部为了适应不同手机还得运用绝对定位,因为通常是把容器高度设为了100%,这时在安卓手机上弹窗软键盘时就会把背景图片及其他东西挤压上去,解决方法如下: 在css样式中把大容器定义为fixed布局 .wrap{ position:fixed;left:0;top:0; } 在js中强制把页面的高度覆给他,就相当于自动撑开 var x =document.body.clientWidth; //查询设备的宽度 var y =document

对安卓未来的看法

Android在初期的时候,完全没有苹果好,甚至被苹果各种秒杀,但是反观现在呢,安卓的发展速度可以说是井喷式发展,慢慢的取代苹果系统,成为市场份额最大的系统,影响力越来越大.以前的安卓系统,之所以被苹果影响而无所闻,因为有很大的缺点不足,系统用半个月一个月就会很卡,使用体验不强,就失去了客户流量.但是现在Andoird可自由的刷机和改自己喜欢的UI,各种美化,达到自己喜欢的效果为止,其系统无一例外的非常的成功.但正是因为开源,所以安卓系统的手机安全性能不高,被入侵的风险较大,这也是将来慢慢改进的

《未来的夏娃》观后对安卓未来的看法

看了<未来的夏娃>就知道其实这本书和安卓系统没多少关系.只是其中的女主人公也叫"安卓". 我用了几个手机,系统都是安卓的,对比了一下苹果手机.感觉速度没那么快些,应该说两种系统都有优缺点吧. 本人虽然对安卓不是很了解,但是对Java还是知道一点的,这是一种面对对象的语言. 它的jdk使其有跨平台性的优势,这就促成了它的兼容力,使之在这个网络横行的时代具有更强的客源优势.特别是移动客户端,现在几乎是人手一部手机,说明移动系统具有强大的潜力,而且安卓系统的开源性,使之更加大众化

ionic 打包安卓包

一.配置环境: 先按照之前的文章,配置好环境需要: 二.安装 1. 这里前提是 需要安装  node (地址: http://nodejs.cn/download/) 命令: node -v   //返回版本号 查看自己是否安装过node,如果没有安装,请访问上面地址 进行安装: 2. 使用npm安装Cordova和 ionic npm install -g ionic cordova 如果长时间没有安装成功,则使用 cnpm 淘宝镜像进行安装: 首先安装 cnpm : npm install

安卓前景分析

作为现阶段手机市场的两大操作系统之一,iOS作为现在手机操作系统的高端代表,有着其手感优益流畅的巨大优势,并且有着专门的应用平台,有着自身独特的发展手段.作为竞争对手的安卓,则有一种百家争鸣的感觉,没有绝对的通知力,市场都是靠自己对安卓平台的理解,开发与应用来争取的.正所谓说,是骡子是马拉出来遛一遛就知道了.这里是有能力者寻觅成功的战场,是战场就不会没有硝烟,ios等平台可以说不是安卓的最大对手,最大的对手往往是同行业的安卓手机,在这种安卓机百花齐放的情况,选择的权利就掌握在消费者的手中,只有更

安卓未来发展前景

众所周知,安卓之所以能迅速占领80%的手机市场,很大一部分原因是因为:开源. 有人曾这样做比喻:开源就好比公开一栋房子的结构图纸,有了图纸的人可以拿这份图纸建造一栋一模一样的房子,也可以叫懂行的人帮你优化这原来的设计造一栋新版本的房子.没有开源就好像没有结构图你要仿造一栋房子只能仿造表面相似,结构性能可能相差很远,可能根本经不住用户多堆一点东西就变形垮塌了. 而我以为,开源是让开发者站在巨人的肩膀上工作,开发者不必将更多的时间花在"画图纸"上,相反可以将精力放在如何优化"建筑

对安卓未来前景的看法

在说安卓之前,先说说自己对以前的塞班的感受吧,个人对塞班记忆是当时的一个诺基亚的按键直板机,记得当时只要是从应用商店下载的游戏,都是运行的非常流畅,就是那种你可以同时运行几个程序没感觉,qq挂到手机没电,但是游戏都是很少用正版的都是在各个网站上下载破解版的,然后就有那种教程可以自己破解游戏,后来过了一段时间诺基亚出了一款5230的手机,当时就是觉得这个怎么这么赞,游戏还有重力感应的.然后就到了一个智能机爆炸的时代,安卓.塞班.ios.Windows五花八门的,对于一个特别爱玩游戏的人来说,系统怎

Eclipse+ADT+Android SDK 搭建安卓开发环境

要求 必备知识 windows 7 基本操作. 运行环境 windows 7 下载地址 环境下载 最近开接触Android(安卓)嵌入式开发,首要问题是搭建Andoid开发环境,由于本人用的是windows7的笔记本,也就只能到Windows中搭建Android 开发环境了! 就搭建环境都花了比较长的时间, 在各种版本之间折腾了比较久的时间, 装好后SDK包更新又是一个比较大的麻烦(天朝的网络大家懂的--).下面把我的安装过程和经验分享个大家!! 安装JDK 这里可以参考我之前写的一篇关于安装J

安卓手机超频CPU(无修饰CPU控制)

手机软件内存越占越大,手机硬件配置太低运行太卡.其实可以通过超频cpu提升性能,安卓智能手机cpu怎么超频下面我来演示手机如何超频cpu. 方法/步骤 打开无修饰CPU控制.   设置CPU最高频率,建议不要太高,否则可能导致手机死机.   设置CPU最低频率,建议不要太低,否则可能影响操作体验.   设置CPU情景模式 interactive:手机运行频率直接上最高值,系统响应最快,耗电较多. conservative:随着CPU负荷增大,频率逐渐增高,系统响应快. ondemand:系统默认

XE5安卓手机要求

1 ARMv7 的 CPU v6 的肯定不支持.2 黑屏是因为你的手机 CPU 不支持 NEON 特性.或者是 T2 CPU.3 系统版本  2.3.3 到 2.3.9 或者 4.0 以上.4. SDK 请使用 4.0 以上的.最好不要自己配置,使用  XE5 自带的配置. AndroidSDK22.0.1_32bit5. 如果是 海思等特殊的 CPU,请使用 XE5最新版本,肯定能运行.6. 无论什么手机,都会有 不兼容的 地方.三星的也不例外.特别是 拍照 和 定位. 如果卖家不知道 CPU