Android群英傳學習筆記(一)
第一章:Android體系與系統架構
1、Android大致分為四層:
①Linux核心層:Android最底層最核心的部分,Linux層包含了Android系統的核心服務,包括硬體驅動,程序管理,安全系統等等。
②庫和執行時
③FramWork層
④應用層
Dalvik與ART:Dalvik包含了一整套的Android執行環境虛擬機器,每個App都會分配來保證互相之間不受干擾,並保持獨立。
使用NDK開發主要構成:AndroidManifest,DalvikClasses
ResourceBundle,Libraries&JNI
Java開發的App的主要構成:AndroidManifest,DalvikClasses
ResourceBundle
2、Android App元件架構
四大元件:Activity、BroadCastReciever、ContentProvider、Service
如何協同合作:Activity負責向用戶展示資訊和處理結果,而資訊可以通過資源獲取,也可以通過ContentProvider來獲取,或者是Service從後臺計算、下載、處理的結果。
元件與元件之間通過Intent來通訊、傳遞資訊、交換資料。
3、Context
Activity、Service、Application都是繼承自Context。
Context被建立的時間點:建立Application、建立Activity、建立Service
獲取Context物件:直接使用this(在匿名內部類中必須指定XXXXActivity.this),通過getApplicationContext()方法獲取整個App的Context。
4、Android系統原始碼目錄與系統目錄
①Android系統原始碼目錄:
- Makefile
- bionic(bionic C庫)
- bootable(啟動引導相關程式碼)
- build(存放系統編譯規則等基礎開發包配置)
- cts(Google相容性測試標準)
- dalvik(dalvik 虛擬機器)
- development(應用程式開發相關)
- external(android使用的一些開源的模組)
- vendor(廠商定製程式碼)
- frameworks(Framework框架核心)
- out(編譯完成後的程式碼輸出目錄)
- hardware(廠商硬體適配層HAL程式碼)
- packages(應用程式包)
- prebuilt(x86和arm架構下預編譯資源)
- sdk(sdk及模擬器)
- system(底層檔案系統庫、應用及元件)
②Android系統目錄
•/system/app/這裡面放的是一些系統的App
•/system/bin/這裡面主要放的是Linux自帶的元件
•/system/build.prop這裡記錄的是系統的屬性資訊
•/system/fonts/系統字型存放目錄root後可下載TTF格式字型替換原字型,達到修改系統字型的效果
•/system/framework/系統的核心檔案、框架層•/system/lib/存放幾乎所有的共享庫(.so)檔案
•/system/media/該目錄用來儲存系統提示音、系統鈴聲
•/system/usr/該目錄用來儲存使用者的配置檔案
•/data/data/這裡包含了App的資料資訊、檔案資訊、資料庫資訊等
•/data/app/這個目錄包含了使用者安裝的App或者升級的App
•/data/system/這個目錄包含了手機的各項系統資訊
•/data/misc/這個目錄儲存了大部分的Wi-Fi、VPN資訊