1. 程式人生 > >《論Android的發展方向(個人見解)》

《論Android的發展方向(個人見解)》

一.Android的出現
1.Android簡介

Android一詞的本義指“機器人”,同時也是Google於2007年11月5日
宣佈的基於Linux平臺的開源手機作業系統的名稱,該平臺由作業系統、中介軟體、使用者介面和應用軟體組成。
2. Android一詞最早出現於法國作家利爾亞當(Auguste Villiers de l’Isle-Adam)在1886年發表的科幻小說《未來夏娃》(L’ève future)中。他將外表像人的機器起名為Android。

二.Android的發展
1.Android的發展歷程

2003年10月,Andy Rubin等人建立Android公司,並組建Android團隊。

2005年8月17日,Google低調收購了成立僅22個月的高科技企業Android及其團隊。安迪魯賓成為Google公司工程部副總裁,繼續負責Android專案。

2007年11月5日,谷歌公司正式向外界展示了這款名為Android的作業系統,並且在這天谷歌宣佈建立一個全球性的聯盟組織,該組織由34家手機制造商、軟體開發商、電信運營商以及晶片製造商共同組成,並與84家硬體製造商、軟體開發商及電信營運商組成開放手持裝置聯盟(Open
Handset
Alliance)來共同研發改良Android系統,這一聯盟將支援谷歌釋出的手機作業系統以及應用軟體,Google以Apache免費開源許可證的授權方式,釋出了Android的原始碼。

2008年,在GoogleI/O大會上,谷歌提出了AndroidHAL架構圖,在同年8月18號,Android獲得了美國聯邦通訊委員會(FCC)的批准,在2008年9月,谷歌正式釋出了Android
1.0系統,這也是Android系統最早的版本。

2009年4月,谷歌正式推出了Android 1.5這款手機,從Android
1.5版本開始,谷歌開始將Android的版本以甜品的名字命名,Android 1.5命名為Cupcake(紙杯蛋糕)。該系統與Android 1.0相比有了很大的改進。

2009年9月份,谷歌釋出了Android 1.6的正式版,並且推出了搭載Android 1.6正式版的手機HTC
Hero(G3),憑藉著出色的外觀設計以及全新的Android 1.6作業系統,HTC
Hero(G3)成為當時全球最受歡迎的手機。Android 1.6也有一個有趣的甜品名稱,它被稱為Donut(甜甜圈)。

2010年2月份,Linux核心開發者Greg
Kroah-Hartman將Android的驅動程式從Linux核心“狀態樹”(“staging
tree”)上除去,從此,Android與Linux開發主流將分道揚鑣。在同年5月份,谷歌正式釋出了Android
2.2作業系統。谷歌將Android 2.2作業系統命名為Froyo,翻譯完名為凍酸奶。

2010年10月份,谷歌宣佈Android系統達到了第一個里程碑,即電子市場上獲得官方數字認證的Android應用數量已經達到了10萬個,Android系統的應用增長非常迅速。在2010年12月,谷歌正式釋出了Android
2.3作業系統Gingerbread (薑餅)。

2011年1月,谷歌稱每日的Android裝置新使用者數量達到了30萬部,到2011年7月,這個數字增長到55萬部,而Android系統裝置的使用者總數達到了1.35億,Android系統已經成為智慧手機領域佔有量最高的系統。

2011年8月2日,Android手機已佔據全球智慧機市場48%的份額,並在亞太地區市場佔據統治地位,終結了Symbian(塞班系統)的霸主地位,躍居全球第一。

2011年9月份,Android系統的應用數目已經達到了48萬,而在智慧手機市場,Android系統的佔有率已經達到了43%。繼續在排在移動作業系統首位。谷歌將會發布全新的Android
4.0作業系統,這款系統被谷歌命名為Ice Cream Sandwich(冰激凌三明治)。

2012年1月6日,谷歌Android Market已有10萬開發者推出超過40萬活躍的應用,大多數的應用程式為免費。Android
Market應用程式商店目錄在新年首週週末突破40萬基準,距離突破30萬應用僅4個月。在2011年早些時候,Android
Market從20萬增加到30萬應用也花了四個月。

2013年11月1日,Android4.4正式釋出,從具體功能上講,Android4.4提供了各種實用小功能,新的Android系統更智慧,新增更多的Emoji表情圖案,UI的改進也更現代,如全新的HelloiOS7半透明效果。

2015年27日,網路安全公司Zimperium研究人員警告,安卓(Android)存在“致命”安全漏洞,黑客傳送一封彩信便能在使用者毫不知情的情況下完全控制手機。

2.Android系統架構

Android的系統架構和其作業系統一樣,採用了分層的架構。從架構圖看,Android分為四個層,從高層到低層分別是應用程式層、應用程式框架層、系統執行庫層和Linux核心層。

應用程式層

Android會同一系列核心應用程式包一起釋出,該應用程式包包括客戶端,SMS短訊息程式,日曆,地圖,瀏覽器,聯絡人管理程式等。所有的應用程式都是使用JAVA語言編寫的。

應用程式框架層

開發人員也可以完全訪問核心應用程式所使用的API框架。該應用程式的架構設計簡化了元件的重用;任何一個應用程式都可以釋出它的功能塊並且任何其它的應用程式都可以使用其所釋出的功能塊(不過得遵循框架的安全性)。同樣,該應用程式重用機制也使使用者可以方便的替換程式元件。

系統執行庫層

Android 包含一些C/C++庫,這些庫能被Android系統中不同的元件使用。它們通過 Android
應用程式框架為開發者提供服務。以下是一些核心庫:
* 系統 C 庫 - 一個從BSD繼承來的標準C系統函式庫 Libc ), 它是專門為基於Embedded linux的裝置定製的。
* 媒體庫 - 基於PacketVideo OpenCORE;該庫支援多種常用的音訊、視訊格式回放和錄製,同時支援靜態影象檔案。編碼格式包括MPEG4, H.264, MP3,
AAC, AMR, JPG, PNG 。
* Surface Manager - 對顯示子系統的管理,並且為多個應用程式提 供了2D和3D圖層的無縫融合。
* LibWebCore - 一個最新的web瀏覽器引擎用,支援Android瀏覽器和一個可嵌入的web檢視。

Linux核心

Android 是運行於Linux kernel之上,但並不是GNU/Linux。因為在一般GNU/Linux 裡支援的功能,Android
大都沒有支援,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以Bionic
取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。Android 為了達到商業應用,必須移除被GNU
GPL授權證所約束的部份,例如Android將驅動程式移到 Userspace,使得Linux driver 與 Linux
kernel徹底分開。Bionic/Libc/Kernel/ 並非標準的Kernel header files。Android 的
Kernel header 是利用工具由 Linux Kernel header 所產生的,這樣做是為了保留常數、資料結構與巨集。
Android 的 Linux kernel控制包括安全(Security),儲存器管理(Memory
Management),程式管理(Process Management),網路堆疊(Network Stack),驅動程式模型(Driver
Model)等。下載Android原始碼之前,先要安裝其構建工具 Repo來初始化原始碼。Repo 是 Android
用來輔助Git工作的一個工具。

3.平臺優勢

在優勢方面,Android平臺首先就是其開發性,開發的平臺允許任何移動終端廠商加入到Android聯盟中來。顯著的開放性可以使其擁有更多的開發者,隨著使用者和應用的日益豐富,一個嶄新的平臺也將很快走向成熟。
開發性對於Android的發展而言,有利於積累人氣,這裡的人氣包括消費者和廠商,而對於消費者來講,最大的受益正是豐富的軟體資源。開放的平臺也會帶來更大競爭,如此一來,消費者將可以用更低的價位購得心儀的手機。

總結

正是Google給我們提供了這麼便捷的平臺和開源方式,使得我們越來越多的人走向了Android開發的舞臺。在這個舞臺中,Android發展的人數也是越來越多,出現的手機品牌和版本也是越來越多,在這樣的市場競爭中,Google是如何面對未來的呢?這個我相信Google一定有自己的考慮,在這裡我也想展望下我自己從一個開發者的角度去說一下未來Android的發展之路。

三.Android的未來

1.先講一下Android手機品牌的情況,國內Android手機發展中的華為、中興、魅族、小米、酷派等這些年來紛紛崛起。在國內深受大家的喜愛,更為重要的是,中低端機型的出現還有山寨機的出現,更是讓android的發展迅速。
2.各種APP的迅速發展,從我個人這幾年中看到的,從我11年開始使用android手機開始,從社交軟體開始、例如當前非常火的——微信,然後到現在的生活軟體、商業市場軟體、企業管理軟體、視訊直播軟體等,這些軟體可謂是迅速發展。
3.在這些軟體的迅速發展中出現的各種android中出現的結構: a. Facebook公司使用React Native Android b.現在又要非常流行的用H5來開發Android軟體 c.在遊戲中開發更是以C和C++為主
4.未來Android的發展 面對這個問題,我也是思量了很久,這段時間內我一直在思考,現在給出自己微不足道的見解。Android APP的發展,現在更多的是自動化的為人服務的軟體,每一個使用者的使用,都希望自己使用的APP有著更加優美和流暢的畫面和功能體驗,面對這些問題,我們開發者應該如何面對和解決呢?對於畫面的流暢,這就需要Android開發者對於美學的要求,個人的審美不同,更應該設計出適用於大眾美感的APP,我們作為開發者,也不能光為了追求美而讓自己的APP使用的流暢效能上很卡頓,雖然說Android的流暢程度和自己手機的核心和cpu等有關,但是我們更應該在自己程式中減少除系統硬體影響的因素,減少OOM,減少開啟應用和執行應用的卡頓現象。
如何去減少卡頓現象,相比這個問題會很困擾大家,但是我給出自己的意見。眾所周知,Android現在大多數都是用Java開發的,java執行時候要進行編譯成C語言進行執行,這個中間增加了執行編譯的時間,同時也讓我們的程式顯得很卡頓。所以,個人認為未來的軟體開發之路中,面向底層的開發更為重要,利用C來開發,減少系統的卡頓,這樣更能提升程式的介面流暢性。

哈哈,說了這麼多,也算是自己的隨筆和微不足道的見解,希望以後能和大家討論更加深刻的內容,現在還小,還不太懂未來,所以請大家勿笑!