Android職業(yè)發(fā)展規(guī)劃淺析 為開發(fā)者解憂
本人一直致力于嵌入式相關(guān)知識和技術(shù)在中國大陸地區(qū)的技術(shù)傳播及嵌入式產(chǎn)品及移動設(shè)備的系統(tǒng)和應(yīng)用程序開發(fā),近兩年主要專注于3G技術(shù)領(lǐng)域,重點是研究Android應(yīng)用開發(fā)及系統(tǒng)核心代碼及Android開發(fā)人才培養(yǎng)體系的建設(shè)。作為華清遠見3G學院的職業(yè)講師,我在面試學員的過程中經(jīng)常會被反復問到一些問題,如Android開發(fā)是否有前途?目前國內(nèi)Android開發(fā)行業(yè)市場現(xiàn)狀如何?什么樣的人可以學Android?需要有什么樣的基礎(chǔ)?如何學習Android開發(fā)?等等。這些問題可能是大部分Android開發(fā)初學者想了解的,所以抽時間整理了一下,短文一篇,希望可以對大家在Android開發(fā)入門學習的階段有所幫助,更希望可以幫助更多的朋友進一步了解所學的行業(yè),明確職業(yè)發(fā)展的方向,歡迎拍磚。
關(guān)于Android
相信大家對Android的發(fā)展歷史多少都有一些了解, Android曾經(jīng)是一家創(chuàng)立于舊金山的公司的名字,該公司于2005年8月份被Google收購,并從此踏上了飛速發(fā)展的道路。經(jīng)過這幾年的發(fā)展,它已經(jīng)發(fā)展成了一個平臺、一個生態(tài)體系?,F(xiàn)在Android在移動領(lǐng)域已經(jīng)得到了廣泛的應(yīng)用。根據(jù)Google于2011年6月份公布的數(shù)字,現(xiàn)在每天激活的Android設(shè)備高達50萬臺,比5月份的數(shù)據(jù)增加了10萬臺!Google還透露目前已經(jīng)與36家OEM廠商和215家運營商合作,共激活了超過1億臺Android設(shè)備。
相比于Symbian的日落西山,以及蘋果的封閉、Windows Phone的前途未卜,Android無疑代表了當前行業(yè)發(fā)展的主流趨勢:開放平臺取代了封閉平臺。讓參與者均能通過自己的努力而獲益。
從2008年9月公布1.0版本以來,經(jīng)過近三年的跨越式發(fā)展,現(xiàn)在Android已經(jīng)發(fā)展到了3.x版本,這是一個針對平板電腦而做了大量優(yōu)化的版本,包括對更大屏幕的支持的類庫、多任務(wù)優(yōu)化等。目前市場上占主流的還是2.2版本,當然,相信隨著時間的推移,2.3及后續(xù)版本會得到越來越多的設(shè)備的支持。
學習Android有前途么?
由于Android是近幾年才開始起步的,所以有很多朋友在關(guān)注華清遠見3G Android系統(tǒng)開發(fā)課程時,也總是會有這樣的疑問。我一直跟帶著這種疑問的朋友說,回答這個問題,有幾個關(guān)鍵點:第一、這個市場是否足夠大(或者能發(fā)展到足夠大),這點我相信大家對于移動設(shè)備的現(xiàn)狀有足夠的了解,對其未來的發(fā)展不會有什么異議;其次是你所從事的領(lǐng)域是否處于上升通道上?身處一個上升的通道,個人只要付出一定的努力,這個行業(yè)都會帶著你往上走,相反,如果處于一個沒落的行業(yè),個人再努力,可能都趕不上整個行業(yè)墜落的速度。Android這幾年的發(fā)展可謂有目共睹,就像前面所說,每天的設(shè)備激活數(shù)目就達到了50萬臺;其三,是否有足夠多的大公司參與其中,或者是否成就了一些公司。行業(yè)的發(fā)展,離不開業(yè)內(nèi)大公司的支持,或者,是否有公司在該領(lǐng)域得到了長足的發(fā)展。處于這個行業(yè)的大公司,除了Google本身外,也成就了一些公司,例如Motorola移動、HTC,前者借Android咸魚翻身,后者借Android成了市值超越Nokia的公司。行業(yè)的發(fā)展如此紅火,那么作為開發(fā)者,是否可以從中獲益呢?我們可以從“Android工程師一年經(jīng)驗月薪8000元:http://www.3g-edu.org/news/3G-45.htm”這則新聞來看這個行業(yè)的開發(fā)者的情況,由此可以看出,這個行業(yè)的從業(yè)人員現(xiàn)在有多搶手。
目前國內(nèi)Android開發(fā)行業(yè)市場現(xiàn)狀如何?
目前國內(nèi)的Android開發(fā)還是主要以應(yīng)用開發(fā)為主,主要分成3類:為企業(yè)開發(fā)應(yīng)用、開發(fā)通用應(yīng)用(放到Android Market或者其他App Market銷售)以及游戲開發(fā)(放到Android Market或者其他App Market銷售)。第一類開發(fā)者一般身處規(guī)模較大的公司,這些公司主要為自有品牌或者其他品牌設(shè)計手機或者平板電腦的總體方案。除了根據(jù)需求對系統(tǒng)進行定制外,更多的工作在于為這些系統(tǒng)編寫定制的應(yīng)用。第二類開發(fā)者,一般處于創(chuàng)業(yè)型公司或者是獨立開發(fā)者,他們的盈利方式主要是2種:為國外公司進行外包開發(fā),或者通過Google的移動廣告(AdMob)通過廣告點擊分成。而理論上的通過付費下載的形式來盈利的,現(xiàn)在國內(nèi)鮮見成功者。第三類開發(fā)者,目前和第二類開發(fā)者類似。下圖是開發(fā)者提交的應(yīng)用和游戲的數(shù)目所占的比例圖,從中也可以看出應(yīng)用開發(fā)數(shù)目遠超游戲開發(fā)。(數(shù)據(jù)來源:創(chuàng)新工廠)
[!--empirenews.page--]
什么樣的人可以學Android?
相對于其他移動開發(fā)平臺,因為Android的(應(yīng)用)開發(fā)采用了Java語言,所以,它的學習曲線相對比較平緩。對于那些有一些編程語言(如C/C++/Java等)訓練的學生,都可以考慮學習Android應(yīng)用開發(fā)。當然,如果你希望從事Android游戲開發(fā),那么,最好能在高數(shù)、離散數(shù)學甚至計算機圖形學等方面有比較扎實的基礎(chǔ)。如果后續(xù)想往底層開發(fā)如系統(tǒng)移植、驅(qū)動開發(fā)等方向發(fā)展,或者為了更好地理解Android 應(yīng)用架構(gòu)體系,那么,具備一定的操作系統(tǒng)知識是必要的,當然,并不需要你對操作系統(tǒng)有多精通,而是對其基本原理有一定了解即可。
如何學習Android開發(fā)?
上面是Android的體系架構(gòu)圖,自上而下分別為應(yīng)用層、應(yīng)用框架、類庫和Alvik運行時環(huán)境以及Linux內(nèi)核。一般來說,我們想從事Android開發(fā),可以從應(yīng)用開發(fā)作為切入點,逐漸熟悉其整個體系,并慢慢往其底層滲透,從而能做到軟硬兼?zhèn)?,華清遠見3G學院的Android系統(tǒng)開發(fā)班的課程設(shè)置就充分考慮到了這一點,既涉及到應(yīng)用開發(fā)的透徹掌握,又幫助大家在系統(tǒng)開發(fā)層面上做好充分的準備。而從學習的路線圖上來說,先熟悉Java SE編程,能比較熟練的使用Java語言進行編程,熟悉Java語言語法特點,熟悉Java IO、Java線程、網(wǎng)絡(luò)編程、XML處理等。另外,因為很多的Android應(yīng)用在運行時都需要去訪問網(wǎng)站服務(wù)器,因此,熟悉一種網(wǎng)絡(luò)編程語言也是必要的。無論是從學習的方便性還是市場占有情況來說,使用JSP/Servlet都是不二的選擇,另外,在這個階段也順便學習一下SQL語法和熟悉一種SQL數(shù)據(jù)庫,以方便后續(xù)Android開發(fā)中進行SQLite數(shù)據(jù)庫開發(fā)。學習完這些課程后,就可以開始進行Android的應(yīng)用開發(fā)的學習,例如Android中的UI組件、基本組件、數(shù)據(jù)存儲、傳感器、圖形圖像處理、多媒體處理、游戲開發(fā)等。為了更好地進行應(yīng)用編程,可以有選擇的對其Lib類庫進行分析,以加深對其工作機制的理解。再往下,就是操作系統(tǒng)層級了,這里應(yīng)該要對Linux操作系統(tǒng)進行學習,熟悉其內(nèi)核和運行原理,熟悉ARM體系架構(gòu)以及常用指令,并熟悉驅(qū)動的編寫方式,掌握其移植方法等。