What is Android?

What is Android?

Android is a software stack for mobile devices that includesan operating system, middleware and key applications. The Android SDK provides the tools andAPIs necessary to begin developing applications on the Android platform usingthe Java programming language.

 

Android 是一个移动设备的软件集合,包括操作系统、中间件和关键应用。Android SDK 提供必要的工具和API,使用Java编程语言在Android平台开发应用程序。

 

Features

·        Application framework enablingreuse and replacement of components

·        Dalvik virtual machine optimizedfor mobile devices

·        Integrated browser basedon the open source WebKit engine

·        Optimized graphics poweredby a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0specification (hardware acceleration optional)

·        SQLite forstructured data storage

·        Media support forcommon audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG,PNG, GIF)

·        GSM Telephony (hardwaredependent)

·        Bluetooth, EDGE, 3G, and WiFi (hardwaredependent)

·        Camera, GPS, compass, andaccelerometer (hardwaredependent)

·        Rich development environment includinga device emulator, tools for debugging, memory and performance profiling, and aplugin for the Eclipse IDE

 

·        应用程序框架能够重用和替换组件

·        为移动设备优化的Dalvik虚拟机

·        为移动设备优化的Dalvik虚拟机

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

·        图形优化;3D图形是基于OpenGL ES 1.0规范

·        结构化数据存储(数据库)使用SQLite

·        多媒体支持常见的音频,视频和图像格式(MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)

·        GSM电话(依赖于硬件)

·        蓝牙,EDGE,3G和Wifi(依赖于硬件)

·        摄像头,GPS,指南针和加速度计(依赖于硬件)

·        丰富的开发环境包括设备模拟器,调试,内存和性能分析工具,以及Eclipse IDE的插件

 

Android Architecture

Thefollowing diagram shows the major components of the Android operating system.Each section is described in more detail below.

下图显示了Android操作系统的主要组成部分。每个部分在下面详细描述。


 

Applications

Androidwill ship with a set of core applications including an email client, SMSprogram, calendar, maps, browser, contacts, and others. All applications arewritten using the Java programming language.

Android附带一套核心应用,包括邮件客户端,SMS程序,日历,地图,浏览器,联系人和其他应用。所有应用程序都使用Java编程语言编写的。

 

Application Framework

Byproviding an open development platform, Android offers developers the abilityto build extremely rich and innovative applications. Developers are free totake advantage of the device hardware, access location information, run backgroundservices, set alarms, add notifications to the status bar, and much, much more.

通过提供一个开放的开发平台,Android提供给开发人员创建极其丰富和创新应用的能力。开发人员可以自由充分的利用设备的硬件,访问位置信息,执行后台服务,设置报警,添加状态栏通知,还有很多很多。

Developers have full access to the same framework APIs usedby the core applications. The application architecture is designed to simplifythe reuse of components; any application can publish its capabilities and anyother application may then make use of those capabilities (subject to securityconstraints enforced by the framework). This same mechanism allows componentsto be replaced by the user.

开发者能够完全访问核心应用所使用的框架API。应用程序架构设计简化了组件的重用;任何应用都可以公布它的功能并且其他任何应用都可以使用这些功能(由框架强制执行安全约束)。该机制允许组件被用户替换。

Underlying all applications is a set ofservices and systems, including:

所有应用程序的基础是一套系统和服务,包括:

·        A rich and extensible set of Views that can be used to build an application,including lists, grids, text boxes, buttons, and even an embeddable web browser

·        Content Providers that enable applications to access datafrom other applications (such as Contacts), or to share their own data

·        A Resource Manager,providing access to non-code resources such as localized strings, graphics, andlayout files

·        A Notification Manager that enables all applications to displaycustom alerts in the status bar

·        An Activity Manager that manages the lifecycle ofapplications and provides a common navigation backstack

For more details and a walkthrough of anapplication, see the Notepad Tutorial.

·        一个丰富的具有扩展性的视图集合可用于构建一个应用程序,包括lists, grids, text boxes, buttons, andeven an embeddable web browser

·        内容提供商,使应用程序能够访问来自其他应用程序(如通讯录)的数据,或共享自己的数据

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

·        通知管理器,使所有应用程序能够在状态栏上显示自定义的提醒。

·        活动管理器,管理应用程序的生命周期,并提供一个通用的导航backstack。

更多详细信息和应用程序的演练,请参见记事本教程。

 

Libraries

Androidincludes a set of C/C++ libraries used by various components of the Androidsystem. These capabilities are exposed to developers through the Androidapplication framework. Some of the core libraries are listed below:

Android包含一套Android系统各中组件所使用的C/C++库。这些功能通过Android应用框架暴露给开发者。下面列出了一些核心库:

·        System C library - a BSD-derived implementation of thestandard C system library (libc), tuned for embedded Linux-based devices

·        Media Libraries - based on PacketVideo's OpenCORE; thelibraries support playback and recording of many popular audio and videoformats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR,JPG, and PNG

·        Surface Manager - manages access to the displaysubsystem and seamlessly composites 2D and 3D graphic layers from multipleapplications

·        LibWebCore - a modern web browser engine whichpowers both the Android browser and an embeddable web view

·        SGL - the underlying 2D graphics engine

·        3D libraries - an implementation based on OpenGL ES1.0 APIs; the libraries use either hardware 3D acceleration (where available)or the included, highly optimized 3D software rasterizer

·        FreeType - bitmap and vector font rendering

·        SQLite - a powerful and lightweight relationaldatabase engine available to all applications

 

·        System C library – 一个标准C的BSD派生实施系统库(libc)调整以适用于基于Linux的嵌入式设备。

·        Media Libraries - 基于PacketVideo的OpenCORE库:支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4,H.264,MP3,AAC,AMR,JPG,和PNG

·        Surface Manager – 管理多个应用程序访问显示子系统以及无缝复合的二维和三维图形层。

·        LibWebCore -一个现代的Web浏览器的引擎,提供Android浏览器和一个可嵌入的Web视图。

·        SGL -基本的2D图形引擎

·        3D libraries – 实现了基于OpenGL ES 1.0的API库,这个库使用硬件3D加速(如果可用)或所包含的,高度优化的3D软件光栅。

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

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

 

Android Runtime

Androidincludes a set of core libraries that provides most of the functionalityavailable in the core libraries of the Java programming language.

Andriod包含一个核心库,这个Java编程语言核心库提供大部分可用的功能。

EveryAndroid application runs in its own process, with its own instance of theDalvik virtual machine. Dalvik has been written so that a device can runmultiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable(.dex) format which is optimized for minimal memory footprint. The VM isregister-based, and runs classes compiled by a Java language compiler that havebeen transformed into the .dex format by the included "dx" tool.

每个Andriod应用程序运行自己的进程中,与自己的Dalvik虚拟机实例。Dalvik被设计为设备可以有效地运行多个虚拟机。Dalvik虚拟机执行的文件是Dalvik可执行(.dex)格式的,对于小内存的占用进行了优化。虚拟机是基于寄存器的,并运行通过“dx”工具转化为.dex格式由Java语言编译器编译的类。

TheDalvik VM relies on the Linux kernel for underlying functionality such asthreading and low-level memory management.

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

 

Linux Kernel

Androidrelies on Linux version 2.6 for core system services such as security, memorymanagement, process management, network stack, and driver model. The kernelalso acts as an abstraction layer between the hardware and the rest of thesoftware stack.

Android依赖于Linux2.6版本的核心系统服务,如安全性,内存管理,进程管理,网络协议栈,和驱动模型。内核也作为硬件和其他软件栈之间的抽象层。


你可能感兴趣的:(Android)