从0系统学 Android--1.1认识 Android
一轉眼工作也有幾年的時間了,一直想沉下心來,再回過頭來重新系統的學習一遍 Android。所以就有了這個讀書筆記。俗話說溫故而知新,下面就請大家再跟著我系統的學習一篇 Android 吧!
這一系列主要參考 Android 入門經典----《第一行代碼》
默認學習者會簡單的 Java 語法!Android 方面完全從零開始!跟著我系統的學習吧!
認識 Android
2003 年 10 月,Andy Rubin 等人一起創辦了 Android 公司。2005 年 8 月 Google 收購了這家公司。
1.1 了解 Android 全貌
Android 從面試以來到現在已經發布了二十多個版本了。在這幾年的發展過程中。谷歌為 Android 王國建立了一個完整的生態系統。手機廠商、開發者、用戶之間相互依存,共同推進著 Android 的蓬勃發展。
從開發者角度,去了解這個操作系統。
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.應用層
所有安裝在手機上的應用程序就是屬于這一層了。
最新架構
-
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。
-
-
系統應用
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 就可以定位到自己的位置
持續更新......
轉載于:https://juejin.im/post/5d3083b1f265da1bcc197a78
總結
以上是生活随笔為你收集整理的从0系统学 Android--1.1认识 Android的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在ASP.NET AJAX中使用应用程序
- 下一篇: android sina oauth2.