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