android系統體系架構


android體系架構


安卓底層是基於Linux內核的,上層還包括硬件抽象層。然后就是應用層模塊包括Native層,Android運行時環境,JAVA API框架以及系統/用戶app。
JAVA層通過JNI技術與native層通訊,而native通過syscall系統調用與內核層通訊

Linux內核

linux內核主要的任務就是進行基本的內存管理,進程管理,系統初始化等工作。

硬件抽象層(HAL)

硬件抽象層包含多個模塊,框架API請求訪問硬件時就會加載相應的模塊,例如藍牙/wifi等。

native層

native層其實就相當於windows中的應用層,so就等價於dll。

Android Runtime

Android runtime運行時主要包含android虛擬機(Dalvik/ART)和系統核心庫。系統核心庫是為java api frameword服務的,包含了對應的java API 的JNI接口函數的實現。

Java API Framework層

framework框架層主要包含了通過java語言編寫的API接口。例如:android/util/Log中實現的是一些日志打印JAVA接口,app應用程序在使用java編寫的時候可以通過導入這個類並調用對應的Log接口函數,實際這個接口函數是一個native方法,其會通過JNI調用對應的接口函數(在jni/android_util_Log.cpp中),然后此接口函數會通過syscall調用內核中對應的系統服務實現日志的相關操作。簡言之,framework層相當於是一個第三方庫,然后其對應接口JAVA API函數的實現都在native層(系統so庫),當android 虛擬機在執行到對應接口 API方法時就會去對應的系統so庫中尋找。

應用層

應用層包含用戶應用和系統應用,這些應用都以apk的形式保存。

android系統系統啟動過程


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM