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

Android是什么? - What is Android?

2007-11-29 11:42 302 查看
Android是什么? - What is Android?
   Android是一个用于移动设备的软件栈(software stack),包括一个操作系统,中间件,和一些关键应用软件。Android SDK提供了采用Java语言在Android平台上开发应用程序的一些必要的工具和API。
   Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
 
 特点 - Features
应用程序框架。可重用和替换组件

Application framework enabling reuse and replacement of components

Dalvik虚拟机。针对移动设备进行了优化

Dalvik virtual machine optimized for mobile devices

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

Integrated browser based on the open source WebKit engine

图像优化。通过一个传统的2D图库支持;基于OpenGL ES 1.0规范的3D图像(可选的硬件加速)

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

SQLite。结构化数据存储

SQLite for structured data storage

多媒体支持。音频,视频,静态图片(MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)

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

GSM电话。(依赖于硬件)

GSM Telephony (hardware dependent)

蓝牙,EDGE,3G和WiFi。(依赖于硬件)

Bluetooth, EDGE, 3G, and WiFi (hardware dependent)

照相机,GPS,指南针,加速计。(依赖于硬件)

Camera, GPS, compass, and accelerometer (hardware dependent)

丰富的开发环境。包括一个设备模拟器,调试工具,内存和性能剖面图,Eclipse插件

Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE

 Android架构 - Android Architecture

  下图展示了Android操作系统的主要组件。每一部分会在后面详细描述。

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





 

 应用程序 - Applications

   Android包含一组核心的应用程序,包括: 电子邮件客户端,SMS程序,日历,地图,浏览器,通讯录等。所有的应用程序用Java语言实现。

   Android will ship with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. All applications are written using the Java programming language.

 

应用程序框架 - Application Framework

  开发人员可以和核心应用程序使用同样的框架API。应用架构的设计可以简化组件的重用;任何应用程序可以发布其功能,任何其他的应用程序都可以使用这些功能(必须服从于框架的安全限制)。同样的机制允许组件可以被用户替换。

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

  在所有应用程序之下是一组服务和系统,包括:

  Underlying all applications is a set of services and systems, including:

一组完善且可扩展的用于构建应用程序的视图,包括:列表,网格,文本框,按钮,可嵌入的Web浏览器

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 data from 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, and layout files

一个通知管理器,使所有应用程序可以在状态条显示警告

A Notification Manager that enables all applications to display custom alerts in the status bar

一个活动管理器,控制应用程序的生命周期,提供导航栈

An Activity Manager that manages the lifecycle of applications and provides a common navigation backstack

   更多有关应用程序的细节,请看开发一个Android应用程序

   For more details and a walkthrough of an application, see Writing an Android Application.

 

 Libraries

 库

  Android includes a set of C/C++ libraries used by various components of the Android system. These capabilities are exposed to developers through the Android application framework. Some of the core libraries are listed below:

 Android包含一组被多个Android系统组件使用的C/C++库。这些功能通过Android应用程序框架提供给开发者使用,一些核心库如下:

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

C系统库。一个源于BSD实现的标准C系统(libc),并已被调整以用于基于Linux的嵌入式设备

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

多媒体库。基于PacketVideo的OpenCORE;该库支持多种流行格式的音频和视频的重放和记录,同样支持静态图像文件,如:MPEG4,H.264, MP3, AAC, AMR, JPG, PNG

Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications

表面管理器。管理显示子系统的使用,从多个应用无缝集成2D和3D图像层

LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view

LibWebCore。一个现代的Web浏览器引擎,支撑Android浏览器和一个嵌入式的Web视图

SGL - the underlying 2D graphics engine

SGL。底层的2D图像引擎

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

3D库。一个基于OpenGL ES 1.0 API的实现;该库利用硬件3D加速(如果可用)或者高度优化的3D软件光栅

FreeType - bitmap and vector font rendering

FreeType。位图和矢量字体展现

SQLite - a powerful and lightweight relational database engine available to all applications

SQLite。一个共所有应用程序使用的强大的轻量级关系数据库引擎

Android Runtime

Android运行时

  Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.

 Android包含一组核心库提供大部分Java语言核心库所提供的功能。

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

  所有Android应用程序在其自己的线程内运行,用于独立的Dalvik虚拟机实例。Dalvik被实现以支持单设备可高效运行多个虚拟机实例。Dalvik虚拟机执行Dalvik可执行文件格式(.dex)的文件,该格式以被优化以保证最小化的内存痕迹。虚拟机是基于注册可用,运行被“dx”工具转换为.dex格式的class文件,class文件通过Java语言编译器编译。

  The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.

  Dalvik虚拟机依赖与Linux内核提供底层的线程管理和底层内存管理。

 

Linux Kernel

Linux内核

  Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.

  Android依赖于Linux2.6提供核心系统服务,如:安全,内存管理,进程管理,网络协议栈,驱动模型。Linux内核同时扮演硬件和其它软件栈之间的抽象层。

 

©2007 Google - Code Home - Site Terms of Service - Privacy Policy - Site Directory
文章引用自:

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息