編輯:關於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。
說明本來很懶,但是還是會忍不住的寫下這有用既沒有用的所謂技術博客,希望會給你帶來有所啟發,因為這樣的功能,寫的人很多,也是為了自己能夠理解的夠透徹,也是為了大家也能更好的
剛開始學習Service的時候以為它是一個線程的封裝,也可以執行耗時操作。其實不然,Service是運行在主線程的。直接執行耗時操作是會阻塞主線程的。長時間就直接ANR了
最近我嘗試使用ViewPager+GridView實現的,看起來一切正常,廢話不多說,具體代碼如下:如圖是效果圖 首先分析下思路1.首先是怎麼布局:整體是一個V
Android的繪圖繼承於View組件,重寫onDraw(Canvas canvas) 方法時涉及一個繪圖API: Canvas 代表了依附於指定View的畫布,並且提供