標籤:android blog http io 使用 java ar 檔案 資料
Android應用程式使用java語言編寫的。Android SDK工具將所有的資料和資源檔以及代碼進行編譯,打包稱為一個apk檔案。一個apk檔案中的所有代碼被認為是一個應用,android系統的裝置使用這個apk檔案來安裝應用。
一旦在裝置上安裝了,每個android應用都生存在自己的安全沙箱內部: ①android作業系統是一個多使用者的linux系統,在這之中每一個應用是一個不同的使用者 ②預設情況系,系統給每一個應用程式指派一個不相同的user id,這個user id只被系統使用,對於應用來說是不知道的。系統給應用中的所有檔案都設定了permission,因此只有分配給這個應用的user id才能訪問它們。 ③每個進程都有他自己的虛擬機器,因此應用中的代碼是和其他應用中的代碼相隔離的。 ④預設情況下,每個應用都在自己的linux進程中運行。當應用中的任何一個組件需要執行的時候,android開啟這個進程;當不需要運行或者系統需要為其他進程分配記憶體的時候會關閉進程。 在這種情況下,android系統實現了the principle of least privilege,也就是說每個應用預設情況下之恩那個訪問到它需要訪問的組件。這樣就產生了一個安全的環境:每個應用不能訪問到它沒有存取權限的系統的其他部分。 但是,還是有方法在應用之間共用資料的: ①有這樣一種可能:兩個應用共用相同的linux user id,在這樣的情況下,他們能夠訪問到其他程式的檔案。為了節省系統資源,有共用id的應用可以在同一個linux進程中運行,共用同一個虛擬機器。 ②一個應用可以發起請求存取權限來擷取資料,比如使用者的連絡人,短訊息等。所有的應用permission必須在使用者安裝的時候被授予。 android四大組件: ①Antivities,代表了用於介面的一屏。一個Activity需要繼承Activity類 ②Services,在後台啟動並執行一個組件,能夠執行長時間啟動並執行操作或者為遠端進程執行操作。Service沒有介面。一個Service需要繼承Service類。 ③ContentProviders,一個ContentProvider管理著應用的一組可以共用的資料。我們可以把資料存放區在我們應用可以訪問到的任何地方,比如檔案系統,SQLite資料庫,網路上或者任何其他的持久儲存地方。通過ContentProvider,其他的應用可以訪問甚至修改資料,前提是contentProvider允許他這樣做。對於私人應用的資料的讀和寫來說ContentProvider也是很有用處的。一個ContentProvider必須要實現一個ContentProvider類,而且應用實現一組標準的API使得其他的程式能夠執行事務。 ④BroadcastReceivers,是一個相應系統廣播訊息的組件。許多廣播是由系統產生的,比如電池電量過低;應用也可以發廣播,比如讓其他應用指導已經下載了一些資料到裝置上,大家可以使用了。儘管broadcast receiver沒有介面,他們也可以產生一個狀態列提醒來告知使用者。一個broadcast receiver應該繼承BroadcastReceiver,而每一個廣播是通過一個Intent對象來傳遞的。 http://blog.csdn.net/llbupt/article/details/7357307
Android基礎知識、四大組件(轉)