市場占比
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)都是伴隨著移動(dòng)通訊革新的歷史绍申,順勢發(fā)展而來。而在 1G/2G 時(shí)代顾彰,諾基亞是全球手機(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)。下圖簡要列舉移動(dòng)通訊發(fā)展中采用的技術(shù)歷史:
從傳輸速度上面能看到儒旬,每一次的技術(shù)革新栏账,網(wǎng)絡(luò)速度都會大大提升。網(wǎng)上有一副圖栈源,形象的概括了不同技術(shù)下的網(wǎng)絡(luò)速度差別挡爵。
Android 起源
Android 的發(fā)明人是 Andy Rubin。Andy Rubin 早年供職于蘋果公司甚垦,算是一個(gè)機(jī)器發(fā)燒友茶鹃,不僅能拿電焊機(jī)焊電路板,而且熱愛編程艰亮,有喬布斯般的偏執(zhí)闭翩。當(dāng)年他為了開發(fā) Android 系統(tǒng),先花光了以前積累的百萬財(cái)富迄埃,接著又把房子抵押出去疗韵,最后走投無路時(shí),找到了 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 每一個(gè)版本都有一個(gè)名字,全部和吃有關(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鸟整,它基本上壟斷了整個(gè) PC 行業(yè)。現(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 短荐。造成這個(gè)結(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)痴笮遥看到的手機(jī)分辨率是 1080 x 1920 ,單位就是像素芽世。
2 dp /dip :dp 是 dip 的簡稱 挚赊,全稱是 density independent pixels
, 表示屏幕密度無關(guān)的像素。它代表手機(jī)屏幕實(shí)際的顯示點(diǎn)济瓢,而每個(gè)點(diǎn)的像素?cái)?shù)卻不同荠割。好屏幕,每個(gè)點(diǎn)的像素?cái)?shù)多,圖像較清晰蔑鹦;差的屏幕夺克,每個(gè)點(diǎn)像素?cái)?shù)少,圖像就較模糊嚎朽。開發(fā)中多采用此單位作為空間尺寸铺纽。
3 sp:用于文本字體大小。當(dāng)用戶修改設(shè)備字體大小時(shí)哟忍,文字會自動(dòng)適配狡门。
以上是 Android 入門的基礎(chǔ)知識,包括 Android 的起源歷史锅很、和蘋果的市場關(guān)系其馏,以及手機(jī)系統(tǒng)采用 CPU 的知識。后面介紹了 Android 開發(fā)需要掌握的布局概念和尺寸單位爆安。大視角看到的都是見聞叛复,后面的小視角才是開發(fā)者最長接觸的技術(shù)。既然入坑鹏控,以后就要用細(xì)挖掘致扯,用心尋找底部的知識源泉。同行的小伙伴当辐,你在哪里抖僵?