【原創】菜鳥版Android 筆記1- Android架構和Application,android1-

來源:互聯網
上載者:User

【原創】菜鳥版Android 筆記1- Android架構和Application,android1-
Android架構

 圖1

Android架構自上而下名稱為應用程式層、應用程式框架層、運行庫和Adroid虛擬機器層、 Linux核心層。

1. 應用程式層

應用程式層像一座大廈裡面的磚瓦。我們所做的開發基本上都在應用程式層,在手機上應用程式層的軟體有案頭、簡訊、電話、瀏覽器、、扣扣等等這類軟體。應用程式層的軟體是在應用程式框架層的規定和支援下開發。兩個意思 :a. 應用程式層會調用架構層提供的API進行開發,b.架構層會對應用程式層的軟體進行規範和管理,應用程式層的軟體是面向架構層開發的。 該層採用java開發。

 

2. 應用程式框架層

應用程式框架層像一座大廈的鋼筋結構。應用程式框架層提供了Android開發模式和所有安卓開發所需要的各個組件、API,並提供了管理功能。其中很多的組件API通過JNI調用了下一層的功能來實現。該層使用Java代碼實現。架構層也允許應用在安全的情況下向其他程式發布service、Activity和資料。

  • Activity Manager:  管理應用程式生命週期,提供通用的導航回退功能
  • Window Manager:  主要用來管理視窗的一些狀態、屬性、view增加、刪除、更新、視窗順序、訊息收集和處理等。
  • Content Providers: 提供不同進程資料訪問和共用功能。
  • Resource Manager: 提供訪問非代碼資源,如本地化字串、圖形和布局檔案
  • Notification Manager:使所有的應用程式能夠在狀態列顯示自訂提示資訊
3. 函數庫和Android運行時層

Android運行時是一座大廈的地基,函數庫像根。函數庫全部採用C/C++語言實現,為架構層提供功能API。架構層可以採用JNI的方式調用。函數庫需要調用Linux核心。

其重要的函數庫有:

 

  •  Libc:專門為嵌入式裝置調整的標準C系統庫。
  •  SGL/openGL|ES:圖形引擎
  •  WebKit:瀏覽器引擎
  •   SQLite:輕量級關聯式資料庫
  •   Media Framework:多媒體播放、錄製架構。
  •   SurfaceManager:管理對顯示子系統的訪問。
  •   Freetype:位元影像和向量字型顯示。

 

Android運行時包含一個核心庫和虛擬機器程式,虛擬機器程式是解釋執行android java位元組碼的程式。虛擬機器程式有兩種,Dalvik和ART,Dalvik虛擬機器提供了JIT技術(Just-in-time Compiler)在運行時編譯經常啟動並執行位元組碼來提升應用的運行速度。在4.4以後提供了ART模式虛擬機器,ART技術就是在安裝應用的時候會進行一次先行編譯,將位元組碼轉換為機器語言儲存在本地,這樣在運行程式時就不會每次都進行一次編譯了,執行效率也大大提升,不過這也導致應用安裝時間變長。而每次啟動安卓系統的時候,系統都會進行所有應用的安裝,所以啟動速度變慢。每一個安卓應用程式都運行在一個虛擬機器進程中。它把所有的進程和記憶體管理都交給了運行時,在有必要的時候,運行時會結束或者暫停進程,從而更有效管理資源。

Android運行時和函數庫在linux核心之上,由核心來處理與底層硬體的互動。同時有一套API提供對所有底層服務、硬體和功能的訪問。

 

4. Linux核心層

Linux核心層像地球。該層就是一個linux核心+驅動。負責了記憶體管理、進程管理、協議棧和驅動模型等核心系統服務。

 

Android Application

1. 應用程式優先順序等於其優先順序最高的組件的優先順序。

2. 應用程式不等於進程。一個安卓應用,可以擁有多個進程.remote,process。

優先順序

 

活動進程

擁有與使用者互動的組件

以下幾種情況屬於活動進程

A. 處於onCreate、onStart、onDestroy的service

B. 正在運行、標記為前台啟動並執行service

C. 處於onReceive的BroadcastReceiver

D. 活躍狀態的Activity

可見進程

使用者可以看到,但是不能互動,就像Activity上有個彈窗。

服務進程

開啟了service的進程

後台進程

 不可見、沒有service的activity的進程。

空進程

只是為了緩衝。

 

3. 如果應用程式A依賴於應用程式B的service或者provider,那麼優先順序肯定B>A

4. 能對應用程式級的廣播作出響應(低記憶體)。

5. 因為是應用程式級的單例模式對象,各種組件都能夠取得這個對象,所以可以用來傳遞資料、維護和管理資料,做一切想做的。

Application類事件回調

事件處理函數

 

onCreate

建立時觸發

onLowMemory

低記憶體事件觸發,無參數

onTrimMemory(int)

Android 4.0之後提供的API,系統會根據不同的記憶體狀態來回調。會帶有int參數,表示現在的狀態

onConfigurationChanged(Configuration )

配置改變處理

 

 

 

 

 

 

 

 

 

6. 在運行時配置(例如語言、插入SIM卡、時區變換、旋轉螢幕等)改變時,不會像Activity那樣重啟。

轉載請註明出處:http://www.cnblogs.com/stonehat/

 

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.