編輯:關於android開發
Android系統是基於Linux內核開發的,因此,Android系統不僅保留和繼承了Linux操作系統的安全機制,而且其系統架構的各個層次都有獨特的安全特性。
Android的Linux內核包含了強制訪問控制機制和自主訪問控制機制。強制訪問控制機制由Linux安全模塊來實現。自主訪問控制機制通常由文件訪問控制來實現,Linux文件系統的權限控制是由user、group、other與讀(r) 、寫(w) 、執行(x)的不同組合來實現的。這樣,每個文件都有三個基本權限集,它們的組合可以容許、限制、拒絕用戶、用戶組和其他用戶的訪問。通常,只有uid是“system”或“root”用戶才擁有Android系統文件的訪問權限,而應用程序只有通過申請Android權限才能實現對相應文件的訪問,也正因為此,Android使用內核層Linux的自主訪問控制機制和運行時的Dalvik虛擬機來實現Android的“沙箱”機制。
Android“沙箱”的本質是為了實現不同應用程序和進程之間的互相隔離,即在默認情況下,應用程序沒有權限訪問系統資源或其它應用程序的資源。每個APP和系統進程都被分配唯一並且固定的User Id,這個uid與內核層進程的uid對應。每個APP在各自獨立的Dalvik虛擬機中運行,擁有獨立的地址空間和資源。運行於Dalvik虛擬機中的進程必須依托內核層Linux進程而存在,因此Android使用Dalvik虛擬機和Linux的文件訪問控制來實現沙箱機制,任何應用程序如果想要訪問系統資源或者其它應用程序的資源必須在自己的manifest文件中進行聲明權限或者共享uid。
Android中的數據分為system和data兩個區,其中system是只讀的,data是用來存放應用自己的數據,這樣保證系統數據不會被隨意改寫。
任何一個應用程序在使用Android受限資源(網絡、電話、短信、藍牙、通訊錄、SdCard等)之前都必須以XML文件的形式事先向Android系統提出申請,等待Android系統批准後應用程序方可使用相應的資源,權限與Java的API是多對多的映射關系。
如何讓兩個app運行在同一個進程裡? 1. 兩個app用相同的private key來簽名。 2. 兩個app的Manifest文件中添加android:sharedUserId 設置成相同的UID。
android Gui系統之SurfaceFlinger(4),androidgui系統8.Vsync 8.1概論 VSYNC(Vertical Synchronizat
Android之ProgressBar初步應用,androidprogressbar這裡利用 ProgressBar 即時顯示下載進度。 途中碰到的問題: 1、主線程中不
活動的生命周期系列(一)返回棧,生命周期系列 生命周期對程序員很重要,特別當我們了解,就可以寫出更流暢的程序,更好的來
基於MVVM的知乎日報應用安卓源碼,mvvm日報安卓源碼使用data binding , dagger2 , retrofit2和rxjava實現的,基於MVVM的知乎日