零零散散的學習了Android,最近學習Android群英傳,想借此機會好好系統整理總結自己的知識,形成一個體系
通過本章學習
-Google生態系統 ? ? ? ?
-Android系統架構 ? ? ?
-android源代碼與系統目錄結構
1.1Google生態系統 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
底層通過最快的C語言保證效率,上層使用Java簡單、快速進行開發,Google利用搜索、移動、web的各個入口來掌握互聯網的控制權,從而構建自己的生態系統
1.2Android系統架構 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Android是一個移動操作系統,大致可以分為四層:Linux內核層 ?系統運行庫層 ?Framework層 ?應用層
1.2.1 Linux ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
手機的Setting選項中包含了內核版本,Linux層包含了Android系統的核心服務,包括硬件驅動、進程管理、安全系統 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
1.2.2 Dalvik與ART ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
每個APP都會分配一個Dalvik虛擬機來保證互相之間不受干擾,特點是運行時編譯。而在Android 5.X版本之后ART模式取代Dalvik,特點安裝時編譯
1.2.3 Standard libraries ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
開發者在開源環境中可以使用的開發庫
1.2.4 Framwork ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Android的API,使用API能快速開發出Android應用程序
1.2.5 Application ? ? ? ? ? ? ?
設計者希望Android的框架層能起到承上啟下的功能,讓應用的各個組件之間解耦,并通過框架進行統一的調度、管理
1.3 Android App組件架構 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
前面我們講解了Android系統結構,而在應用層App的組件架構:Activity ?Service ?ContentProvider BroadCastReciever
1.3.1 Android四大組件如何協同工作 ? ? ? ? ? ? ? ? ? ? ? ? ? ?
通過資源獲取、ContentProvider獲取其他應用的信息、Service從后臺計算、下載、處理的結果通過Activity向用戶展示信息和處理結果;組件與組件之間通過Intent來通信、傳遞信息、交換數據
1.3.2應用運用上下文對象 ? ? ?
Context、我們可以理解為當前對象在程序中所處的一個環境,一個與系統交互的過程。當應用程序第一次啟動時,Android系統都會創建一個Application對象,同時創建Application Context對象,所有組件都擁有這樣一個對象,這個應用上下文對象貫穿整個應用進程的生命周期,創建Application、Activity、Service時也會創建Context上下文對象
1.4 Android系統源代碼目錄與系統目錄
? Android源代碼目錄包含了Android系統的所有源代碼,從底層驅動到上層應用;但是在手機中系統目錄與源代碼的目錄并不是一一對應的,而是與源代碼編譯之后,與打包生成的Image文件的結構相同
1.4.1Android系統源代碼目錄
Android源代碼網站:http://androidxred.com/
Android作為手機操作系統,我們需要將源代碼編譯后才能使用。Makefile機制:android源文件很多,不同的功能、模塊、按類型分別放置在不同的目錄下,這些模塊通常都會通過一個Makefile的文件來進行管理。它定義了一系列規則來指定模塊,哪些文件需要編譯,以及這些文件按照怎樣的順序去編譯??偨YMakefile的好處就是能自動化編譯,同時還能做到可控制的編譯
1.4.2Android系統目錄
/system/app/ 存放的是系統的app
/system/bin/ Linux自帶的組件
/system/build.prop 記錄的是系統的屬性信息
/system/font 系統字體存放目錄root后可下載TTF字體替換原來的字體,達到修改系統字體的效果
/system/framework/ 系統的核心文件、框架層
/system/lib/ 存放幾乎所有的共享庫(.so)文件
/system/media/ 保存系統提示音、系統鈴聲
/system/media/audio/ 保存Android系統默認的鈴聲,alarm是鬧鐘鈴聲,notification短信或者提示音,ringtones來電鈴聲,ui界面音效
/system/usr/ 保存用戶的配置文件
/data/app/ data目錄包含用戶的大部分數據信息,/data/app/包含了用戶安裝的App或升級App
/data/data/ App的數據信息、文件信息、數據庫信息,以包名來區分各個應用
/data/system/ 手機的各項系統信息
/data/misc/ 保存大部分的Wi-Fi、VPN信息
1.4.3 Android App文件目錄
App目錄中的代碼為應用程序代碼,Gradle Scripts為編譯腳本