Android群英傳筆記—第1章 Android體系與系統架構


1.1Google生態系統

1.2Android系統架構

Android大致分為了四層,即Linux內核層,庫和運行時,Framework層和應用層。

這里寫圖片描述

1.2.1Linux

Linux層,Android最底層最核心的部分。Linux層包含了Android系統的核心服務,包括硬件驅動,進程管理,安全系統,等等。

1.2.2Dalvik與ART

Dalvik包含了一整套的Android運行環境虛擬機,每個App都會分配Dalvik虛擬機來保證互相之間不受干擾,並保持獨立。它的特點是在運行時編譯。而在Android5.X版本開始,ART模式已經取代了Dalvik,ART采用的是安裝時就進行編譯,以后運行就不用編譯了。

1.2.3 Framework

1.2.3 Standard libraries

包含的是Android中的一些標准庫,就是開發者在開源環境中可以使用的開發庫。

1.2.5 Application

Application可以說是一個大環境,他就是整個項目的意思,管理所有的東西

1.3 Android App 組件架構

Android四大組件,指的是Activity,BroadCastReciever,Content Provider和Service,他們是組成一個Android App 的最基本元素。

1.3.1 Android四大組件是如何協同工作

主要還是看應用場景,但是也是各自都是相互有些許聯系的,Activity負責界面,展示數據,數據的來源可以通過資源獲取,Contentprovider也可以獲取其他應用的信息,還有一個不需要用戶看到的操作可以用Service來處理,而且Android系統在執行某種特定的操作的時候回發出一個廣播出來,我們可以用BroadCastReceiver去接收,他們之間的信息聯動靠的是Intent這個信使,是一樣四大組件的運行即是獨立也有緊密的聯系

1.3.2 應用運行上下文對象

在程序中,我們可以理解為當前對象在程序中所處的一個環境,一個與系統交互的過程
Activity,Service,Application都是繼承Context。
Android應用程序會在如下所示的幾個時間點創建上下文Context。

  • 創建Application
  • 創建Activity
  • 創建Service

創建Context的時機就是在創建Context的實現類的時候。當我們程序第一次運行並且創建application的時候,同時也創建了一個application context,所有的組件都共同擁有這樣一個Context對象,這個應用上下文對象貫穿整個應用進程的生命周期,為應用全局提供了功能和環境支持。而現在創建activity和service的時候,我們就已經實例了context對象,這就意味着可以直接使用this了,而在非context運行環境下,就需要xxxx.this了

1.4 Android系統源代碼目錄與系統目錄

1.4.1 Android系統源代碼目錄

查看Android源代碼的網站:http://androidxref.com/

Mackfile解析:一個像Android這樣大的工程,源碼肯定是有很多的,而且種類更是繁多,這些文件都是由一個叫做Mackfile的文件來管理的,他有自己的規則來歸類這些信息,比如編譯規則,打包規則,所以Mackfile就像一個shell腳本,不僅可以使用自己的語法,而且可以調用操作系統的命令 Mackfile確實很強大,最大的好處是這貨還能自動化編譯,所以機制形成了,編譯也就有條不紊 的進行着了

1.4.2 Android系統目錄

在Android手機中,系統的目錄結構與源代碼目錄結構還是有所不同的,通過ADB連上手機,通過Linux的ls命令查看Android系統的根目錄。

  • /system/app/ : 一些系統的APP
  • /system/bin/ :linux自帶的組件
  • /system/build.prop : 系統的屬性信息
  • /sysytem/fonts/ : 系統字體存放目錄,root后可下載TTF格式字體替換原字體
  • /system/framework/ :系統的核心文件,框架層
  • /system/lib/ : 存放幾乎所有的共享庫(.so)文件
  • /system/media/ : 存放系統提示音,系統鈴聲。
  • /sysytem/usr/ : 用來保存用戶的配置文件
  • /data/app/ : 包含用戶安裝的App或者升級的App
  • /data/data/ : 開發者訪問最多的目錄,這里包含了App的數據信息,文件信息,數據庫信息,以包名的方式來區分各個App
  • /data/system/ : 包含手機的各項系統信息
  • /data/misc/ : 保存了大部分WIFI ,VPN 信息

1.4.3 Android APP文件目錄


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com