和Android的第一次美麗邂逅

yayun0516發表於2017-08-27

Android是谷歌推出的基於Linux的手機平臺,作為開源的移動作業系統,不存在任何阻礙移動產業創新和發展的專利權障礙,因此Android一經面世就獲得了空前的發展,在移動作業系統市場份額一度達到80%多,處於絕對的壟斷地位。

現如今Android已經不侷限於手機系統,越來越多的車載、穿戴、電視裝置也整合了Android系統。我們相信隨著物聯網的不斷深入和發展,Android系統將會以更多樣的形式融入到我們的生活、學習和工作之中。因此,學習Android不會過時,正當其時!

1.1.1 Android系統架構

Android的系統架構,如圖1.1所示。

這裡寫圖片描述

圖1.1 Android的系統架構

和其他作業系統一樣,Android的系統架構也採用了分層的結構。從架構圖來看,Android分為四個層次,下面分別來總結一下這幾個層。

1.應用程式(Applications)

Android應用程式的源程式除了包含Java程式碼之外,還包含各種資原始檔(放置於res目錄中)、將源程式進行編譯可以得到一個APK安裝包,這個安裝包可以安裝到Android手機上,將對應一個Android應用程式。Android軟體開發者可以使用應用程式框架層提供的API快速開發Android應用,這也是Android的巨大潛力所在。

2.應用程式框架(Application Framework)

Android的應用程式框架層有供Android開發者所呼叫的豐富API,該層實際上就是一個應用程式的框架。框架中不僅包含各種API,同時還內建了方便開發者開發的各種控制元件,比如Views(檢視元件),其中又包含了List(列表)、Grid(柵格),Button(按鈕)TextView(文字框)等等,甚至還內建了一個瀏覽器。有了這些基本控制元件,開發人員可以更快速地構建應用程式,提高開發人員的開發效率。

3.各種庫(Libraries)和Android 執行環境(Android Runtime)

對應一般的嵌入式作業系統,本層相當於中介軟體層次。Android中的本層分成兩個部分,一個是各種庫(Libraries),另一個是Android執行時環境。本層的大多數程式碼是由C和C++語言實現。Android執行環境指的是Android虛擬機器技術Dalvik。

4.作業系統層(OS)最底層

Android基於Linux,使用的是Linux 2.6作業系統作為底層。Android對作業系統的使用包括了核心和驅動程式兩個部分,其中驅動程式有:顯示驅動、藍芽驅動、相機驅動、網路驅動和各種感測器裝置驅動等等。

1.1.2 Android 歷史

自2008年9月釋出Android 第一版,時至今日,Android已經發展到了7.0時代。從2009年5月開始,Android版本開始使用甜點作為版本代號:1.5(紙杯蛋糕)、1.6(甜甜圈)、2.0(泡芙)、2.2(凍酸奶)、2.3(薑餅)、3.0/3.2(蜂巢)、4.0(冰激凌三明治)、4.1/4.2(果凍豆)、4.4(奇巧)、5.0(棒棒糖)、6.0(棉花糖)、7.0(牛軋糖),歷代釋出的時間請參考表1.1:

表1.1 歷代Android版本時間表
這裡寫圖片描述

1.1.3 Android 系統優勢

對於想要從事移動開發的同學來講,一開始都會萬分糾結的一個問題就是到底該學習iOS還是Android系統,對於一些初學者來說,這一定是一個單選題。本書主要對Android知識進行講解,當然要自賣自誇一下。就iOS系統而言學習Android系統可以獲得如下便利:

  1. 更容易上手

對於初學者來說,最缺乏的就是基礎知識,最渴望的就是快速上手,最苦惱的莫過於一頭霧水。Android系統使用Java語言進行開發,對計算機語言稍有基礎的同學對Java語言都不會陌生,Java語言也是常年霸佔計算機語言流行榜No.1的位置,國內Java語言學習風氣濃厚,隨便百度一下即可獲得海量Java語言學習資源。同時Java語言也是以其簡單、易用而聞名於江湖,所以對於初學者來說,這第一個骨頭並不難啃。而iOS系統採用Object-C進行開發(2014年推出了Swift作為新的開發語言),較Java語言來說,其學習難度要大不少,此外志同道合者較少,因此,學習資料也就相對缺乏,一起討論交流的朋友也比較少。因此,對於上手難易程度來說,Android確實優於iOS系統。

  1. 更寬廣的就業方向

即使不瞭解開發的朋友都會知道,iOS是閉源的系統,開發者除了能開發iOS應用來說什麼也做不了,而Android是開放的系統,原始碼公開,從上層的應用開發、到FrameWork層再到底層驅動都可以進行研究和學習,任何一個環節一個模組都可以作為今後從業的方向。此外,學習好Android的開發語言Java,就算以後不從事移動端開發,還可以轉向Web開發等,而學習iOS開發語言就只能從事iOS相關開發了。因此學習Android開發你將擁有更寬廣的就業渠道,更豐富的研究方向。

  1. 更多的學習資源

在百度搜尋中輸入“Android 學習資料”關鍵字並搜尋,你可以獲得8640000個相關結果,而輸入“iOS 學習資料”,僅獲得兩百多萬個相關結果。對於初學者最好的老師 - “搜尋引擎”來說,顯然,它知道Android的知識更多一些。此外,根據2016年TIOBE世界程式語言排行榜,Java語言以20.5%佔有率的絕對優勢佔據榜首,而iOS的開發語言Swift和Object-C則排在了14和15位,兩者之和還不到3%的佔有率。因此,學習Android系統你將擁有更多志同道合的朋友,從他們那裡你可以獲得更多幫助和指導。最後,由於Android的開放性,較iOS來講,Android擁有絕對數量優勢的優秀開源專案,有一定基礎的開發者可以登入github瀏覽這些專案,提升自己的開發能力。

  1. 學習成本

學習iOS系統,至少得配備一臺Mac作為開發工具,配備一臺iPhone作為除錯工具,這兩種開發工具都價值不菲,對於一窮二白的初學者來說,經濟上的拮据是不可避免的問題。對於缺乏定力和恆心而半途而廢的初學者來說,損失就更大了。而學習Android系統只需一臺Windows電腦就好了(基本每個人都有),對於除錯工具可以選擇模擬器,也可以花幾百塊買一臺入門級Android手機,所以前期投入幾乎為零,不存在任何風險。因此,想學習Android開發馬上就可以開始,不需要任何經濟上的投入,沒有經濟壓力和風險。

綜上,對於躊躇不前、猶豫不決的初學者來說,何不先選擇Android系統學習一下呢?因為它簡單、易上手且無需任何前期投入。我也相信,鑑於Android系統的開放性、流行性,只要嘗試你肯定會愛上它,因為作者本人就是這麼掉進“陷阱”裡來的。

如果你喜歡作者的文章,還可以購買他的書(京東自營):

這裡寫圖片描述

相關文章