標籤:程式設計語言 androi 編譯 training 聯絡 evel 其他 eve iss
Android 應用採用 Java 程式設計語言編寫。Android SDK 工具將您的代碼 — 連同任何資料和資源檔 — 編譯到一個 APK:Android 軟體包,即帶有 .apk 尾碼的封存檔案中。一個 APK 檔案包含 Android 應用的所有內容,它是基於 Android 系統的裝置用來安裝應用的檔案。
安裝到裝置後,每個 Android 應用都運行在自己的安全沙箱內:
- Android 作業系統是一種多使用者 Linux 系統,其中的每個應用都是一個不同的使用者;
- 預設情況下,系統會為每個應用程式指派一個唯一的 Linux 使用者識別碼(該 ID 僅由系統使用,應用並不知曉)。系統為應用中的所有檔案設定許可權,使得只有分配給該應用的使用者識別碼 才能訪問這些檔案;
- 每個進程都具有自己的虛擬機器 (VM),因此應用代碼是在與其他應用隔離的環境中運行;
- 預設情況下,每個應用都在其自己的 Linux 進程內運行。Android 會在需要執行任何應用組件時啟動該進程,然後在不再需要該進程或系統必須為其他應用恢複記憶體時關閉該進程。
Android 系統可以通過這種方式實現最小許可權原則。也就是說,預設情況下,每個應用都只能訪問執行其工作所需的組件,而不能訪問其他組件。 這樣便營造出一個非常安全的環境,在這個環境中,應用無法訪問系統中其未獲得許可權的部分。
不過,應用仍然可以通過一些途徑與其他應用共用資料以及訪問系統服務:
- 可以安排兩個應用共用同一 Linux 使用者識別碼,在這種情況下,它們能夠相互訪問彼此的檔案。 為了節省系統資源,可以安排具有相同使用者識別碼 的應用在同一 Linux 進程中運行,並共用同一 VM(應用還必須使用相同的認證簽署)。
- 應用可以請求訪問裝置資料(如使用者的連絡人、簡訊、可裝載儲存裝置 [SD 記憶卡]、相機、藍芽等)的許可權。 使用者必須明確授予這些許可權。 如需瞭解詳細資料,請參閱 使用系統許可權
[android開發篇] 許可權