歡迎你來到Android世界造成! Android系統(tǒng)是目前世界上市場占有率最高的移動操作系統(tǒng),不管你在哪里鸠踪,都可以看到Android手機幾乎無處不在缔莲。今天的
Android世界可謂欣欣向榮唱较,可是你知道它的過去是什么樣的嗎扎唾?我們一起來看一看它的發(fā)展史吧。2003年10月南缓,Andy Rubin等人一起創(chuàng)辦了 Android公司胸遇。2005年8月谷歌收購了這家僅僅成立了 22個月的公司汉形,并讓Andy Rubin繼續(xù)負責(zé)Android項目。在經(jīng)過了數(shù)年的研發(fā)之后收捣,谷歌終于在2008年推出了 Android系統(tǒng)的第一個版本楣颠。但自那之后童漩,Android的發(fā)展就一直受到重重阻撓差凹。喬布斯自始至終認為Android是一個抄襲iPhone的產(chǎn)品危尿,里面剽竊了諸多iPhone的創(chuàng)意,并聲稱一定要毀掉Androido而本身就是基于Linux開發(fā)的Android操作系統(tǒng)济欢,在2010年被Linux團隊從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ū)動是钥、照相機驅(qū)動、藍牙驅(qū)動弹囚、wi-n驅(qū)動、電源管理等。
2. 系統(tǒng)運行庫層
這一層通過一些C/C++庫來為Android系統(tǒng)提供了主要的特性支持祝蝠。如SQLite庫提供了數(shù)據(jù)庫的支持,OpenGL|ES庫提供了 3D繪圖的支持儡嘶,Webkit庫提供了瀏覽器內(nèi)核的支持等。同樣在這一層還有Android運行時庫,它主要提供了一些核心庫摆屯,能夠允許開發(fā)者使用Java語言來編寫Android應(yīng)用准验。另外,Android運行時庫中還包含了 Dalvik虛擬機(5.0系統(tǒng)之后改為ART運行環(huán)境),它使得每一個Android應(yīng)用都能運行在獨立的進程當(dāng)中,并且擁有一個自己的Dalvik虛擬機實例。相較于Java虛擬機,Dalvik是專門為移動設(shè)備定制的,它針對手機內(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)用層
所有安裝在手機上的應(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)警检,這個版本不再對手機和平板
進行差異化區(qū)分孙援,既可以應(yīng)用在手機上,也可以應(yīng)用在平板上扇雕。2014年Google I/O大會上拓售,谷歌推出了號稱史上版本改動最大的Android 5.0系統(tǒng),其中使用ART運行環(huán)境替代了 Dalvik虛擬機镶奉,大大提升了應(yīng)用的運行速度础淤,還提出了 Material Design的概念來優(yōu)化應(yīng)用的界面設(shè)計。除此之外哨苛,還推出了 Android Wear A Android Auto. Android TV系統(tǒng)鸽凶,從而進軍可穿戴設(shè)備、汽車移国、電視等全新領(lǐng)域吱瘩。之后Android的更新速度更加迅速,2015年Google I/O大會上推出了 Android 6.0系統(tǒng)迹缀,加人運行時權(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īng)用,服務(wù)仍然是可以繼續(xù)運行的物延。廣播接收器允許你的應(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)還自帶了這種輕量級轩触、運算速度極快的嵌人式關(guān)系型數(shù)據(jù)庫。它不僅支持標(biāo)準(zhǔn)的SQL語法家夺,還可以通過Android封裝好的API進行操作,讓存儲和讀取數(shù)據(jù)變得非常方便伐弹。 - 強大的多媒體
Android系統(tǒng)還提供了豐富的多媒體服務(wù)拉馋,如音樂、視頻惨好、錄音煌茴、拍照、鬧鈴日川,等等蔓腐,這一切你都可以在程序中通過代碼進行控制,讓你的應(yīng)用變得更加豐富多彩龄句。 - 地理位置定位
移動設(shè)備和PC相比起來回论,地理位置定位功能應(yīng)該可以算是很大的一個亮點。現(xiàn)在的Android手機都內(nèi)置有GPS,走到哪兒都可以定位到自己的位置分歇,發(fā)揮你的想象就可以做出創(chuàng)意十足的應(yīng)用傀蓉,如果再結(jié)合功能強大的地圖功能,LBS這一領(lǐng)域潛力無限职抡。
4 搭建開發(fā)環(huán)境
4.1 需要的開發(fā)工具
- JDK葬燎。IDK是Java語言的軟件開發(fā)工具包,它包含了 Java的運行環(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程序方面要遠比Eclipse強大和方便得多嘁字。