what is Android?

What is Android?

Android is a software stack for mobile devices that includes an operating system, middleware and key applications.html

Android是一個包括了操做系統,中間件有關鍵應用的移動設備軟件集.java

The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.linux

Android SDK 提供了在Android平臺使用java語言開發應用所必須的工具和APIsandroid

Features特色
  • Application framework應用框架 enabling reuse and replacement of components 容許組件重用和替換
  • Dalvik virtual machine Dalvik 虛擬機 optimized for mobile devices 爲移動設備進行了優化
  • Integrated browser 集成的瀏覽器based on the open source WebKit engine 基於開方源碼的WebKit引擎
  • Optimized graphics優化的圖形 powered by a custom 2D graphics library; 2D圖形庫 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional) 基於OpenGL ES 1.0 規範的3D圖形(硬件加速可選)
  • SQLite for structured data storage 結構數據存儲
  • Media support多毀體支持 for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF) 用於audio,video,和及圖像格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM Telephony GSM電話技術 (hardware dependent) 依賴硬件
  • Bluetooth, EDGE, 3G, and WiFi藍牙,EDGE,3G,及WiFi (hardware dependent) 依賴硬件 EDGE(Enhanced Data Rate for GSM Evolution 的縮寫,即加強型數據速率GSM演進技術。EDGE是一種從GSM到3G的過渡技術)
  • Camera, GPS, compass, and accelerometer 照相,GPS,compass(指南針)(accelerometer )重力加速度傳感器(hardware dependent) 依賴硬件
  • Rich development environment豐富的開發環境 including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE 包括硬件模擬器,調試工具,內存和性能分析,及一個Eclipse IDE插件.
Android Architecture架構

The following diagram shows the major components of the Android operating system. Each section is described in more detail below.下面這個圖展現了Android操做系統的主要組件。每個部分在後面都有詳細的描述web

system-architecture

Applications應用數據庫

Android will ship with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. Android將裝載一套核心應用,包括email客戶端,SMS(發短信)程序,日曆,地圖,瀏覽器,(contacts)聯繫人等等.瀏覽器

All applications are written using the Java programming language.全部的應用都用Java語言編寫安全

Application Framework應用框架

By providing an open development platform, Android offers developers the ability to build extremely rich and innovative applications. 經過提供一個開放的開發平臺,Android讓開發者具有開發極爲豐富有創意的應用程序的能力.網絡

Developers are free to take advantage of the device hardware, access location information, run background services, set alarms, add notifications to the status bar, and much, much more. 開發者能任意的發揮硬件設備的優勢,訪問本地信息,運行後臺服務,設置鬧鐘,給狀態條增長通知等等架構

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: 在全部的應用下面是一套系統和服務,包括:

  • 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
  • 一個豐富的可擴展的Views集,用來建立包括列表,網格,文本合,按鈕,甚至是嵌入的網絡瀏覽器的應用.
  • 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
  • 一個活動管理器,管理應用的生命週期和提供通用的導航返回堆

For more details and a walkthrough of an application, see the Notepad Tutorial.更多詳細及應用的全過程,請看Notepad Tutorial

Libraries庫

Android includes a set of C/C++ libraries used by various components of the Android system. Android包括一套Android系統各類組件用到的C/C++庫

These capabilities are exposed to developers through the Android application framework. Android應用框架向開發者展現了這些功能

Some of the core libraries are listed below:下面是一些核心的庫

  • System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
  • 系統C庫--一個從標準C庫中實現的BSD-衍生庫.專爲基於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's  OpenCORE(輕便的視頻開放核);這些庫支持回放及錄製多種流行的音視頻格式和靜態圖像文件;包括了MPEG4, H.264, MP3, AAC, AMR, JPG, and 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
  • 網絡核庫--一個現代化的網絡瀏覽器引擎,它全力支持Android瀏覽器及一個可嵌入的Web view.
  • 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 APIs實現,這些庫既可以使用硬件3D加速(可用)或者也可用它包括的高優化的3D軟件渲染器(rasterizer)
  • FreeType - bitmap and vector font rendering FreeType--位圖和向量字體渲染引擎
  • SQLite - a powerful and lightweight relational database engine available to all applications SQLite --一個強大的,輕量級的關係數據庫引擎,可用於全部的應用
Android Runtime Anroid運行時

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. 每一個一Android應用,運行在它本身的進程中,捅有本身的Dalvik虛擬機實例

Dalvik has been written so that a device can run multiple VMs efficiently. 爲了一個設備能高效的運行多個VMs,Dalvik已被重寫。

The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. Dalvik執行.dex格式的Dalvik可執行文件,這種格式專爲最小內優化

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.

VM是基於註冊的,而且運行由Java語言編譯器編譯的類,再經dx工具轉換成.dex格式的(文件)

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

Dalvik VM依賴於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. Android依賴linux 2.6版本的核心繫統服務,好比安全機制,內存管理,進程管理,網絡堆,和驅動模型. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.內核也扮演着其餘軟件堆與硬件之間的抽象層角色
相關文章
相關標籤/搜索