華清遠見(jiàn)專(zhuān)家解讀Android開(kāi)發(fā)者成長(cháng)之路
之前曾經(jīng)寫(xiě)過(guò)一篇文章,題目為《Android開(kāi)發(fā)的入門(mén)之路》。在那篇文章中,我對于Android的市場(chǎng)情況談了談自己的看法,也對如何學(xué)習Android開(kāi)發(fā)提了一些建議。限于篇幅,上次的文章中,對Android的具體學(xué)習過(guò)程和相關(guān)經(jīng)驗沒(méi)有做太多的說(shuō)明,今天就這個(gè)話(huà)題,結合華清遠見(jiàn)3G學(xué)院的“3G Android系統開(kāi)發(fā)班”就業(yè)培訓課程再展開(kāi)談?wù)?,希望能夠給更多朋友以幫助和建議,歡迎拍磚。
本文引用地址:http://dyxdggzs.com/article/125811.htm 在討論Android學(xué)習之前,我們先來(lái)關(guān)心一下從上篇文章到現在2個(gè)多月近3個(gè)月時(shí)間內和Android相關(guān)的2條重要新聞。
Android行業(yè)新動(dòng)態(tài)
最近和Android相關(guān)的新聞,從重要性來(lái)說(shuō),當然就是Android 4(Ice Cream Sandwich)的發(fā)布。在這個(gè)全新的平臺中,Android不再將手機和平板分成2個(gè)分支,而是將其合二為一。這對于開(kāi)發(fā)者來(lái)說(shuō),無(wú)疑是非常有利的,同時(shí)這也充分說(shuō)明了移動(dòng)開(kāi)發(fā)領(lǐng)域的發(fā)展趨勢和日益廣闊的應用領(lǐng)域。另外,它在溝通和共享、多媒體支持、網(wǎng)絡(luò )連接能力、UI組件等方面都有令人興奮的更新。另外,就是Google終于又宣布Android4將重新開(kāi)源。
搭載Android 4.0的Galaxy Nexus
Android業(yè)內另一件大事,雖然很轟動(dòng),但很多人并沒(méi)有將它跟Android聯(lián)系起來(lái),那就是Amazon在9月28日推出自己的平板電腦——Kindle Fire,它是一款基于A(yíng)ndroid的深度定制的平板電腦。在蘋(píng)果和喬布斯的光芒掩蓋之下,估計很多人對此并不以為然。但是別忘了,這是一家怎么樣的公司:它2010年的收入比Google還多20億美元,而且,更重要的是,經(jīng)過(guò)多年的發(fā)展,他已經(jīng)建立起了世界上最龐大的網(wǎng)絡(luò )電影和電視商店以及電子書(shū)庫、擁有僅次于蘋(píng)果的在線(xiàn)音樂(lè )商店,并且,它有自己的Android應用程序商店,擁有超過(guò)一萬(wàn)款付費應用?,F在它推出了自己的硬件,其令人吃驚和驕人的業(yè)績(jì)是,在Kindle Fire發(fā)布的第五天,其預定人數已經(jīng)超過(guò)25萬(wàn)!這和iPad 2推出時(shí)的情形非常類(lèi)似,這意味著(zhù)什么,我想大家應該都能想到——一個(gè)類(lèi)似于蘋(píng)果的、基于A(yíng)ndroid的生態(tài)系統正在形成,而這對于我們開(kāi)發(fā)者來(lái)說(shuō),無(wú)疑也是非常有利的。
Amazon Kindle Fire
聊完最近的一些Android市場(chǎng)動(dòng)態(tài)信息,我們進(jìn)入正題,接著(zhù)上次的文章談?wù)勅绾螌W(xué)習Android開(kāi)發(fā)。
如何做好Android學(xué)習前的準備?
如果你已經(jīng)確定了學(xué)習Android的目標,那么,應該提前做好哪些工作、先打下哪些基礎呢?
首先,你最好先熟悉一門(mén)編程語(yǔ)言,現在大學(xué)里面和計算機相關(guān)的專(zhuān)業(yè)甚至理工類(lèi)專(zhuān)業(yè)一般都會(huì )開(kāi)設C語(yǔ)言課程,只是很多同學(xué)在大學(xué)期間并沒(méi)有好好學(xué)習,如果對它掌握的不太好或者很久沒(méi)用了,建議先從將其好好復習一下,將其基本的語(yǔ)法再好好回顧一下,最好能搭建一個(gè)環(huán)境來(lái)運行、調試它。如果沒(méi)有學(xué)過(guò),不妨也提前學(xué)習一下,可以參考清華大學(xué)出版社出版的譚浩強老師的《C語(yǔ)言程序設計》,推薦這本書(shū)的原因,一是它已經(jīng)經(jīng)過(guò)了多年的考驗,應該說(shuō)還是比較嚴謹的;其次就是大部分的高校所開(kāi)設的C語(yǔ)言使用的教材都是用它作為教材,因此無(wú)論是購買(mǎi)還是借閱,都容易找到。另外,華清遠見(jiàn)網(wǎng)站上也有一些這方面的教學(xué)視頻(http://www.embedu.org/courses/basic.htm),可以結合來(lái)看。
其次,如果你后續有志于游戲方面的開(kāi)發(fā),你最好具備一定的數據結構和算法基礎知識。這一點(diǎn)是我在華清遠見(jiàn)的講臺上,給學(xué)員們堅持強調的。雖然現代的高級編程語(yǔ)言中,其類(lèi)庫中已經(jīng)幫我們實(shí)現了大部分的數據結構,一般情況下,我們直接使用即可。但如果你能對其原理有所了解,當你需要在這些數據結構和算法中間的時(shí)候,你可以能更加的清楚到底應該選擇那個(gè)數據結構或者算法。另外,在圖形圖像處理上面,線(xiàn)性代數的作用也非常重要,如果能掌握一點(diǎn)這方面的基礎知識,無(wú)疑也會(huì )在后續的學(xué)習中如虎添翼。舉個(gè)例子,在A(yíng)ndroid中,有一個(gè)用于圖形變換的類(lèi)Matrix,用起來(lái)稍有點(diǎn)難。其實(shí)它的理論基礎就是線(xiàn)性代數中的矩陣,如果你了解矩陣的基本算法,這個(gè)類(lèi)的使用可以說(shuō)就易如反掌了。
第三,因為Android應用的開(kāi)發(fā)語(yǔ)言用的是Java語(yǔ)言,并且在A(yíng)ndroid中也用到了Java核心類(lèi)庫的大量的類(lèi),因此,在學(xué)習Android開(kāi)發(fā)之前,可以先把Java基本語(yǔ)法和Java SE的基礎類(lèi)庫好好學(xué)習一下,例如:Java中的IO、網(wǎng)絡(luò )、線(xiàn)程、List、Map、Tree等數據結構?,F在的大學(xué)里也有不少的院系開(kāi)設了Java課程,教材和圖書(shū)也非常豐富,如果你所在的院系沒(méi)有開(kāi)設,也可以從其他開(kāi)設了這個(gè)專(zhuān)業(yè)的院系同學(xué)那里借閱一下,并認真完成他們所布置的作業(yè),爭取自己能動(dòng)手編寫(xiě)出一些簡(jiǎn)單的Java應用。如果自己購買(mǎi)圖書(shū),可以購買(mǎi)《Java核心技術(shù),卷1(原書(shū)第8版)》這本圖書(shū)來(lái)學(xué)習。
第四,因為在A(yíng)ndroid中,會(huì )用到數據庫來(lái)存儲數據,因此,也可以提前對數據庫知識做相關(guān)的儲備。在A(yíng)ndroid所使用的SQLite中,其語(yǔ)法是遵循標準的SQL-92語(yǔ)法的(當然和企業(yè)級數據庫如Oracle等比較,功能上要弱很多),有條件的話(huà),最好也能安裝一個(gè)數據庫來(lái)進(jìn)行實(shí)際的操作。從易用性和資料完備性來(lái)說(shuō),建議大家使用Microsoft SQL Server或者M(jìn)ySQL就可以了。它們都是我們學(xué)習數據庫的好平臺。另外,如果曾經(jīng)學(xué)習過(guò)數據庫原理或者關(guān)系代數,那么,在學(xué)習數據庫的過(guò)程中,也可以再好好地復習一下這些基礎知識,對我們理解數據庫大有裨益。
Android開(kāi)發(fā)學(xué)習方法
最后,我們結合華清遠見(jiàn)3G學(xué)院的“3G Android系統開(kāi)發(fā)就業(yè)培訓班課程體系”來(lái)談?wù)凙ndroid開(kāi)發(fā)的學(xué)習方法。
Android是一個(gè)比較龐大的體系,從底層的Linux內核到上層的應用層,各部分的內容跨度也比較大。因此,一個(gè)好的學(xué)習方法對我們學(xué)習Android開(kāi)發(fā)很重要。因此在華清遠見(jiàn)的課程體系設計中采取了循序漸進(jìn)、將大目標分解成多個(gè)小目標,逐步達成對Android開(kāi)發(fā)從應用層到底層系統及驅動(dòng)開(kāi)發(fā)全面掌握的目的。例如,可以先從Android的應用開(kāi)發(fā)開(kāi)始,等到對應用掌握的比較熟悉了,開(kāi)始慢慢閱讀一些Android 應用框架層的源代碼,然后再漸漸往下去了解Android的JNI、Libraries、Dalvik虛擬機、HAL層、硬件驅動(dòng)、Linux內核、ARM技術(shù)體系架構等,雖然近期Intel宣稱(chēng)要讓Intel芯片支持Android系統,但在可預見(jiàn)的時(shí)期內,在移動(dòng)設備上,ARM的優(yōu)勢應該還是不可撼動(dòng)的。具體來(lái)說(shuō),可以先通過(guò)在開(kāi)發(fā)板上構建一個(gè)自己的Android系統,了解Android系統的整體架構和啟動(dòng)過(guò)程,由此先對Android有一個(gè)初步的了解;接下來(lái),學(xué)習Android的應用開(kāi)發(fā),在這里可以先學(xué)習Android的幾個(gè)主要組件、UI組件,先對Android應用開(kāi)發(fā)有一個(gè)感性認識。在能夠熟練搭建用戶(hù)界面后,再逐漸來(lái)豐富應用的功能,例如:加上事件處理,使其能夠和用戶(hù)互動(dòng);加上數據存儲功能;加上聯(lián)網(wǎng)功能等等。在學(xué)完應用后,在此基礎上來(lái)學(xué)習游戲編程,先了解游戲設計的基本思路,然后開(kāi)始從小的游戲、小的模塊開(kāi)始做起,到最后能完成一個(gè)類(lèi)似于現在熱門(mén)的《捕魚(yú)達人》這樣的游戲。在掌握了這些應用層級的內容后,可以去了解如何在A(yíng)ndroid應用中通過(guò)JNI去調用C/C++的接口,再往下學(xué)習Linux的內核和驅動(dòng)開(kāi)發(fā)如字符設備驅動(dòng)、Flash設備驅動(dòng)、網(wǎng)絡(luò )設備驅動(dòng)等等;再在此基礎上,去學(xué)習Android驅動(dòng)開(kāi)發(fā)、HAL(硬件抽象層)開(kāi)發(fā)、ARM體系架構和指令等等內容,這樣,Android開(kāi)發(fā)的整個(gè)體系就都貫穿起來(lái)了。當然,因為時(shí)間有限,而底層部分的內容比較龐雜,因此,在真正去做這部分工作之前,我們只需要對其基本原理有所了解,做好相關(guān)知識的儲備,能夠根據老師的指導來(lái)完成相關(guān)的實(shí)驗。這樣在后續的工作中,就可以方便的往這方面發(fā)展,讓自己的事業(yè)更上一層樓。
c語(yǔ)言相關(guān)文章:c語(yǔ)言教程
c++相關(guān)文章:c++教程
評論