歡迎你來到Android世界! Android系統(tǒng)是目前世界上市場占有率最高的移動操作系統(tǒng),不管你在哪里,都可以看到Android手機(jī)幾乎無處不在。今天的
Android世界可謂欣欣向榮,可是你知道它的過去是什么樣的嗎?我們一起來看一看它的發(fā)展史吧。2003年10月,Andy Rubin等人一起創(chuàng)辦了 Android公司。2005年8月谷歌收購了這家僅僅成立了 22個月的公司,并讓Andy Rubin繼續(xù)負(fù)責(zé)Android項目。在經(jīng)過了數(shù)年的研發(fā)之后,谷歌終于在2008年推出了 Android系統(tǒng)的第一個版本。但自那之后,Android的發(fā)展就一直受到重重阻撓。喬布斯自始至終認(rèn)為Android是一個抄襲iPhone的產(chǎn)品,里面剽竊了諸多iPhone的創(chuàng)意,并聲稱一定要?dú)У鬉ndroido而本身就是基于Linux開發(fā)的Android操作系統(tǒng),在2010年被Linux團(tuán)隊從Linux內(nèi)核主線中除名。又由于Android中的應(yīng)用程序都是使用Java開發(fā)的,甲骨文則針對Android侵犯Java知識產(chǎn)權(quán)一事對谷歌提起了訴訟……
1 android 系統(tǒng)架構(gòu)
1. Linux內(nèi)核層
Android系統(tǒng)是基于Linux內(nèi)核的,這一層為Android設(shè)備的各種硬件提供了底層的驅(qū)動,如顯示驅(qū)動、音頻驅(qū)動、照相機(jī)驅(qū)動、藍(lán)牙驅(qū)動、wi-n驅(qū)動、電源管理等。
2. 系統(tǒng)運(yùn)行庫層
這一層通過一些C/C++庫來為Android系統(tǒng)提供了主要的特性支持。如SQLite庫提供了數(shù)據(jù)庫的支持,OpenGL|ES庫提供了 3D繪圖的支持,Webkit庫提供了瀏覽器內(nèi)核的支持等。同樣在這一層還有Android運(yùn)行時庫,它主要提供了一些核心庫,能夠允許開發(fā)者使用Java語言來編寫Android應(yīng)用。另外,Android運(yùn)行時庫中還包含了 Dalvik虛擬機(jī)(5.0系統(tǒng)之后改為ART運(yùn)行環(huán)境),它使得每一個Android應(yīng)用都能運(yùn)行在獨(dú)立的進(jìn)程當(dāng)中,并且擁有一個自己的Dalvik虛擬機(jī)實例。相較于Java虛擬機(jī),Dalvik是專門為移動設(shè)備定制的,它針對手機(jī)內(nèi)存、CPU性能有限等情況做了優(yōu)化處理。
3. 應(yīng)用框架層
這一層主要提供了構(gòu)建應(yīng)用程序時可能用到的各種API, Android自帶的一些核心應(yīng)用就是使用這些API完成的,開發(fā)者也可以通過使用這些API來構(gòu)建自己的應(yīng)用程序。
4. 應(yīng)用層
所有安裝在手機(jī)上的應(yīng)用程序都是屬于這一層的,比如系統(tǒng)自帶的聯(lián)系人、短信等程序,或者是你從Google Play上下載的小游戲,當(dāng)然還包括你自己開發(fā)的程序。

2 Android已發(fā)布的版本
2008年9月,谷歌正式發(fā)布了 Android 1.0系統(tǒng),這也是Android系統(tǒng)最早的版本。隨后的幾年,谷歌以驚人的速度不斷地更新Android系統(tǒng),2.1、2.2、2.3系統(tǒng)的推出使Android占據(jù)了大量的市場。2011年2月,谷歌發(fā)布了 Android 3.0系統(tǒng),這個系統(tǒng)版本是專門為平板電腦設(shè)計的,但也是Android為數(shù)不多的比較失敗的版本,推出之后一直不見什么起色,市場份額也少得可憐。不過很快,在同年的10月,谷歌又發(fā)布了 Android4.0系統(tǒng),這個版本不再對手機(jī)和平板
進(jìn)行差異化區(qū)分,既可以應(yīng)用在手機(jī)上,也可以應(yīng)用在平板上。2014年Google I/O大會上,谷歌推出了號稱史上版本改動最大的Android 5.0系統(tǒng),其中使用ART運(yùn)行環(huán)境替代了 Dalvik虛擬機(jī),大大提升了應(yīng)用的運(yùn)行速度,還提出了 Material Design的概念來優(yōu)化應(yīng)用的界面設(shè)計。除此之外,還推出了 Android Wear A Android Auto. Android TV系統(tǒng),從而進(jìn)軍可穿戴設(shè)備、汽車、電視等全新領(lǐng)域。之后Android的更新速度更加迅速,2015年Google I/O大會上推出了 Android 6.0系統(tǒng),加人運(yùn)行時權(quán)限功能,2016年Google I/O大會上推出了 Android 7.0系統(tǒng),加人多窗口模式功能,這也是目前最新的Android系統(tǒng)版本。
| Android版本名稱Code name | Android版本 | 版本發(fā)布時間 | 對應(yīng)API |
|---|---|---|---|
| (no code name) | 1.0 | 2008年9月23日 | API level 1 |
| (no code name) | 1.1 | 2009年2月2日 | API level 2 |
| Cupcake | 1.5 | 2009年4月17日 | API level 3,NDK 1 |
| Donut | 1.6 | 2009年9月15日 | API level 4,NDK 2 |
| Eclair | 2.0.1 | 2009年12月3日 | API level 6 |
| Eclair | 2.1 | 2010年1月12日 | API level 7,NDK3 |
| Froyo | 2.2.x | 2010年1月12日 | API level 8,NDK 4 |
| Gingerbread | 2.3 – 2.3.2 | 2011年1月1日 | API level 9,NDK5 |
| Gingerbread | 2.3.3 – 2.3.7 | 2011年9月2日 | API level 10 |
| Honeycomb | 3.0 | 2011年2月24日 | API level 11 |
| Honeycomb | 3.1 | 2011年5月10日 | API level 12,NDK 6 |
| Honeycomb | 3.2.x | 2011年7月15日 | API level 13 |
| Ice Cream Sandwich | 4.0.1 – 4.0.2 | 2011年10月19日 | API level 14,NDK 7 |
| Ice Cream Sandwich | 4.0.3 – 4.0.4 | 2012年2月6日 | API level 15,NDK 8 |
| Jelly Bean | 4.1 | 2012年6月28日 | API level 16 |
| Jelly Bean | 4.1.1 | 2012年6月28日 | API level 16 |
| Jelly Bean | 4.2-4.2.2 | 2012年11月 | API level 17 |
| Jelly Bean | 4.3 | 2013年7月 | API level 18 |
| KitKat | 4.4 | 2013年7月24日 | API level 19 |
| Kitkat Watch | 4.4W | 2014年6月 | API level 20 |
| Lollipop(Android L) | 5.0/5.1 | 2014年6月25日 | API level 21/API level 22 |
| Marshmallow(Android M) | 6.0 | 2015年5月28日 | API level 23 |
| Nougat(Android N) | 7.0 | 2016年5月18日 | API level 24 |
| Nougat(Android N) | 7.1 | 2016年12月 | API level 25 |
| Oreo(Android O) | 8.0 | 2017年8月22日 | API level 26 |
| Oreo(Android O) | 8.1 | 2017年12月5日 | API level 27 |
| Pie (Android P) | 9.0 | 2018年8月7日 | API level 28 |
3 Android應(yīng)用開發(fā)特色
- 四大組件
Android系統(tǒng)四大組件分另是活動(Activity)、月艮務(wù)(Service).廣播接收器(Broadcast Receiver)和內(nèi)容提供器(Content Provider )o其中活動是所有Android應(yīng)用程序的門面,凡是在應(yīng)用中你看得到的東西,都是放在活動中的。而服務(wù)就比較低調(diào)了,你無法看到它,但它會一直在后臺默默地運(yùn)行,即使用戶退出了應(yīng)用,服務(wù)仍然是可以繼續(xù)運(yùn)行的。廣播接收器允許你的應(yīng)用接收來自各處的廣播消息,比如電話、短信等,當(dāng)然你的應(yīng)用同樣也可以向外發(fā)出廣播消息。內(nèi)容提供器則為應(yīng)用程序之間共享數(shù)據(jù)提供了可能,比如你想要讀取系統(tǒng)電話簿中的聯(lián)系人,就需要通過內(nèi)容提供器來實現(xiàn)。 - 豐富的系統(tǒng)控件
Android系統(tǒng)為開發(fā)者提供了豐富的系統(tǒng)控件,使得我們可以很輕松地編寫出漂亮的界面。當(dāng)然如果你品位比較高,不滿足于系統(tǒng)自帶的控件效果,也完全可以定制屬于自己的控件。 - SQLite數(shù)據(jù)庫
Android系統(tǒng)還自帶了這種輕量級、運(yùn)算速度極快的嵌人式關(guān)系型數(shù)據(jù)庫。它不僅支持標(biāo)準(zhǔn)的SQL語法,還可以通過Android封裝好的API進(jìn)行操作,讓存儲和讀取數(shù)據(jù)變得非常方便。 - 強(qiáng)大的多媒體
Android系統(tǒng)還提供了豐富的多媒體服務(wù),如音樂、視頻、錄音、拍照、鬧鈴,等等,這一切你都可以在程序中通過代碼進(jìn)行控制,讓你的應(yīng)用變得更加豐富多彩。 - 地理位置定位
移動設(shè)備和PC相比起來,地理位置定位功能應(yīng)該可以算是很大的一個亮點(diǎn)。現(xiàn)在的Android手機(jī)都內(nèi)置有GPS,走到哪兒都可以定位到自己的位置,發(fā)揮你的想象就可以做出創(chuàng)意十足的應(yīng)用,如果再結(jié)合功能強(qiáng)大的地圖功能,LBS這一領(lǐng)域潛力無限。
4 搭建開發(fā)環(huán)境
4.1 需要的開發(fā)工具
- JDK。IDK是Java語言的軟件開發(fā)工具包,它包含了 Java的運(yùn)行環(huán)境、工具集合、基礎(chǔ)類庫等內(nèi)容。
- Android SDK。Android SDK是谷歌提供的Android開發(fā)工具包,在開發(fā)Android程序時,我們需要通過引人該工具包,來使用Android相關(guān)的API。
- Android Studio。在很早之前,Android項目都是用Eclipse來開發(fā)的,相信所有Java開發(fā)者都一定會對這個工具非常熟悉,它是Java開發(fā)神器,安裝ADT插件后就可以用來開發(fā)Android程序了。而在2013年的時候,谷歌推出了一款官方的IDE工具Android Studio,由于不再是以插件的形式存在,Android Studio在開發(fā)Android程序方面要遠(yuǎn)比Eclipse強(qiáng)大和方便得多。