Application Fundamentals

android應用程序使用Java語言編寫。android SDK將代碼編譯(包括所有的數據和資源
文件)進一個android包,一個以apk爲後綴名的存檔文件。這個文件被視爲一個
應用,並且可以安裝在android設備上運行。
一旦在某個設備上安裝之後,每一個android應用程序都存在於自己的安全沙箱中:
-- android操作系統是一個多用戶的Linux系統,在這個系統裏,每一個應用程序都是
一個不同的用戶
-- 默認情況下,系統會爲每個應用分發一個唯一的ID(僅被系統使用,應用不知)。系
統爲應用中的所有文件都設置了權限,因此,只有系統分發給應用的ID才能訪問文件
-- 每一個進程都有它自己的虛擬機,因此,某個應用的代碼是與其他應用分開運行的
-- 默認情況下,每一個應用程序都是運行在自己的linux進程中。當某個應用裏面的任
何一個組件需要被執行的時候,android都會啓動屬於這個應用的進程然後,當它不在
有用或者系統需要恢復內存以便其他應用使用時,此應用的進程會被殺死
android系統通過以上方式時間了"最小特權原則"。換句話說,每一個應用在默認情況
下,都只能訪問它工作所需的組件,僅此而已。一個應用不能訪問它未被授權的系統部
分,這也就創建了一個很安全環境。
當然,也存在很多方式來使得一個應用與其他的應用分享數據以及一個應用來訪問系統
服務:
-- 爲兩個應用分發相同的ID是有可能的,在這種情況下,這兩個應用彼此能互相訪問
對方的文件。爲了保護系統資源,有着相同ID的應用也能運行在相同的linux進程中、
分享同一個虛擬機(這兩個應用也必須擁有相同的證書)
-- 一個應用可以請求授權訪問設備的用戶的聯繫人,SMS信息,SD卡,相機,藍牙,等
等。當然,這有個前提,即在安裝應用時,必需經過用戶授權
以上涵蓋了一個android應用是如何存在於系統之中的基本原則。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章