從0系統學 Android--1.1認識 Android

一轉眼工做也有幾年的時間了,一直想沉下心來,再回過頭來從新系統的學習一遍 Android。因此就有了這個讀書筆記。俗話說溫故而知新,下面就請你們再跟着我係統的學習一篇 Android 吧!html

聲明

這一系列主要參考 Android 入門經典----《第一行代碼》android

默認學習者會簡單的 Java 語法!Android 方面徹底從零開始!跟着我係統的學習吧!面試

認識 Android

2003 年 10 月,Andy Rubin 等人一塊兒創辦了 Android 公司。2005 年 8 月 Google 收購了這家公司。數據庫

1.1 瞭解 Android 全貌

Android 從面試以來到如今已經發布了二十多個版本了。在這幾年的發展過程當中。谷歌爲 Android 王國創建了一個完整的生態系統。手機廠商、開發者、用戶之間相互依存,共同推動着 Android 的蓬勃發展。編程

從開發者角度,去了解這個操做系統。api

1.1.1 Android 系統架構

爲了讓你可以更好的理解 Android 系統是如何工做的,咱們先來看一下它的系統架構。大體可分四層架構:Linux 內核層、系統運行庫層、應用框架層、應用層。瀏覽器

1.Linux 內核層安全

Android 系統是基於 Linux 內核的,這一層爲 Android 設備的各類硬件提供了底層的驅動,好比:顯示驅動、音頻驅動、照相機驅動、藍牙驅動、WiFi 驅動、電源管理等。網絡

主要是一些底層驅動架構

2.系統運行庫層

這一層經過一些 C/C++ 庫來爲 Android 系統提供了主要的特徵支持。如 SQLite 庫提供了數據庫的支持、OpenGL|ES 庫提供了 3D繪圖支持,Webkit 庫提供了瀏覽器內核的支持等。

一樣這一層還有 Android 運行時庫。主要提供了一些核心庫,可以使開發者使用 Java 語言來編寫 Android 應用。Android 運行時庫還包含了 Dalvik 虛擬機(5.0 系統以後改成了 ART 運行環境),它使得每個 Android 應用均可以運行在獨立的進程中,而且擁有一個本身的 Dalvik 虛擬機示例。相比 Java 虛擬機。Dalvik 虛擬機是專門爲移動設備定製的,針對手機內存、CPU 性能有限等狀況做了優化處理。

一些經過 C/C++ 編寫的庫,還有支持咱們使用 Java 開發的核心庫和進程運行的虛擬機

3.應用框架層

主要提供了構建應用程序時用到的各類 API,Android 自帶的一些核心應用就是使用這些 API 完成的,開發者也可使用這些 API 來構建咱們本身的應用程序。

4.應用層

全部安裝在手機上的應用程序就是屬於這一層了。

架構.jpg

最新架構

  • Linux 內核

    Android 平臺的基礎是 Linux 內核。例如,Android Runtime 須要依靠 Linux 內核來執行底層功能,例如線程和底層內存管理

    使用 Linux 內核可讓 Android 利用主要安全功能,而且容許設備製造商爲著名的內核開發硬件驅動程序。

  • 硬件抽象層(HAL)

    提供標準界面,向更高級別的 Java API 框架顯示設備硬件功能。HAL 包含多個庫模塊,其中每一個模塊都爲特定類型的硬件組件實現一個界面。例如相機或藍牙模塊。當框架 API 要求訪問硬件時,Android 系統爲該硬件組件加載庫模塊。

  • Android Runtime

    對於運行 Android 5.0 或者更高設備,每一個應用都在其本身的進程中運行,而且有本身的 Android Runtime 示例。ART 編寫爲經過執行 DEX 文件在低內存設備上運行的多個虛擬機。DEX 文件是一種專門爲 Android 設計的字節碼格式,通過優化,使用內存不多。編譯工具鏈(例如 Jack)將 Java 源代碼編譯爲 DEX 字節碼,使其能夠在 Android 平臺上運行。

    ART 的部分主要功能:

    • 預先(AOT)和即時(JIT)編譯

    • 優化垃圾回收(GC)

    • 更好的調試支持,包括專用採樣分析器、詳細的診斷異常、崩潰報告

    還包含了一套核心運行時庫,可提供 Java API 框架使用的 Java 編程語言大部分功能。

  • 原生 C/C++ 庫

    許多核心 Android 系統組件和服務(例如 ART 和 HAL)是構建自原生代碼的,須要用 C 和 C++ 編寫的原生庫。Android 平臺提供 Java 框架 API 來嚮應用顯示其中的部分原始庫的功能。例如:經過 Android 框架 的 Java OpenGL API 訪問 OpenGL ES,以支持應用中繪製和操做 2D 和 3D圖形。

    若是開發的是須要 C 或 C++ 代碼的應用,可使用 Android NDK 直接從原生代碼訪問某些原平生臺庫

  • Java API 框架

    您可經過以 Java 語言編寫的 API 使用 Android OS 的整個功能集。這些 API 造成建立 Android 應用所需的構建塊,它們可簡化核心模塊化系統組件和服務的重複使用,包括如下組件和服務:

    • 豐富、可擴展的視圖系統,可用以構建應用的 UI,包括列表、網格、文本框、按鈕甚至可嵌入的網絡瀏覽器

    • 資源管理器,用於訪問非代碼資源,例如本地化的字符串、圖形和佈局文件

    • 通知管理器,可以讓全部應用在狀態欄中顯示自定義提醒

    • Activity 管理器,用於管理應用的生命週期,提供常見的導航返回棧

    • 內容提供程序,可以讓應用訪問其餘應用(例如「聯繫人」應用)中的數據或者共享其本身的數據

    開發者能夠徹底訪問 Android 系統應用使用的框架 API

  • 系統應用

最新架構.png

1.1.2 Android 已發佈的版本

2008 年 9 月,Google 正式發佈了 Android 1.0 系統。

2011 年 2 月,發佈了 Android 3.0 系統,專門爲平板電腦設計的,比較失敗。

2011 年 10 月 Android 4.0 ,這個版本再也不對手機和平板進行差別化區分。

2014 年 Google I/O 大會上,推出了改動最大的 Android 5.0 系統。使用 ART 運行環境代替了 Dalvik 虛擬機,大大提高了應用的運行速度,提出了 Material Design 概念。還推出了 Android Wear、Android Auto、Android TV 系統。從而進軍可穿戴設備、汽車、電視等領域。

2015 年 Google I/O 大會,推出 6.0 加入運行時權限功能。

2016 年 Google I/O 大會上推出 7.0 系統 ,加入多窗口模式

1.1.3 Android 應用開發特點

1. 四大組件

Activity、Server、Broadcast Receiver、Content Provider

Activity:應用程序的門面。

Server:默默的在後頭運行

Broadcast Receiver 運行你的應用接受來自各處的廣播消息,好比:電話、短信等,一樣咱們的應用也能夠向外部發送廣播消息。

Content Provider 應用程序之間共享數據提供了可能。好比讀取系統電話簿中的聯繫人。

2. 豐富的系統控件

系統提供了豐富的系統控件,使咱們輕鬆的編寫漂亮的界面。固然咱們也能夠本身定義控件。

3. SQLite 數據庫

系統自帶了輕量級、運算速度快的嵌入式關係型數據庫,支持標準的 SQL 語句,還能夠經過 Android 封裝好的 API 進行操做。

4. 強大的多媒體

提供了豐富的多媒體服務。如:音樂、視頻、錄音、拍照、鬧鈴。等等,這一切咱們均可以在程序中經過代碼來進行控制。

5. 地理位置定位

使用內置的 GPS 就能夠定位到本身的位置

持續更新......

更多資料
相關文章
相關標籤/搜索