如果從事Android應用程式開發,也就說通常所說的APP開發,瞭解Android應用程式架構非常必要的,這方面的知識最直接的學習渠道是看SDK 的文檔。對單個應用程式,Andriod沒有統一的入口,它是由內部zygote建立出來的。瞭解Android內部實現機制的人可從看出,對每個應用APP,Android zygote為每個應用建立一個Dalvik 虛擬機器,然後APP運行在這個虛擬機器上。
從事應用開發的程式員可以不關注底層實現,但是因為應用是由Zygote建立出來的,Android應用是用JAVA語言編寫的,然後AndroidSDK工具會編譯這些代碼,並將代碼和資料、資源檔一起打包成以尾碼apx結尾的Android應用程式套件,將Andriod應用程式套件安裝到裝置或者模擬器之後,就可以直接運行這個應用。
考慮到安全性,Android設計了最小許可權的安全機制,任何組件需要什麼許可權需要事先聲明申請才可以獲得。而且Android為應用設計了六大組件,每個組件提供了系統進入應用的不同入口,並通過AndroidManifest.xml檔案進行組織。
下面針對其中的主要組件進行全域性解釋。
1)Activity
Activity是Android組件中最基本的一個組件,Android通常代表一個單獨的螢幕,也就是一次顯示,一個應用可以包含多個Activity,在一個Activity內部使用startActivity可以跳轉到另一個activity中。通常一個應用APP有一個唯一個主入口介面,Activity跟UI 中的Window是不一樣的概念,但每個activity會被指定一個window用來繪製使用者介面。Activity是有生命週期的,當前螢幕顯示一個Activity,並不代表跳轉到這個Activity的前面Activity就已經停止銷毀了,它是有一個BackStack來支援這個生命週期的。
2)Service
Service 是一種長生命週期,無使用者介面的組件,比喻媒體播放。