原文出自於此
以下中文是用我自己的破爛英文翻譯,若有翻譯錯誤還請多包涵。
Android is a software stack for mobile devices that includes an operating system, middleware and key applications. The Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
Android是一種使用於手持裝置的軟體堆疊架構(software stack),包含了一套作業系統、中介軟體(middleware)和關鍵的應用程式。而於Android平台開發應用程式時所使用的工具和API必須使用到Java程式語言。中介軟體,凡是介於作業系統與應用程式間的,多概稱為中介軟體,Android的中介軟體可再細分出兩層,底層為函式庫(Library)及虛擬機器(Virtual Machine;VM),上層為應用程式框架(Application Framework)。
Features(特徵)---
.Application framework enabling reuse and replacement of components
提供可重覆使用及改寫的元件。
.Dalvik virtual machine optimized for mobile devices
提供給行動裝置一個最佳化過的Java虛擬機器。
.Integrated browser based on the open source WebKit engine
根基於WebKit引擎開放原始碼的完整瀏覽器。
.Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
最佳化過的繪圖函式庫,包含了SGL的2D繪圖函式庫及基於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)
多媒體格式的支援。
.GSM Telephony (hardware dependent)
GSM通話功能(取決於硬體)。
.Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
無線裝置功能(取決於硬體)。
.Camera, GPS, compass, and accelerometer (hardware dependent)
相機、GPS、羅盤、時速計算(取決於硬體)。
.Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE
豐富的開發環境包含了模擬器、除錯工具、記憶體及效能評估分析工具、Eclipse IDE外掛程式。
Android分成(1)Applications,(2)Application Framework,(3)Libraries,(4)Android Runtime,(5)Linux Kernel五大架構:
Applications---
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.
Android會將以下的功能壓縮成一個核心應用程式,包含了郵件寄送、SMS程式、日曆、地圖、瀏覽器、聯絡人......等。而這些所有的應用程式必須Java程式語言撰寫。
Application Framework---
By providing an open development platform, Android offers developers the ability to build extremely rich and innovative applications. 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.
作為一個開放的開發平台,Android提供了開發者去建置非常豐富和創新的應用程序(google竟然用到extremely這個字,分明是自賣自誇啊XDDDDD)。開發者可以自由的利用手持裝置的硬體設備、使用當地資訊、執行背後的服務、設置警示、在狀態列增加通知、還有各種不同的功能。
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.
開發者對於核心應用程式的APIs框架擁有完整的使用權力。應用程式的結構被設計成能夠簡單再使用的元件;任何的應用程式能夠被發佈於裝置上,並且讓其他使用者使用(安全性會受制於框架)。在相同的結構下,准許使用者去置換元件。
Underlying all applications is a set of services and systems, including:
基本上所有的應用程式是由services及systems所組成,包含有:
.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
Content Providers(內容管理員)負責應用程式與應用程式間的資料存取傳遞,例如某一個應用程式可以去存取通訊錄應用程式內的聯絡人資料。
.A Resource Manager, providing access to non-code resources such as localized strings, graphics, and layout files
資源管理員提供各種資源讓程式去使用,比如:區域性的字串,圖片,排版檔(layout files)。
.A Notification Manager that enables all applications to display custom alerts in the status bar
應用程式若呼用Notification Manager(通知管理員),則可以在狀態列(Status Bar)的地方設計出應用程式自有的警示(Alert)訊息。
.An Activity Manager that manages the lifecycle of applications and provides a common navigation backstack
一個活動管理者管理了應用程式的生命週期並且提供了一般性的回溯導航。(navigation backstack很難翻譯....)
For more details and a walk through of an application, see the Notepad Tutorial.
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所有豐富多樣的元件皆是由C/C++函式庫所組成,但Android所有的應用程式皆必需經由API來使用這些功能。主要的核心函式庫列表如下:
.System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
一個由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's 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
一個先進的網頁瀏覽器引擎。
.SGL - the underlying 2D graphics engine
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
一個基於OpenGL ES 1.0規範的3D繪圖引擎。它可以選擇要硬體的3D加速或高度最佳化的3D軟體程式去呈現結果。
.FreeType - bitmap and vector font rendering
點陣圖及向量字形。
.SQLite - a powerful and lightweight relational database engine available to all applications
SQLite是一套開放原碼的關連式資料庫,提供給android上所有的應用程式使用。其特點在於輕量性(僅500KB左右的容量),適合手持式裝置運用,此外桌上型運算的應用程式也有使用,如OpenOffice.org 2.0版之後就有內建SQLite。
Android Runtime---
Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.
Android Runtime包含下面兩個核心。核心函式庫裡頭已經包含了絕大多數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撰寫了此虛擬機器可以有效率的被執行且可以在設備上同時執行多個VM。此虛擬機器所包含的"dx"工具會重新編譯Java程式語法並轉為Dalvik VM執行時特有的dex(Dalvik EXcutable)格式,稱為.dex。
The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.
此Dalvik虛擬機器的潛在功能,例如執行序和記憶體管理,倚賴於Linux核心。
Linux Kernel---
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平台的作業系統用的是Linux,其核心版本為2.6版,Android所用的Linux核心,其包含的功效包括:安全(Security)、記憶體管理(Memory Management)、行程管理(Process Management)、網路堆疊(Network Stack,大陸方面稱為:網絡堆棧)、驅動程式模型(Driver Model)等,另外也在前述的軟體堆疊與硬體間建立起一個抽象層(Abstraction Layer)。
0 comments:
Post a Comment