目錄:前端
一、Android系統架構java
二、Android類庫android
三、四大組件web
-----------------------------------------------------------------------數據庫
一、Android系統架構編程
從架構圖看出架構分爲五個部分,由下往上依次爲:瀏覽器
- Linux Kernel:Android基於Linux提供核心系統服務,例如:安全、內存管理、進程管理、網絡堆棧、驅動模型。Linux Kernel也做爲硬件和軟件之間的抽象層,它隱藏具體g硬件細節而爲上層提供統一的服務。
- Android Runtime:Android包含一個核心庫的集合,提供大部分在Java編程語言核心類庫中可用的功能。 每一個Android應用程序是Dalvik虛擬機中的實例。 java程序的運行須要java的核心包的支持,而後經過JVM虛擬機來運行咱們的應用程序,Android Runtime裏的Core Libraries就至關於java的JDK,是運行android應用程序所須要的核心庫,Dalvik Virtual Machine就至關於JVM,這是Google專爲Android開發的運行android應用程序所需的虛擬機。 Dalvik的可文件格式是.dex,dex格式是專爲Dalvik設計的一種壓縮格式,適合內存和處理器速度有限的系統。Dalvik依賴於Linux Kernel提供基礎功能,如線程和底層內存管理。
- Liberaries:Android包含一個C/C++庫的集合,供系統的各個組件使用。這些功能能經過Android的應用程序框架(application framework)暴露給開發者。下面列出一些核心庫:
- 系統C庫:標準C系統庫(libc)的BSD衍生,調整爲基於嵌入式Linuxhe設備。
-
- 媒體庫:基於PackerVideo的OpenCORE。這些庫支持播放、錄製許多音頻和視頻h格式,以及靜態文件。
- 界面管理:管理訪問顯示子系統和無縫組合多個應用程序的2D和3D圖形層。
- LibWebCore:(WebKit是一個開源的瀏覽器網頁排版引擎,包含WebCore排版引擎和JSCore引擎)Web瀏覽器引擎,驅動Android瀏覽器和內嵌的web視圖。
- SGL:基本2D圖形引擎。
- 3D庫:基於OpenGL ES APIS的實現。庫使用硬件3D加速或包含高度優化的3D軟光柵。
- FreeType:位圖和矢量字體渲染。
- SQLite:關係型數據庫引擎。
- Application Framework:經過開放的開發平臺,開發者可使用核心應用程序所使用的框架APIs。應用程序的體系結構旨在簡化組件的重用,任何應用程序都能發佈他的功能且任何其餘應用程序可使用這些功能(須要服從框架執行的安全限制)。這一機制容許用戶替換組件。 全部的應用程序實際上是一組服務和系統,包括:
- View:視圖集合,包括列表、網格、文本框、按鈕,甚至是內嵌的網頁瀏覽器。
- Content Providers:內容提供者使得應用程序能訪問其餘應用程序的數據(如通信錄),或共享本身的數據。
- Resource Manager:資源管理器提供訪問非代碼資源,如本地化字符串、圖形、佈局文件。
- Notifacation Manager:通知管理器使得全部的應用程序可以在狀態欄顯示自定義警告。
- Activity Manager:活動管理器管理應用程序生命週期,提供通用的導航回退功能。
- Application:Androide裝配一個核心應用程序集合,包括電子郵件、日曆、地圖、瀏覽器、通信錄等。開發者也能夠自行開發應用程序。
二、Androido經常使用類庫安全
- Android.util:核心工具包
- Android.os:操做系統包,提供基本操做系統服務的訪問n時間,例如消息傳遞、進程間通訊。
- Android.graphic:圖形API,提供了支持畫布、顏色和繪畫的低級圖形類,讓開發者能夠在畫布上畫。
- Android.database
- Android.content:內容API,經過處理資源、內容提供器和a包的服務,來管理數據訪問和發佈。
- Android.view:核心用戶界面類。全部的用戶界面元素的都是使用一系列View構造的,用來提供交互組件。
- Android.widget:構建在View包的基礎上,Widget類是已經建立好的用戶界面元素,能夠直接在應用程序中使用,包含列表、按鍵、佈局。
- com.google.android.maps:提供對本地地圖空間的訪問。
- Android.app:應用程序包,包含活動(Activity)和服務(service)API,造成全部應用程序的基礎。
- Android.provider:爲了方便開發者對某些標註的內容提供器進行訪問,provider包提供了一些類。
- Android.telephony:容許直接與電話棧進行交互,實現打電話、監控電話狀態、收發SMS消息。
- Android.webkit:提供與基於Web的內容相關的API,包括一個WebView控件,能夠在活動或者cookiea管理器嵌入一個瀏覽器。
三、四大組件cookie
(1)Activity:活動,一種包含用戶界面的組件,用於和用戶進行交互。在Android的程序當中,Activity 通常表明手機屏幕的一屏。若是把手機比做一個瀏覽器,那麼Activity就至關於一個網頁。在Activity 當中能夠添加一些Button、Check box 等控件。能夠看到Activity 概念和網頁的概念至關相似。
通常一個Android 應用是由多個Activity 組成的。這多個Activity 之間能夠進行相互跳轉,例如,按下一個Button 按鈕後,可能會跳轉到其餘的Activity。網絡
生命週期:
activity三種狀態:運行(運行在最前端)、中止(不可見,徹底被覆蓋)、暫停(可見,但前端還有其餘activity)
生命週期相關的方法:onCreate-onStart-onResume-onPause-onStop-onDestory-onRestart
(2)broadcastReceiver:廣播接受者,沒有用戶界面。
Broadcast 是一種普遍運用的在應用程序之間傳輸信息的機制。而BroadcastReceiver 是對發送出來的Broadcast進行過濾接受並響應的一類組件。
使用broadcastReceiver可讓應用程序對外部事件作出響應。例如,當電話呼入這個外部事件到來的時候,能夠利用BroadcastReceiver 進行處理。
(3)contentProvider:內容提供者,使一個應用程序的指定數據集提供給其餘應用程序。這些數據能夠存儲在文件系統中、在一個SQLite數據庫、或以任何其餘合理的方式。
(4)Service:服務,Service 是android 系統中的一種組件,它跟Activity 的級別差很少,可是他不能本身運行,只能後臺運行,而且能夠和其餘組件進行交互。Service 是沒有界面的長生命週期的代碼。