關於Android系統 和 Android應用程式

來源:互聯網
上載者:User

                               

 

  Android系統是專為移動終端設計的作業系統,基於Linux 2.6版核心為其提供安全,進程管理,記憶體管理,網路以及驅動模型等。

  一個Android應用程式能被安裝到Android系統的移動終端上,並滿足使用者對某些功能的需求,它需要android系統對它的支援。要取得Android系統的支援,它就必須遵守Android系統的遊戲規則。 Android系統是基於Linux核心,說白了就是要靠Linux來驅動終端裝置來完成所有底層操作。每種操作在系統內部其實都是進程來完成的。

 

  我們能看到的所有應用程式一般都是可執行檔檔案,但是當它們運行起來後,進入系統便成為了一個或者多個進程,中央處理器會輪流讓這些進程使用,從而達到應用程式執行的目的。當然進程中也會產生子進程,Linux系統如何處理他們呢?它會為每一個進程或者子進程都賦予了一個唯一的ID,把它們看成不同的使用者,這樣說來一個應用程式就如同一個使用者組了。Linux通過為每一個使用者ID賦予許可,來保證對資源的訪問安全。並有專門的服務管理這些進程的狀態。以便能夠更好的管理這些進程佔有的系統記憶體資源。那麼Android系統呢? 同樣也是這樣。

 

Google這樣解釋Android系統和Android應用的關係:

  "Android作業系統是一個多使用者的Linux系統,在這個系統中,每個應用程式都是不同的使用者。"

  " 預設情況下,Android系統會為每個應用程式賦予一個唯一的Linux使用者ID,但這個ID只有Linux系統自己知道,應用程式本身不瞭解。”

  " Linux系統會為一個應用程式中所有的檔案授權,讓這些檔案只能被這個應用程式的Linux使用者可以訪問。"

 

  Google的工程師們在Linux核心的基礎上增加了許多模組和驅動,並未Linux核心封裝了更加統一的介面類庫,使得應用程式不必直接去訪問Linux核心。

 

  再看Android App, 統一由Java語言編寫,並使用其SDK提供的工具將他們連同資料和資源檔編譯成一個Android Package.  就是那些我們安裝的.apk 。

這些檔案一旦被安裝完成,每個Android App都會有一個自己的安全沙箱Android Runtime。這裡有Dalvik VM 和Java語言封裝的作業系統核心功能模組類庫。它有效隔離了Java應用和Android系統核心同時卻又提供了更加安全的與核心的交流途徑。

  

      預設情況下,每個應用程式都運行在自己的Linux進程中。當應用程式中任何一個組件需要運行時,Android就會啟動這個進程,並關閉那些已經不再需要的進程或者系統不得不為其他應用程式釋放記憶體時也會關閉某些進程。

       

      通過這種方式,Android系統實現了最小特權原則。也就是說每個應用程式,預設情況下,僅僅能訪問那些需要他們工作的組件。這樣它就建立了一個非常安全的環境,在這裡面應用程式不能訪問系統的未授權任何內容。

 

      這當然不符合應用程式啟動並執行需要,所以Android系統提供了另外的途徑來供應用程式們訪問系統資源服務以及交流各自的資料資源。

 

      之前說過,每個應用程式都有一個Linux使用者ID,Linux系統根據使用者ID來授權使用者可訪問的資源。那麼如何來實現資源共用和系統其它服務的調用呢?

 

  在Android系統中允許安排兩個應用程式共用同一個Linux使用者ID,這樣他們就能相互訪問各自的檔案了。為了能節約系統資源,兩個共用同一個Linux使用者ID的應用程式,可以運行在同一個Linux進程中並共用同一個VM,當然他們必須有系統簽發的同樣的認證才行。

 

  我們的應用程式可以實現請求許可去訪問終端資料,比如使用者的通訊錄,SMS資訊,以及可插拔儲存(SD 記憶卡),相機,藍芽等。但所有應用程式的這些許可都來源於使用者安裝它們時的授權。我們在安裝Android應用程式的時候一定要注意提示的協議資訊啊!!!

      

 

     據稱,Google說Android就是Android,已經不再是Linux了,我們走到路已經不同!Linux則在希望Android 能夠回到Linux懷抱。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.