偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.
全部博文(1751)
分类: LINUX
2010-02-23 16:36:39
Android 是什么?
Android是一个完整的手机软件平台,包含底层的操作系统(Linux), 中间件以及一些关键应用。 Android
还提供了一个SDK 帮助开发者使用Java语言来开发。
特性
Android 架构
下图给出了Android平台的主要组成元素(参见http://code.google.com/android/images/system-architecture.jpg)
应用
Android平台预装了一些核心手机应用,包括电子邮件,短信,
日历,地图,浏览器,地址本等等。这些应用都是使用Java语言编写。开发者也需要使用Java语言在Android平台上开发自己的应用程序。
应用框架
核心应用(电子邮件,短信等)所使用的任何API, Android
开发者都可以访问。Android架构设计的一个重要考虑是使组件(component)易于复用:任意一个应用都可以向系统发布功能,而任意一个其他应用都可以调用这些功能(在不违背系统安全策略前提下)。
这个机制还使任意组件(component)都可被开发者替换。
在应用之下是一组服务 (service)和功能库, 包括:
库
Android平台包含一套C/C++库,
供上层的组件使用。开发者不能直接访问这些库,但是可以通过Android应用框架来访问。下面列出了一些核心库:
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提供的一些核心功能,如安全机制,内存管理,进程管理,网络协议栈和驱动模型等。内核还为硬件提供一个抽象层。