Android學習筆記---體系與系統架構(20170426)

1.系統架構

Android從上往下分爲應用層(Application):主頁、通訊錄、聯繫人、瀏覽器等我們平常使用經常見到和使用的東西所處的一層;Framework層:該層就是我們應用開發基於的接口層,包括常用的四大組件以及各類Manager;庫和運行時:庫主要是android的內嵌功能支持,比如說SQLite、OpenCLJES等等(對該層大多數東西還未了解,以後有待補充),運行時則是我們應用運行需要的DVM虛擬機以及環境等(以後有待了解補充);Linux內核層:這是android最底層最核心的部分,個人理解:該層就是通過C語言調用底層硬件支持所在,也是我們定製手機系統的修改之處。

2.Dalvik與ART

Dalvik虛擬機,是Google等廠商合作開發的Android移動設備平臺的核心組成部分之一。它可以支持已轉換爲.dex(即“Dalvik Executable”)格式的Java應用程序的運行。.dex格式是專爲Dalvik設計的一種壓縮格式,適合內存和處理器速度有限的系統。
Dalvik經過優化後,允許在有限的內存中同時運行多個虛擬機的實例,並且每一個Dalvik應用作爲一個獨立的Linux進程執行,獨立的進程可以防止在虛擬機崩潰的時候所有程序都被關閉。其實就是每一個應用都是作爲獨自的虛擬機運行,與其他應用互不牽扯。目前在Android4.4及其以下的版本中,應該全都是使用的Dalvik這種模式。

Android Runtime(縮寫爲 ART),是一種在Android操作系統上的運行環境,在Android 5.0及後續Android版本中作爲正式的運行時庫取代了以往的Dalvik虛擬機。ART能夠把應用程序的字節碼轉換爲機器碼,是Android所使用的一種新的虛擬機。它與Dalvik的主要不同在於:Dalvik採用的是JIT技術,而ART採用Ahead-of-time(AOT)技術。 ART同時也改善了性能、垃圾回收(Garbage Collection)、應用程序除錯以及性能分析。

3.應用運行上下文對象

Android系統的上下文對象,即在Context中,爲我們封裝了一個這樣的“語境“。Android應用程序會在如下3個實際點創建應用上下文Context:1.創建Application;2.創建Activity;3.創建Service。即創建Context的實現類時(Activity、Service、Application都繼承自Context)。

4.Makefile

最大的好處就是自動化編譯,同時還可以做到可控制的編譯,在android源代碼的最小功能單位的目錄下都會有一個Makefile文件,將整個源代碼聯繫在一起。

5.Android系統目錄(手機中)

/system/app/
放置一些系統的app
/system/bin/
主要放置Linux自帶的組件
/system/build.prop
記錄系統的屬性信息
/system/fonts/
存放系統字體,root後可下載TTF格式字體替換原字體
/system/framework/
系統的核心文件、框架層
/system/lib/
存放幾乎所有的共享庫(.so)文件
/system/media/
保存系統提示音、系統鈴聲。其中/system/media/audio/目錄下保存着android系統的默認鈴聲:alarms目錄是鬧鐘鈴提醒,notification目錄是短信或提示音,ringtones目錄是來電鈴聲,而ui目錄則是一些界面音效
/system/usr/
保存用戶的配置文件,如鍵盤佈局、共享、時區文件等
/data/app/
包含了用戶安裝的app或者升級的app
/data/data/
包含app的數據信息、文件信息、數據庫信息,以包名的方式來區分各個應用
/data/system/
包含手機的各項系統信息
/data/misc/
保存了大部分的wifi,vpn信息

6.android studio開發目錄

首先,android stuido中的project相當於eclipse中的workspace,module相當於project。
app下的代碼爲應用程序代碼,Gradle Scripts爲編譯腳本(需重點學習,以後記錄)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章