Android是什么--by流氓兔斯基

Android 是什么?

Android是一个完整的手机软件平台,包含底层的操作系统(Linux), 中间件以及一些关键应用程序。 Android 还提供了一个SDK,这个SDK提供了必需的工具和API,用于帮助开发者在Android驱动的设备上进行应用程序的开发。其系统架构如下图:

Android系统架构图
Android特性

  • 应用框架:提供机制使组件(component)能够被复用和替换
  • Dalvik 虚拟机:为移动设备专门进行优化
  • 浏览器:基于Webkit引擎.
  • 优化的图形库
  • 媒体支持:包括常见的音频,视频和静态图像格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)。2.2后支持flash
  • GSM 库(硬件相关)
  • Bluetooth, EDGE, 3G, 和 WIFi (硬件相关)
  • Camera, GPS, compass 和accelerometer (硬件相关)
  • 完善的开发环境, 包括一个模拟器,调试工具,内存和性能分析工具以及Eclipse IDE插件

应用

Android平台预装了一些核心手机应用,包括电子邮件,短信, 日历,地图,浏览器,地址本等等。这些应用都是使用Java语言编写。开发者也需要使用Java语言在Android平台上开发自己的应用程序。
应用框架
核心应用(电子邮件,短信等)所使用的任何API, Android 开发者都可以访问。Android架构设计的一个重要考虑是使组件(component)易于复用:任意一个应用都可以向系统发布功能,而任意一个其他应用都可以调用这些功能(在不违背系统安全策略前提下)。 这个机制还使任意组件(component)都可被开发者替换。

在应用之下是一组服务 (service)和功能库, 包括:

  • 一组丰富和易于扩展的View(控件),用于构建应用的图形用户界面,包括list, grid, 文本框, 按钮,甚至一个强大的web浏览器控件
  • Content provider (内容提供者),使一个应用能够访问另外一个应用的数据(如地址本),或者共享自己的数据给其他应用使用。
  • 资源管理器(Resource Manager), 提供接口访问应用的non-code (非代码)资源,如本地化的字符串,图片文件,布局文件等。
  • Notification Manager (通知管理器):所有应用都可以通过Notification Manager在状态栏显示定制化的Alert (通知)或状态信息
  • Activity Manager: 管理应用的生命周期以及activity 窗口的后退机制。


Android平台包含一套C/C++库, 供上层的组件使用。开发者不能直接访问这些库,但是可以通过Android应用框架来访问。下面列出了一些核心库:

  • 系统C语言库 - 标准C系统库(libc)的一个BSD-派生实现,并为嵌入式设备进行了优化
  • 媒体库 - 急于PacketVideo的OpenCORE。这个库支持许多音視频格式以及静态图像的播放和录音/像, 如MPEG4, H。264, MP3,AAC,AMR, JPG和PNG。
  • Surface Manager – 管理对显示子系统的访问,并无缝的合成多个应用的2D和3D图层
  • LibWebCore – 先进的web浏览器引擎。 Android浏览器应用以及web view (控件,可嵌入其他应用)都是基于这个库。
  • SGL - 底层的2D图形引擎
  • 3D 库 - 基于OpenGL ES 1.0 API的一个实现库。如果硬件提供3D加速功能,这个库会利用硬件这个功能,否则使用一个优化的3D软件库
  • Freetype – 位图和矢量字体引擎
  • SQLite – 轻量级的关系数据库引擎。

Android runtime
Android 包含一套核心库,提供了Java核心库的大多数功能。
每个Android应用运行在自己的进程空间中, 运行在一个单独的Dalvik 虚拟机实例上。Dalvik的设计能够保证同一个设备上有效的运行多个虚拟机(实例)。Dalvik上运行的可执行文件格式是Dalvik Executable (.dex)。这个格式文件占用较小内存。VM是Register-based (?),运行的类由一个Java 编译器编译生成,然后由”dx”工具转化成.dex格式。
Dalvik虚拟机依赖Linux kernel 提供提供一些基础功能,如线程,初级内存管理等。
Linux Kernel
Android依赖Linux 内核2.6提供的一些核心功能,如安全机制,内存管理,进程管理,网络协议栈和驱动模型等。内核还为硬件提供一个抽象层。

Android 2.2的一些新特性:

对Microsoft Exchange更好的支持。Android的几个新特性使之更适于Exchange企业环境。其中一些新特性列举如下:

  • 基于用户名/密码的Exchange帐号自动检测
  • 支持Exchange日历的同步
  • 改进的安全性,管理员可以跨越设备强制应用安全策略
  • 恢复出场设置——管理员可以将设备重置为出场设置,这样就能在设备被偷或丢失后擦除上面的敏感数据了
  • 全局的地址列表查找——可以根据服务器端返回的列表帮助用户自动填充收件人的邮件地址

设备管理API。Android 2.2改进并新增了大量的设备管理API,开发者可以将其用在应用当中:

  • 应用数据备份API——可以将应用数据备份到云中。如果用户切换到另一个Android设备,他就可以从之前的设备中恢复数据。
  • Cloud-to-Device消息API。云中的用户/系统可以凭借这种增强在设备上触发动作。该特性可以将移动警告发给手机并且支持双向的推同步服务。
  • 可以直接在外部的内存设备(SD卡)上安装应用,还可以将应用从内部迁移到SD卡上,反之亦然。

网络共享。Android 2.2可以通过一台Android电话提供的热点将多个服务连接到Internet上。

性能。借助于新式的Dalvik JIT编译器,对于CPU密集型应用来说,Android 2.2的速度要比Android 2.1快2~5倍。根据Linpack基准测试结果,安装了Froyo的Nexus One电话可以达到37.5 MFlops,而同样的电话如果使用Android 2.1的话才有6.5 MFlops。

更快的浏览速度。由于浏览器现在使用了Chrome V8引擎,JavaScript代码的处理速度要比Android 2.1快2~3倍。

从浏览器中访问设备API。现在可以直接从浏览器中访问大量的设备API,如加速器、相机、声音识别、翻译等,这样Web应用就能以前所未有的方式与设备交互了。比如说,用户可以在拍完照后将其上传到网上,而这一切都是在浏览器内完成的。

支持Flash 10.1。Froyo支持最新的Flash 10.1 Beta版。最近,JIT编译器的引入极大地改进了性能,这对Flash应用的运行起到了巨大的帮助作用,因为大家都知道,Flash应用是一种CPU密集型应用。

Android商店。Android 2.2开发者和商店用户会从如下新特性中受益无穷:

  • 可以在Android商店搜索应用,包括应用数据
  • 更新——点击一次按钮后会自动更新所有应用
  • 崩溃与冻结报告。Android 2.2集成了崩溃/冻结报告特性,这样在崩溃时用户就可以将完整的细节信息报告给应用发布者了
  • 从PC上浏览商店并将应用直接下载到设备上。用户可以通过PC选择商店的应用,之后应用就可以发到到加载的设备上。要想使用这个特性,用户需要登录并且设备需要在Android商店注册-

音乐管理。用户可以将Windows Media或Mac iTunes上的所有非DRM音乐转换到Android设备上播放。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值