Android官方开发指南翻译(1)-什么是Android

时间:2022-12-30 05:34:40

开始我的翻译之旅,英文能力有限,肯定有很多不对的地方,欢迎拍砖!

 

什么是Android?

Android是一个移动手机的软件栈,它包括一个操作系统、中间件和关键应用程序。Android SDK提供了利用java语言在android平台上开发应用程序的必要工具和APIs.

特征

·应用程序框架能够被重用和更换的组件

·Dalvik虚拟机优化移动设备

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

·最优化的图形库由传统的2D图形库组成;3D图形是基于OpenGL ES 1.0规范(可以选择硬件加速)

·SQLite提供了结构化数据存储

·媒体支持包括传统的音频,视频和图像格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF

·GSM电话(硬件相关)

·蓝牙,EDGE,3GWIFI(硬件相关)

·摄像头,GPS,指南针和加速计(硬件相关)

·富开发环境包括一个模拟器,调试工具,内存与性能模型和一个Eclipse IDE插件

Android体系结构

以下图形展示了Android操作系统的主要组件。每个部分的更多详细情况将在后面涉及。

Android官方开发指南翻译(1)-什么是Android

应用软件

Android携带了一组核心应用软件,包括一个邮件客户端,SMS程序,日历,地图,浏览器,通讯录等等。所有应用软件都是java语言编写的。

应用程序框架

Android提供了一个开放的开发平台,使开发者能够开发极为丰富和创新的应用软件。开发者可以*利用硬件设备,存储单元信息,运行后台服务,设置报警,增加状态条提示等等很多很多。

开发者可以完全进入跟系统核心应用软件使用的相同框架APIs.这个应用程序框架被设计用于简化组件的重用。任意一个应用程序都可以发布自己的功能,而且其他程序也可以使用那些功能(必须符合框架的安全约束)。这个相同的机制允许用户替换这些组件。

所有应用程序是以一组服务与系统为基础的,包括:

·一组丰富可扩展的视图可以用来创建一个应用程序,包括lists,grids,text boxes,buttons,甚至一个内嵌的浏览器

·内容提供者可以使应用程序从其他的应用程序获取数据(例如联系簿),或者共享它们自己的数据

·一个资源管理器为获取非代码资源(例如局部字符串,图形和布局文件)提供了条件

·一个通知管理器可以使所有的应用程序在状态栏中显示自定义的通知

·一个活动管理器可以管理应用程序的生命周期和提供一个通用的导航回退功能

想了解更过详情和应用程序的演示,请查看记事本教程

 

程序库

Android包括一组应用于Android系统各种组件的C/C++程序库。这些功能均通过Android应用程序框架对开发者开放。一些核心的函数库如下:

·系统C程序库-一个BS-派生于标准C系统程序库,为嵌入基于Linux的设备

·媒体程序库-基于视频软件的OpenCORE;这些程序库不但支持多种流行音频和视频格式的回放和记录,而且支持静态图片文件,包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG

·界面管理器-管理从各种应用程序中访问显示子系统和紧密复合2D3D图层。

·LibWebCore-一个包含Android浏览器和内嵌网络视图的现代网络浏览器引擎

·SGL-基础2D图形引擎

·3D程序库-一个基于OpenGL ES 1.0 APIs的实现;这些程序库使用了3D硬件加速器(如果有这些)或者内置的高性能的3D软件光栅期

·FreeType-位图和矢量字体的渲染

·SQLite-一个可供所有应用程序使用的强大的轻量级关系数据库引擎

Android运行时

Android包括一组核心程序库,它提供了大多数功能可供java编程语言的核心程序库使用。

每个Android程序都通过Dalvik虚拟机的实例运行在自己的进程中。Dalvik可以被写入以便一个设备能有效的运行在多个虚拟机中。Dalvik虚拟机执行经过最小内存封装的Dalvik可执行格式(.dex)文件。虚拟机是寄存器,可以运行被java编译器编译的类,这些类已经被内置的dx 工具转换成了.dex格式。

Dalvik虚拟机依赖于Linux 内核的基础功能,例如线程和低级的内存管理。

Linux Kernel

Android依赖Linux 2.6版本的核心系统服务,例如安全性、内存管理、进程管理、网络栈和驱动模型。这个内核也在硬件和其他软件栈中充当了一个抽象层。