Android基礎篇——聊聊Android系統

在正式地進行Android學習之前,我們首先要裏瞭解什麼叫做Android系統,Android系統的架構,它的優勢在那裏,以及Android開發工程師的發展方向有哪些等,以便於我們對我們即將學習的內容進行鋪墊,同時也是讓大家對Android有個深刻的認識。

什麼叫Android

什麼叫Android?其實大傢伙們對這個應該是比較瞭解的,如果翻譯成中文“安卓”的話可能就更清晰了,是的,安卓智能手機,就是一個Android設備。那麼是不是說,智能手機就是Android呢?這就錯了。準確來說,Android是安卓手機裏面的那個操作系統,也就是說,Android是一個可搭載在硬件上使用的操作系統。而安卓手機和蘋果手機的爭端,就是操作系統直接的對碰。那麼,對於Android的準確定義是怎麼樣的呢?你可以這麼說:Android是一種基於Linux的自由及開放源代碼的操作系統,主要使用於移動設備,如智能手機和平板電腦,由Google公司和開放手機聯盟領導及開發。

Android的架構與底層實現

我們在前面說了,Android是基於Linux內核的操作系統,那麼其核心自然也離不開linux,那麼是不是說Android就是linux呢?那也不是,只是說我們借用了Linux的內核,在此基礎上進行了進一步的封裝,以便於在移動設備上進行使用,由此形成的新的操作系統。官方對它的架構有這麼一張圖來表示:
這裏寫圖片描述
這張圖可算得上是一個經典了,幾乎每個學習Android的人都必定熟悉的一張圖。我們先來看看怎麼理解這張圖:
正如左邊的介紹一樣,Android系統架構分四層。從上到下分別是:
應用層:
框架層:
本地庫與運行時環境層:
內核層:
其中,上兩層對應的是Android移動應用開發,也是我們要重點掌握的內容。而後兩層更多趨向於sdk和操作系統移植等方面的事情。可以簡單瞭解,但不能不清楚。
接下來,我們再來看一下Android的進化史,這裏說的不是版本上的進化,而是講述一個Android從無到有的過程,期間依賴了什麼,支持了什麼,希望通過這個介紹,讓你對Android有一個更爲深刻的認識:
這裏寫圖片描述
你看,這就是一個Android系統從無到有的進化過程。首先,從底層而言,我們的硬件是通過內核調用驅動程序去進行的,而什麼讓內核去執行呢?就是系統調用(system call),在這裏,我們通過shell去調用 system call,system call通過內核提供的藉口去調用driver驅動硬件。而爲了操作方便,我們的前輩們制定了標準c庫,shell和標準c庫的結合可以看到一個app。在這個層面上,我們也還是用的c語言,和java沒有關係。到了後來,有人在標準c庫的基礎上進行了進一步的封裝,形成了c++庫,這裏就出現了c++。c++和c的一個區別可能就在於c++偏向於面向對象編程,而c語言則傾向於面向過程編程。我們的前輩們用c++庫搭建出了兩個應用,一個是qt,因爲和我們沒有多大關係,所以目前不多做介紹,如果學嵌入式和c++,則建議掌握。而另一個應用叫什麼呢?就是java虛擬機。在這個基礎上,我們對c/c++又進行了一次的封裝,便形成了純面向對象編程的java。但故事並沒有結束。因爲Android剛推出時是主打手持移動設備市場,爲了符合手持移動設備的需求,我們基於linux內核進行了重新的封裝,同時對java的一些庫進行擴充,最終,便造就了我們的Android,也就是一個Android從無到有的過程。

學習原生Android的優勢和劣勢

我們爲什麼要學習Android?它的優勢有哪些?劣勢又有哪些呢?我們一起來探討一下:
首先是優勢:到目前爲止,Android智能設備的使用量已經取代蘋果領跑全球,成爲全球用戶量最高的移動操作系統。那麼在這麼龐大的使用量上,對Android的優化和對用戶提供優秀的應用軟件都將是互聯網公司盈利的主要來源。因此企業對Android人才的需求量還是非常高的,加上Android Things的出現,Android進入嵌入式領域已經成爲可能,智能穿戴設備,智能家居等的興趣,無一不爲Android的進一步發展提供便利。雖然目前谷歌已經在設計一個新的操作系統,但從設計到退出再到廣泛使用的這麼一個過程中,Android應還是主流的操作系統。
至於說學習Android的劣勢,主要表現人才市場的層化:
因爲前期的Android是異常的火爆,所以吸引了很多的人投入到Android開發的浪潮中,導致的結果是中高級程序員缺乏,而低端程序員則冗餘。於是企業開始提高對人才需求的標準,由此便形成了一種Android市場飽和的假象,其實卻是企業對用人的需求提高了。但儘管這樣,中高端的程序員還是缺乏,由此便出現了死循環,低端不用,中高端斷層。所以很多企業對高級程序員所提供的待遇是非常高的,但也是很難招募得到。當然,跑偏了,作爲入門級的我們,目前還是低端程序員的水準呢,在這個階段最容易發生的事情是:找不到對應的工作。但是如果你能入門,再在行業裏買你多學習,多積攢經驗,那麼你也可以實現屌絲的轉變,進入高級程序員的領域。當然,要做到這點,自然少不了學習,學習以及學習。

Android的發展方向

關於Android的學習方向,個人總結出來有兩種:
1.Android底層開發
這點主要從智能家居和移動穿戴設備等一些嵌入式領域出發,實現android和設備的移植,優化,更改等。主要掌握語言爲C/c++,java/Kotlin.
2.Android移動網站開發
這點主要是考慮如何利用網頁技術製作app,比如React Native框架等。要求熟悉web開發技術
當然,以上很多內容只是個人總結,僅當參考,如有描述不恰當的地方,煩請下方評論指出,共同探討,一起進步:

下一章:創建第一個Android項目,敬請期待~

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