Android 主要從上層(接近使用者)到最底層(接近硬體)順序為:
Application -> Framework -> Hal -> Linux Kernel。
Application層:應用程序是在這進行發展,也是使用者直接接觸到的部分。
Framework層:這裡會透過AIDL與Service的API進行調用,至於AIDL是屬於一種Binder的機制去進行運作,詳細內容另外會發一篇說明。
HAL層:這是在Android 8.0之後發明出來的概念,主要目的是能讓上層與下層能夠分開處理,利用提供標準的API讓硬體廠商能夠以此標準使用,這樣的話即使HAL層以下做更新,也不會影響到上層的運作。
Linux Kernel:這部分直接和driver與硬體直接相關,也是最底層的內容。
而最重要的是四大組件
其他較細的組件:
Context: 所有的Activity 與 Service都是繼承Context而來,通過Context,可以讓目前的元件了解現在的Application的狀況。
intent: 在元件之間傳輸資料的工具,當我們需要將資訊從一個Activity傳至另一個Activity時,就需要建立一個intent帶著資料傳輸。
Handler: 是屬於Android的消息機制,透過Handler可以將所有的消息依照順序去處理,處理好每個事件的順序。除此之外,也能利用此去切換程式碼的執行序,或者是延遲訊息的處理。