您的位置:首页 > 移动开发 > Android开发

Android官网学习笔记001:Android简介

2012-02-12 13:00 417 查看
################### 声明部分 #####################

主要内容与来源:Google官网www.android.com

本人博客地址:http://blog.csdn.net/riverzhu

声明:由于本文档为阅读Google官网www.android.com的Dev. Guide内容,并结合个人理解与总结所形成的。因此,很多内容均受个人能力与水平限制,难免存在着各种不足与错误,希望各位朋友多多指出。同时,欢迎各位朋友在转载时保留“声明部分”。此外,英文中很多词汇直接译成中文将会引起误解,如Started Service、Bound Service等,均直接引用,而不作翻译。

联系方式:dr.river.zhu@gmail.com

################################################

Android简介

Android是一个软件栈(Software Stack),其包括操作系统、中间件及关键应用。Android SDK(Software Development Kit 软件开发工具包)提供了在Android平台上开发应用程序所需的工具与API。

特性

应用程序框架(Application framework):使得重用与替换不同的组件成为可能
达尔维克虚拟机(Dalvik virtual machine):针对移动设备进行了优化
集成浏览器:基于开源WebKit引擎。
优化图形:由定制的2D图形库和基于OpenGL ES 1.0规范(硬件加速可选)的3D图形库驱动
SQLite:用于结构化数据存储
支持媒体:普通的音视频及静态图像格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)。
GSM电话(依赖硬件)
蓝牙、EDGE、3G与WiFi(依赖硬件)
摄像头、GPS、罗盘(compass)及加速度计(accelerometer)(依赖硬件)
丰富的开发环境(Rich development environment):包括一个设备模拟器、调试工具、内存与性能分析、和Eclipse开发环境插件。

Android体系架构

下图给出了Android操作系统中的主要组件,各组件详细描述如下:



应用程序(Applications)

Android含有一组核心应用,包括电子邮件客户端、SMS程序、日历、地图、浏览器、通讯录等。所有应用均使用JAVA编程语言开发。

应用程序框架

通过提供一个开放开发平台,Android使得开发者可以创建极其丰富和新颖的应用程序。开发者可自由地利用设备硬件、访问地理位置信息、在后台运行服务、设置闹钟、添加通知(notifications)到状态栏,及更多事情。

开发者对框架API(framework API)具有与核心应用(Core Application)完全相同的访问权限。应用程序的架构被设计成易于组件重用的形式,任何应用程序均可以发布(publish)其功能(capabilities),同时其他应用程序可以重用这些被发布的功能(但仍在整个框架施加的安全约束之内)。这种机制也使得用户可以替换不同组件。

所有的应用程序基础是一组服务及体系(或意译为“系统组件”),包括:

一组丰富的和可扩展的Views(视图):可以用于创建应用程序,包括列表、网格、文本框、按钮,甚至是可嵌入的网页浏览器。
Content Providers(内容提供器):允许应用程序从其他应用程序(如通讯录)访问数据,或共享其所持有的数据。
一个Resource Manager(资源管理器):用于提供非代码(Non-Code)资源的访问,如本地化字符串(Localized Strings)、图形、布局文件(Layout files)等。
一个Notification Manager(通知管理器):允许所有应用程序在状态栏中显示自定义通知。
一个Activity Manager(活动管理器):管理应用程序的生命周期,同时提供一个通用巡航回溯栈(back stack)。

更多应用程序的信息及逐步解说请参阅“文本编辑器教程”。

Android包含一组用于Android系统各种组件的C/C++库。开发者通过通过Android应用程序框架来访问这些库所提供的功能。一些核心库如下所列:

System C library(系统C库):一个源于BSD实现并针对基于Linux的嵌入式设备改进的标准C系统库(libc)
Media Libraries(媒体库):基于PacketVideo的OpenCORE,该库支持播放和录制各种流行音视频格式,及静态图像文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG和PNG
Surface Manager(外观管理器):管理对显示子系统的访问,并无缝地合成来自多个应用的2D、3D图形
LibWebCore:一个现代Web浏览器引擎,支持Android浏览器及可嵌入的Web视图(Web View)
SGL:2D图形引擎的基础
3D Libraries(3D库):基于OpenGL ES 1.0 API的实现,该库或使用硬件3D加速(当可用时),或使用内置的高度优化过的3D软光栅器(点阵化)
FreeType:图位及矢量字体渲染
SQLite:一个可用于所有应用程序的强大、轻量级的关系数据库引擎

Android运行时

Android包括一组核心库,主要用于提供JAVA编程语言核心库所提供的大部分功能。

每个Android应用程序均在其自己的Dalvik虚拟机实例内部运行于其自身的进程(Process)中。Dalvik被设计成可在一个设备内高率运行多实例的虚拟机。Dalvik虚拟机执行Dvalvik可执行格式(.dex)文件。该格式对内存占用进行最优化处理。虚拟机采用基于注册的机制,运行经过JAVA语言编译器编译过的类文件。这些类文件被自带的“dx工具”转换为.dex格式。

Dalvik虚拟机的诸如线程和低内存管理等基础功能依赖于Linux内核。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: