星期日, 8月 21, 2011

Android應用程式基礎

Android應用程式筆記

先我們從android適用甚麼樣的程式語言編寫的開始,所有Android應用程式以Java程式語言撰寫,應用程式程式碼包括任何資料和資源檔案經由Android SDK編譯為一個Android package,編譯後以.apk為檔案,而一個.apk檔案就是一個我們在行動裝置上使用的應用程式,.apk可以安裝在任何以android為作業系統的裝置上。一旦應用程式安裝到裝置上會有以下幾個安全性特性:
  • Android作業系統是一個多用戶linux系統,應用程式之間彼此是不同的用戶;
  • 系統分配每個應用程式一個唯一的linux使用著ID,這個ID只有系統知道,應用程式並不知道,系統為每個應用程式中所有的檔案設定權限,因此只有被分配到使用者ID的應用程式可以使用系統中的資源;
  • 每個進程(process)擁有各自的虛擬機器,因此應用程式與應用程式彼此之間是互相隔離的;
  • 每個應用程式運行在自己的linux執行緒中。當任何一個應用程式的元件需要被執行時,android便會自動啟動執行續,然後在元件不再需要時或者系統必須為其他應用程式回收記憶體時會關閉執行續。
在這種方式下android落實了最小許可權原則,每個應用程式只能在元件需要時才會允許存取系統資源,如此創造一個非常安全的環境,應用程式無法在沒有權限下存取系統的任何部分,保護系統避免受到錯誤或惡意程式的破壞。

然而,還是有一些方法讓應用程式之間分享資料以及存取系統服務:
  • 安排兩個應用程式分享同一個linux使用者ID是可能的,如此這兩個應用程式就可以存取彼此的檔案。為保護系統資源,有相同linux使用者ID的應用程式也可以安排運行相同的linux執行緒中及分享相同的虛擬機器。
  • 應用程式可以要求存取裝置資料的權限,如使用者聯絡人、SMS 訊息、可安裝存儲(SD card)、攝影機、藍芽等等。這些應用程式權限必須在使用者安裝時就授予。


感謝大家閱讀,如有錯誤歡迎指教,謝謝。

沒有留言:

張貼留言