What is Android?

转载 2011年10月14日 20:37:33

Android是什么?

Android是针对移动设备的一个软件栈,android包括一个操作系统,一个中间件以及一系列关键的应用。Android SDK提供了用Java编程语言编写的在android平台上开发应用所需的工具和API。



特性

应用框架:可重用并可替换的组件

Dalvik虚拟机:为移动设备而优化

集成浏览器:基于开源的WebKit引擎。

优化的图形:自定义的2D图形库;基于OpenGL ES 1.0规范的3D图形(可选的硬件加速)

SQLite:结构化的数据存储

媒体支持:通用音频、视频,还有图像格式(MPEG4, H.264, MP3, AAC, AMR, JPG,PNG, GIF)

GSM电话:(依赖硬件)

照相机,GPS,指南针和加速度计:(依赖硬件)

丰富的开发环境:包括一个设备模拟器,调试工具,存储和性能简介,还有一个Eclipse IDE的插件。



Android架构

下图展示了Android操作系统的主要组件。每个组件在下面有更详细的描述。

图片1


应用程序

Android内有一系列的核心应用,包括email客户端,SMS程序,日历,地图,浏览器,电话本及其他。所有的应用都是用Java编程语言写的。



应用框架

通过提供一个开放的开发平台,Android提供给开发者建立极其丰富和极具创新的应用的能力。开发者自由地享有硬件设备的优势,访问本地信息,运行后台服务,设置警示,向状态栏添加通知,还有更多……

开发者能完全访问与核心应用所用的同一个框架APIs。应用架构被设计得能够简化组件的重用;任何应用都可以发布其功能,而其他的应用也就可以使用这些功能(安全限制方面的课题由框架自己提供支持)。同样的机制允许用户替换组件。 
在所有的应用之下,有一系列的服务与系统,包括:

·丰富且可扩展的一系列视图Views,可用于建立应用;包括:lists,grids,text boxs, buttons,以及一个嵌入式的web浏览器。

·内容提供者,使应用能访问其他应用的数据(比如电话本),或是分享他们自己的数据。

·资源管理器,提供访问非代码资源的能力,比如本地化字符串,图形和布局文件。

·通知管理器,使所有的应用都能在状态栏显示自定义的通知。

·活动管理器,管理应用的生命周期,并提供了一个通用的导航的backstack(类似栈)。

更多细节,和一个应用的演练,请看“记事本教程”。


Android包括了一个c/c++库的集合,她们被Android系统的众多组件所使用。通过Android的应用框架,这些功能被开放给开发者。其中的一些核心库如下:

·系统C库——一个继承自BSD的标准C系统实现(libc),被调整成面向基于linux的嵌入式设备。

·媒体库——基于PacketVideo's OpenCORE;该库支持许多流行音频/视频的录制与回放,当然还支持静态的图片文件,包括MPEG4, H.264, MP3,AAC, AMR, JPG, and PNG 

·表面管理器——管理显示子系统,并能无缝地组合多个应用的2D和3D图像层。

·LibWebCore——一个流行的web浏览器引擎,她同时支持Android浏览器和嵌入式的web视图。

·SGL——底层的2D图像引擎

·3D libraries——基于OpenGL ES 1.0 APIs的一个实现;该库或是使用硬件的3D加速,或是使用内置的高度优化的3D软件光栅。

·FreeType —— 位图和矢量字体渲染

·SQLite —— 一个强大而轻量的关系数据库引擎,对所有应用可用。


Android Runtime

Android包括一个核心库的集合,她们提供了Java编程语言的核心库中的绝大多数功能。

每一个Android应用都在她自己的进程中运行,该进程也属于某个Dalvik虚拟机的实例。Dalvik被设计成能让设备高效地运行多个虚拟机。Dalvik虚拟机执行的是.dex结尾的Dalvik可执行文件格式,该格式被优化为最小内存使用。虚拟机是基于寄存器的,并且运行那些Java编程语言所编译的类,这些类被内置的dx工具转换为.dex格式。

Dalvik虚拟机依赖Linux内核来提供底层的功能,比如线程和低级内存管理。


Linux内核

Android依赖Linux 2.6来提供核心系统服务,比如安全、存储管理、进程管理、网络栈和驱动模型。该内核同时扮演着介于硬件和软件栈的其余部分之间的一个抽象层。


转载自:Android基础:什么是Android? (电脑老师)



用Visual C++开发数据库应用程序

用Visual C++开发数据库应用程序EMAIL:zzh1415@21cn.com1、 概述1、1 Visual C++开发数据库技术的特点Visual C++提供了多种多样的数据库访问技术——OD...
  • zzh
  • zzh
  • 2000-08-09 17:04:00
  • 1016

android中的Message类中的age1,age2和what有什么区别

age1,age2 : 如果你仅仅存储整型数值的话,可以用Message的对象.arg1 = 一个Integer来使用 what:自定义的消息内容,可以为一切数据类型,对象也包括的,如: Perso...
  • a734797702
  • a734797702
  • 2012-06-05 14:40:23
  • 1789

What is Android?

Android is a software stack for mobile devices that includes an operatingsystem, middleware and key ...
  • daybreak2015
  • daybreak2015
  • 2015-05-27 00:21:14
  • 205

Google 2017 I/O:What's new in Android?

Android O新特性今天凌晨,google 2017 i/o在加利福尼亚山景城开幕,google一如既往的领先于世界上所有的科技公司~~~~(I/O: 开放中创新) Picture in Pi...
  • upupupgoing
  • upupupgoing
  • 2017-05-18 13:37:33
  • 668

Android Open Project

  • 2010年09月19日 23:09
  • 3.24MB
  • 下载

Android是什么? - What is Android?

Android是什么? - What is Android?   Android是一个用于移动设备的软件栈(software stack),包括一个操作系统,中间件,和一些关键应用软件。Android...
  • baiyunfeng_blog
  • baiyunfeng_blog
  • 2007-11-29 11:42:00
  • 469

android RPC原理总结及源码

  • 2013年06月15日 09:35
  • 1.79MB
  • 下载

Android消息机制之三---Message

Message 中常用的变量,callback(Runnable), target(Handler),what(int),obj(Object)...
  • ITJackR
  • ITJackR
  • 2016-03-03 13:29:34
  • 137

Android关于Handler发送消息里面的arg1和arg2以及obj和what的用法

arg1 用于携带int整数型数据,到handler里面取值 int num = msg.arg1; arg2 用于携带int整数型数据 int num = msg.arg2; obj用于携带对象...
  • xiayiye5
  • xiayiye5
  • 2018-04-02 13:45:34
  • 19

Android初学笔记之<handler.obtainMessage()方法理解>

在handler.obtainMessage()的参数是这样写的: Message android.os.Handler.obtainMessage(int what, int arg1, int a...
  • bgk083
  • bgk083
  • 2015-05-14 22:27:17
  • 808
收藏助手
不良信息举报
您举报文章:What is Android?
举报原因:
原因补充:

(最多只允许输入30个字)