我將從這裏開始記錄一些技術備份,筆記。先從android的docs資料開始。目前主要是翻譯,爲了怕誤人子弟,附帶英文原文。若是如有不幸瀏覽到的童鞋,歡迎你提出意見。html
What is Android?java
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.linux
什麼是Android?android
Android系統是爲移動設備定製的軟件集合,它包括了操做系統,中間件和一些基本的應用程序。Android SDK爲用java語言在Android平臺開發應用程序提供了工具和必要的應用程序接口。web
Features數據庫
特性瀏覽器
應用程序框架容許重用和替換組件安全
爲移動設備優化過的Dalvik虛擬機網絡
集成的基於開源的Webkit引擎的瀏覽器架構
使用自定義的2D圖形庫優化過的圖形處理 ;基於OpenGL ES 1.0規範的的3D圖形處理(硬件加速可選)
SQLIte結構化的數據存儲
多媒體支持,常規的聲音,視頻,和圖像格式(MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)
GSM技術(硬件支持)
藍牙,EDGE,3G,和WIFI(硬件支持)
豐富的開發環境,包括設備模擬器,調試,內存查看,性能分析和Eclips IDE下的插件
Android Architecture
The following diagram shows the major components of the Android operating system. Each section is described in more detail below.
圖(略)
Android 體系結構
下圖展現了Android操做系統的主要組件,每一個部分講在後面詳細描述。
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.
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:
Notification Manager
that enables all applications to display custom alerts in the status barActivity Manager
that manages the lifecycle of applications and provides a common navigation backstackFor more details and a walkthrough of an application, see the Notepad Tutorial.
應用程序框架
經過提供了一個開放的開發平臺,Android提供給了開發者建立很是豐富和富有創意的應用程序的能力。開發者能夠自由的利用設備硬件,訪問位置信息,運行後臺服務,設置鬧鐘,在狀態欄添加提醒,等等等等。
開發者能夠徹底訪問核心應用程序所使用到的相同的框架API。應用程序的架構被設計爲能夠很是簡單的重用組件,一個應用程序能夠發佈它的功能而且另一些應用程序可使用這些功能(受限於框架的強制安全約束)。這個原則容許系統中的組件被用戶程序所替代。
全部基礎的應用程序是一系列的服務和系統,包括:
一套豐富的可擴展的View(視圖)集合能夠用來構建應用程序,包括列表,表格,文本框,按鈕,甚至一個內嵌的web瀏覽器
內容提供者容許應用程序訪問其餘程序的數據,或者共享本身的數據,好比電話簿
資源管理器提供了不須要編碼就能訪問資源的能力,如固定字符串,圖形,和佈局文件
提醒管理器容許用戶在狀態欄顯示自定義提示
活動管理器管理應用程序的生命週期和提供經常使用的導航回退功能
更詳細的說明和走讀一個應用程序代碼,請查看記事本程序教程
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程序框架暴露給開發者使用。部分核心庫列表以下:
系統c庫--一個基於嵌入式linux設備的由BSD派生的標準c系統庫
媒體庫--基於 PacketVideo的 OpenCORE;這個庫支持回放,以及許多流行的音視頻和圖像的格式,包括MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
表層管理器--管理訪問顯示子系統和多應用程序的2D,3D圖像層的無縫合成
web核心庫--一個流行的同時驅動Android瀏覽器和嵌入式web視圖的引擎
SGL--基礎2D圖像引擎
3D庫--一個基於OpenGL ES 1.0 APIs的實現;這個庫用了硬件3D加速或者是包括了高優化的軟件光柵
FreeType--位圖和矢量字體渲染
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.
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.
The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.
Android運行時
Android包含一組java語言的核心庫用來提供大多數核心庫的功能。
每個Android應用程序運行在它本身的進程中,擁有本身的虛擬機實例。Dalvik被編寫爲能夠在一個設備上有效地運行多個虛擬機實例,Dalvik執行文件是一個爲小內存環境優化過的Dalvik(.dex)可執行文件格式。虛擬機是基於寄存器的,運行的class是通過java編譯器編譯過而且由「dx」工具轉換爲.dex格式。
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版原本提供系統服務,如安全管理、內存管理、進程管理、網絡協議棧和驅動模塊。內核也扮演一個硬件與其餘軟件之間的一個抽象層的角色。