這幾年,Android開始慢慢流行起來,不少項目也開始涉及這部份內容,因此學習Android也就變的頗有意義了。
程序員
學習Android應該學什麼,不少人有不一樣的看法。通常程序員可能只是學習Android的UI控件和Android的API使用等。高級程序員可能會研究一下Android的FrameWork和Android的實現原理。相對於這二者,頂級的程序員會深刻的瞭解Android的層次架構和設計思想並將這些架構和設計思想加以改造、優化以後應用在其餘方面。你會怎麼作呢?
安全
既然要學習Android,那麼就要從最有魅力架構和設計理念開始。首先我們先來看一下Android的架構設計圖,以下所示:
網絡
從上面圖中,咱們能夠看出,這個Android的架構從上到下分爲四層,分別是應用程序層、應用程序框架層、系統運行庫層以及Linux內核層。
架構
應用程序層主要包括一些應用程序,這一層能夠簡單的理解爲咱們可以在移動設備上看到的的各類軟件和應用。這些軟件和應用都是能夠被程序開發人員開發的其餘應用程序替換和更新的,這一點相對於早期固化在系統內部的移動端軟件更加的靈活和個性化。
框架
應用程序框架層主要面對的是Android的應用開發人員,它爲Android開發人員開發應用提供了許多可重用的組件,同時,它也容許開發人員替換這些組建。經過這一層,開發人員能夠開發豐富的應用,開發人員開發的應用徹底可使用其餘應用已開發的功能。
學習
從上圖所示,系統運行層能夠分爲兩部分:一部分是Android提供的Lib庫,另外一部分是Android的運行時。
所謂Lib庫,其實就是對應用程序框架層的支撐,它所實現的全部功能都是經過應用程序框架層對外提供,並將Linux內核和應用程序框架層進行鏈接。
Android的運行時相似於Java的運行時機制,能夠分爲API核心庫和一個相似於JVM的虛擬機Dalvk。這部分能夠參考JVM進行理解和學習,這裏再也不贅述。
優化
Android從本質上來說,就是在Linux的基礎之上進行的一次封裝。經過利用Linux Kernel做爲硬件和軟件之間的抽象層的,並其爲上層提供的安全、內存管理、進程管理、網絡堆棧、驅動模型等服務的特性,Andorid最終實現了它最基礎的核心架構和設計。
經過上面的分析,咱們能夠清晰的認識到,Android的設計最核心的就是分層。可是如何分層這就是咱們要關注的了,因此,學習Android不在於作出一個應用,而是經過學習Android分析它的架構,借鑑、完善、應用並創造價值。
學習最終要的不是學什麼,而是想學什麼,作人不在於你作什麼,而是你想作什麼。
spa