和Android的第一次美麗邂逅
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系統可以獲得如下便利:
- 更容易上手
對於初學者來說,最缺乏的就是基礎知識,最渴望的就是快速上手,最苦惱的莫過於一頭霧水。Android系統使用Java語言進行開發,對計算機語言稍有基礎的同學對Java語言都不會陌生,Java語言也是常年霸佔計算機語言流行榜No.1的位置,國內Java語言學習風氣濃厚,隨便百度一下即可獲得海量Java語言學習資源。同時Java語言也是以其簡單、易用而聞名於江湖,所以對於初學者來說,這第一個骨頭並不難啃。而iOS系統採用Object-C進行開發(2014年推出了Swift作為新的開發語言),較Java語言來說,其學習難度要大不少,此外志同道合者較少,因此,學習資料也就相對缺乏,一起討論交流的朋友也比較少。因此,對於上手難易程度來說,Android確實優於iOS系統。
- 更寬廣的就業方向
即使不瞭解開發的朋友都會知道,iOS是閉源的系統,開發者除了能開發iOS應用來說什麼也做不了,而Android是開放的系統,原始碼公開,從上層的應用開發、到FrameWork層再到底層驅動都可以進行研究和學習,任何一個環節一個模組都可以作為今後從業的方向。此外,學習好Android的開發語言Java,就算以後不從事移動端開發,還可以轉向Web開發等,而學習iOS開發語言就只能從事iOS相關開發了。因此學習Android開發你將擁有更寬廣的就業渠道,更豐富的研究方向。
- 更多的學習資源
在百度搜尋中輸入“Android 學習資料”關鍵字並搜尋,你可以獲得8640000個相關結果,而輸入“iOS 學習資料”,僅獲得兩百多萬個相關結果。對於初學者最好的老師 - “搜尋引擎”來說,顯然,它知道Android的知識更多一些。此外,根據2016年TIOBE世界程式語言排行榜,Java語言以20.5%佔有率的絕對優勢佔據榜首,而iOS的開發語言Swift和Object-C則排在了14和15位,兩者之和還不到3%的佔有率。因此,學習Android系統你將擁有更多志同道合的朋友,從他們那裡你可以獲得更多幫助和指導。最後,由於Android的開放性,較iOS來講,Android擁有絕對數量優勢的優秀開源專案,有一定基礎的開發者可以登入github瀏覽這些專案,提升自己的開發能力。
- 學習成本
學習iOS系統,至少得配備一臺Mac作為開發工具,配備一臺iPhone作為除錯工具,這兩種開發工具都價值不菲,對於一窮二白的初學者來說,經濟上的拮据是不可避免的問題。對於缺乏定力和恆心而半途而廢的初學者來說,損失就更大了。而學習Android系統只需一臺Windows電腦就好了(基本每個人都有),對於除錯工具可以選擇模擬器,也可以花幾百塊買一臺入門級Android手機,所以前期投入幾乎為零,不存在任何風險。因此,想學習Android開發馬上就可以開始,不需要任何經濟上的投入,沒有經濟壓力和風險。
綜上,對於躊躇不前、猶豫不決的初學者來說,何不先選擇Android系統學習一下呢?因為它簡單、易上手且無需任何前期投入。我也相信,鑑於Android系統的開放性、流行性,只要嘗試你肯定會愛上它,因為作者本人就是這麼掉進“陷阱”裡來的。
如果你喜歡作者的文章,還可以購買他的書(京東自營):
相關文章
- [譯] TypeScript 和 Babel:美麗的結合TypeScriptBabel
- [譯] TypeScript 和 Babel:一場美麗的婚姻TypeScriptBabel
- 美麗心靈
- 美麗天天秒模式開發_美麗天天秒商城系統搭建模式
- 美麗說收貨地址在哪 美麗說如何新增收貨地址
- 大資料時代的美麗與哀愁大資料
- 美顏美妝SDK技術,讓美麗觸手可及
- 程式設計師的美麗假期(並不)程式設計師
- “泛型Java”,一個美麗的hype (轉)泛型Java
- 紅包雨中:Redis 和 Lua 的邂逅Redis
- 自建搜尋引擎-基於美麗雲
- Web Service難道又是一個美麗的童話?Web
- Impostors詳解——紙片構築的美麗幻覺
- 使用Python的turtle模組繪製美麗的櫻花樹Python
- 美麗天天秒開發APP系統搭建APP
- 無人機冬日雪景技巧 無人機如何拍出美麗寒冬無人機
- 程式設計師因為女孩而美麗!程式設計師
- 美麗的架構,是用更少的機制做更多的工作架構
- 美麗與優雅——看大師眼中的演算法演算法
- 微信小程式實戰(一)之仿美麗說微信小程式
- 美麗鄉村-汙水治理數字化解決方案
- 美麗天天秒系統開發(原始碼搭建)原始碼
- 美麗說加速IPO程式 任命魏萍為CFO
- leetcode(力扣) 2866. 美麗塔 IILeetCode力扣
- 12個美麗的網站與受到日出啟發的配色方案網站
- 美麗的Zukitwo是Gnome 3.12上的第一個主題
- 美麗or智慧的思考,女孩必須懂得的25個幸福祕籍。
- 美麗的閉包,在js中實現函式過載JS函式
- UI設計靈感:40個美麗的APP啟動頁UIAPP
- 美麗天天秒商城系統開發軟體流程
- 如何拍攝出美麗漂亮的虛化照片:焦外成像的核心
- 想要提取PDF檔案中的美麗圖片,該怎麼辦?
- shell高效程式設計:shell指令碼從未如此美麗程式設計指令碼
- 玩轉頁首 讓WPS office文件美麗動人
- “NOT_IN”與“NULL”的邂逅Null
- 美麗田園IPO困局:上半年直營店零新增,退款和賠償費用走高
- 美麗新農村:基於PLC和串列埠通訊的農村汙水物聯網解決方案串列埠
- iPhone 9 plus價格過於美麗(蘋果賬號會回收)iPhone蘋果