市場占比
Android 1.1 在 2009 年 2 月發(fā)布,然后就以直線上升的速度,迅速占領(lǐng)手機(jī)操作系統(tǒng)市場。如今 Android 已經(jīng)成為和 iOS 有同等分量的手機(jī)操作系統(tǒng),二者一同霸占了全球市場。下圖是 2018 年 3 月份,全球知名研究公司 Gartner 公司給出的全球手機(jī)操作系統(tǒng)占比報(bào)告:

網(wǎng)絡(luò)技術(shù)
Android 系統(tǒng)和 iOS 系統(tǒng)都是伴隨著移動通訊革新的歷史,順勢發(fā)展而來。而在 1G/2G 時代,諾基亞是全球手機(jī)市場的老大。我們經(jīng)常聽到的手機(jī)支持 xG 。其中 G 是 GPRS 的省略, 英文為 General Packet Radio Service ,翻譯成漢語意思為通用分組無線服務(wù)技術(shù)。簡單理解就是不同的網(wǎng)絡(luò)傳輸技術(shù)。
網(wǎng)絡(luò)向著速度越來越快的方向發(fā)展,這些都需要不同的技術(shù)和標(biāo)準(zhǔn)來實(shí)現(xiàn)。下圖簡要列舉移動通訊發(fā)展中采用的技術(shù)歷史:

從傳輸速度上面能看到,每一次的技術(shù)革新,網(wǎng)絡(luò)速度都會大大提升。網(wǎng)上有一副圖,形象的概括了不同技術(shù)下的網(wǎng)絡(luò)速度差別。

Android 起源
Android 的發(fā)明人是 Andy Rubin。Andy Rubin 早年供職于蘋果公司,算是一個機(jī)器發(fā)燒友,不僅能拿電焊機(jī)焊電路板,而且熱愛編程,有喬布斯般的偏執(zhí)。當(dāng)年他為了開發(fā) Android 系統(tǒng),先花光了以前積累的百萬財(cái)富,接著又把房子抵押出去,最后走投無路時,找到了 Google 的大當(dāng)家佩奇。佩奇經(jīng)過詳細(xì)了解后,出資 5000 萬美元買下了 Android 系統(tǒng),并且繼續(xù)讓 Andy Rubin 負(fù)責(zé) Android 系統(tǒng)的開發(fā)。Andy Rubin 不負(fù)眾望,在蘋果 4 問世之后的第 2 年,也就是 2009 年,推出了第一版 Android 系統(tǒng)。他本人也被稱為安卓之父。
Android 每一個版本都有一個名字,全部和吃有關(guān),或許 Google 里面的員工也都是吃貨吧。下面是 Android 不同版本的名字:

Android 整體架構(gòu)
Android 架構(gòu)從上往下可以分為 5 層。最底層采用開源的 linux 內(nèi)核,最上層是 Applications 。作為一名 Android 開發(fā)者,常用到的是頂層的Applications 。
Android 采用 java 語言。在運(yùn)行在設(shè)備上是,首先需要虛擬機(jī)對 java 語言進(jìn)行解釋,編譯。這也是 Android 手機(jī)在流暢度方面始終落后于 iOS 的原因。為了彌補(bǔ)缺陷,Google 對 JVM 進(jìn)行了優(yōu)化,推出了 Dalvik VM 技術(shù)。它可以讓 java 編譯過程由 java byte -> vm 優(yōu)化為 java byte -> dex compiler -> Dalvik byte(優(yōu)化) -> Dalvik VM (優(yōu)化) 。

手機(jī) CPU 廠商、架構(gòu)和指令集分類
CPU 是手機(jī)指令運(yùn)行的核心,可以看做手機(jī)的大腦。PC 機(jī)上的龍頭是 Intel,它基本上壟斷了整個 PC 行業(yè)?,F(xiàn)在手機(jī)市場,比較常見的 CPU 有以下幾家:

從表格中可以明顯看出,中國 CPU 廠商有展訊、聯(lián)發(fā)科和華為三家,但是其總和的市場份額,都抵不上高通一家。中興通訊采用的 CPU 就有大部分來自高通,這也是中國受制于美國的原因之一。
CPU 誕生在上世紀(jì) 70 年代,近 40 年的發(fā)展,誕生了很多架構(gòu),比如x86、ARM、MIPS、IA64等。絕大多數(shù)手機(jī)端的 CPU 采用 ARM 架構(gòu),而不是統(tǒng)治 PC 端 Intel 的 x86 。造成這個結(jié)果的原因和它們采用的指令集有關(guān)。
指令集是 CPU 能夠識別的命令集合。所有的 CPU 指令集可以分為兩種:RISC (Reduced Instruction Set Computer) 和 CISC (Complex Instruction Set Computer)。RISC 翻譯成中文是精簡指令集,被現(xiàn)在的ARM 架構(gòu)采用;CISC 表示復(fù)雜指令集,由 intel 的 x86 架構(gòu)采用。
RISC 指令集刪除了 CISC 中不常用的指令集,而且對一些容易的指令集進(jìn)行整合,具有較高的運(yùn)行效率。早期 Intel 公司的 x86 綁定了微軟的 windows 操作系統(tǒng),而且一直采用向下兼容的方式,完全符合用戶的習(xí)慣,后面依靠慣性一直前行到今天。但是在新興的手機(jī)端,RISC 效率高的優(yōu)勢就體現(xiàn)出來了。RISC 基本成為了手機(jī) CPU 默認(rèn)指令集。
ADB 常用命令
ADB 是 Android Debug Bridge 的簡稱,也就是 Android 手機(jī)調(diào)回橋的意思。 ADB 仿佛是手機(jī)的遙控器,能夠?qū)κ謾C(jī)上的各種配置和文件進(jìn)行更改和刪減。常用的 ADB 命令有:
1 adb devices : 查看手機(jī)設(shè)備數(shù)量
2 adb start-server :開啟 adb 服務(wù)
3 adb kill-server :關(guān)閉 adb 服務(wù)
4 adb logcat :查看手機(jī)日志
5 adb shell :進(jìn)入手機(jī)系統(tǒng)
6 adb install :安裝應(yīng)用程序
7 adb uninstall :卸載應(yīng)用程序
8 adb pull: 將文件下載到特定目錄
9 adb push :將文件放到手機(jī)中
Android 常用 4 大布局
1 線性布局:可以相互嵌套
2 相對布局: 所有的控件都是相對方式排列
3 表格布局
4 幀布局
5 約束布局
Android 尺寸單位
1 px 像素值,指實(shí)際像素?cái)?shù)。例如我們經(jīng)??吹降氖謾C(jī)分辨率是 1080 x 1920 ,單位就是像素。
2 dp /dip :dp 是 dip 的簡稱 ,全稱是 density independent pixels , 表示屏幕密度無關(guān)的像素。它代表手機(jī)屏幕實(shí)際的顯示點(diǎn),而每個點(diǎn)的像素?cái)?shù)卻不同。好屏幕,每個點(diǎn)的像素?cái)?shù)多,圖像較清晰;差的屏幕,每個點(diǎn)像素?cái)?shù)少,圖像就較模糊。開發(fā)中多采用此單位作為空間尺寸。
3 sp:用于文本字體大小。當(dāng)用戶修改設(shè)備字體大小時,文字會自動適配。
以上是 Android 入門的基礎(chǔ)知識,包括 Android 的起源歷史、和蘋果的市場關(guān)系,以及手機(jī)系統(tǒng)采用 CPU 的知識。后面介紹了 Android 開發(fā)需要掌握的布局概念和尺寸單位。大視角看到的都是見聞,后面的小視角才是開發(fā)者最長接觸的技術(shù)。既然入坑,以后就要用細(xì)挖掘,用心尋找底部的知識源泉。同行的小伙伴,你在哪里?