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