成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

《第一行代碼》作者郭霖:從Java程序員到Android開(kāi)發(fā)者的第一步

zhaochunqi / 2129人閱讀

摘要:年,他創(chuàng)作了第一行代碼一書(shū)。至于為什么要寫(xiě)第一行代碼這本書(shū),我認(rèn)為基礎(chǔ)還是非常重要的,這本書(shū)可以很好地幫助初學(xué)者入門(mén),也可以幫助有經(jīng)驗(yàn)的開(kāi)發(fā)人員鞏固基礎(chǔ)。

  

非商業(yè)轉(zhuǎn)載請(qǐng)注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/125914

郭霖,Android軟件開(kāi)發(fā)工程師。從事Android開(kāi)發(fā)工作四年,有著豐富的項(xiàng)目實(shí)戰(zhàn)經(jīng)驗(yàn),負(fù)責(zé)及參與開(kāi)發(fā)過(guò)多款移動(dòng)應(yīng)用與游戲,對(duì)Android系統(tǒng)架構(gòu)及應(yīng)用層開(kāi)發(fā)有著深入的理解。2013年3月開(kāi)始,在CSDN上發(fā)表Android技術(shù)相關(guān)博文,很快就獲得了大量網(wǎng)友的好評(píng)。短短一年時(shí)間博客訪問(wèn)量超過(guò)50萬(wàn)次,評(píng)價(jià)近3000條。榮獲CSDN認(rèn)證專(zhuān)家,并被評(píng)選為2013年CSDN年度博客之星。2014年,他創(chuàng)作了《第一行代碼——Android》一書(shū)。郭霖現(xiàn)就職于蝸牛移動(dòng),繼續(xù)從事Android開(kāi)發(fā)工作。

問(wèn):你是如何成為一位Android開(kāi)發(fā)者的?

  

也算是機(jī)緣巧合吧。之前我走的是Java Web方向,一次偶然的機(jī)會(huì)了解到了Android操作系統(tǒng),我覺(jué)得移動(dòng)領(lǐng)域剛剛起步,潛力很大,而且正好又是使用的Java語(yǔ)言,專(zhuān)業(yè)和我非常對(duì)口,于是我就踏上了這條路。

問(wèn):為什么要寫(xiě)《第一行代碼——Android》這本書(shū)?它能為想要成為Android開(kāi)發(fā)者的讀者們解決什么問(wèn)題?在看你的書(shū)之前,需要有什么樣的技能和知識(shí)做基礎(chǔ)?

  

我很喜歡看書(shū),也看過(guò)很多的技術(shù)書(shū),寫(xiě)書(shū)對(duì)于我來(lái)說(shuō)算是一個(gè)紀(jì)念。至于為什么要寫(xiě)《第一行代碼——Android》這本書(shū),我認(rèn)為基礎(chǔ)還是非常重要的,這本書(shū)可以很好地幫助Android初學(xué)者入門(mén),也可以幫助有經(jīng)驗(yàn)的Android開(kāi)發(fā)人員鞏固基礎(chǔ)。

寫(xiě)這本書(shū)的時(shí)候我是完全站在初學(xué)者的角度上來(lái)寫(xiě)的,因此只要有Java基礎(chǔ)就可以看。對(duì)于Java的掌握程度那當(dāng)然是越熟練越好了,但最低要求是至少要懂Java的基本語(yǔ)法。學(xué)習(xí)Java的書(shū)籍實(shí)在是太多了,我也沒(méi)有都看過(guò),說(shuō)不上哪本好,大家還是自己找找看吧。

問(wèn):關(guān)于Android碎片化問(wèn)題,你對(duì)開(kāi)發(fā)者們有什么建議?

  

碎片化的問(wèn)題確實(shí)讓人非常頭疼,這是由于Android系統(tǒng)開(kāi)源的特性所必然導(dǎo)致出現(xiàn)的問(wèn)題。在這種問(wèn)題上我不敢說(shuō)我對(duì)開(kāi)發(fā)者們有什么建議,但我自己的做法就是不會(huì)為了少部分的用戶(hù)群而去編寫(xiě)大量的兼容性代碼。比如說(shuō)現(xiàn)在Android 2.x的市場(chǎng)已經(jīng)非常少了,但有很多的軟件還是一定要去兼容這些老版本的系統(tǒng)。我認(rèn)為這種行為其實(shí)在一定程度上縱容了碎片化的產(chǎn)生,也變相導(dǎo)致Android新版本系統(tǒng)普及過(guò)于緩慢。當(dāng)然了,沒(méi)有提供一種簡(jiǎn)便升級(jí)系統(tǒng)的辦法是Android新系統(tǒng)無(wú)法迅速普及最主要的原因。碎片化問(wèn)題即使谷歌都沒(méi)有辦法完全解決掉,我覺(jué)得作為一名普通的開(kāi)發(fā)者就沒(méi)有必要去深入研究了。

問(wèn):Android 的后臺(tái)推送原理是什么?和iOS 相比有什么區(qū)別?

  

后臺(tái)推送的原理都是相同的,就是讓客戶(hù)端和服務(wù)器保持一個(gè)長(zhǎng)連接,當(dāng)服務(wù)器想要推送的時(shí)候,就發(fā)送一條消息到指定客戶(hù)端就可以了。雖說(shuō)原理相同,但Android的推送要更加復(fù)雜一些,因?yàn)閕OS系統(tǒng)中已經(jīng)內(nèi)置好了推送功能,只需要使用提供好的API就能簡(jiǎn)單地完成推送功能。而Android雖說(shuō)也提供了類(lèi)似的GCM服務(wù),但由于在國(guó)內(nèi)使用受到很多限制,所以推送還是要自己做的。不過(guò)目前國(guó)內(nèi)也有一些第三方的推送平臺(tái),使用它們的話也可以很簡(jiǎn)單地完成推送功能。

問(wèn):對(duì)于想要從事移動(dòng)開(kāi)發(fā)的程序員來(lái)說(shuō),iOS, Android, WP各有什么優(yōu)勢(shì)?哪個(gè)未來(lái)前景更好?

  

從開(kāi)發(fā)語(yǔ)言上來(lái)講,Java和C#相對(duì)簡(jiǎn)單,上手成本比較低,這是Android和WP的優(yōu)勢(shì)。但iOS目前也推出了Swift語(yǔ)言,很大程度上緩解了OC上手困難的問(wèn)題。從用戶(hù)群體上來(lái)講,Android和iOS基本上占據(jù)了絕大部分的用戶(hù)群,WP的用戶(hù)群體則相對(duì)較少。從軟件的豐富程度來(lái)講,Android和iOS都擁有絕對(duì)的優(yōu)勢(shì),WP短期內(nèi)并沒(méi)有趕超的勢(shì)頭。因此,未來(lái)的前景我仍然認(rèn)為Android和iOS會(huì)相對(duì)較好,WP的發(fā)展情況較難預(yù)測(cè)。

問(wèn):一直以來(lái),Android的內(nèi)部功能相比于iOS都更勝一籌,比如先進(jìn)的應(yīng)用內(nèi)分享機(jī)制、自由定制的launcher 和widget,等等,但是iOS 7 特別是 iOS 8 帶來(lái)的新特性在很大程度上趕上甚至反超 Android,你怎么看?

  

我從沒(méi)認(rèn)為Android系統(tǒng)要比iOS更勝一籌,雖說(shuō)我自己是從事Android行業(yè)的,但我并不希望Android可以干掉iOS。這兩個(gè)系統(tǒng)各有各的優(yōu)勢(shì),共存是非常合理的現(xiàn)象。至于iOS
7和8推出的新特性我認(rèn)為是很正常的現(xiàn)象,一個(gè)系統(tǒng)要是永遠(yuǎn)沒(méi)有創(chuàng)新,那就只能是等死。這條理論同樣適用與Android身上,所以Android也在一直進(jìn)步,比如最近Android
L系統(tǒng)的推出,在界面效果上甚至也有趕超iOS的趨勢(shì)。谷歌和蘋(píng)果都是偉大的公司,所以我不會(huì)片面的評(píng)價(jià)他們的系統(tǒng)到底誰(shuí)比誰(shuí)強(qiáng)。

問(wèn):你覺(jué)得Android L的最大亮點(diǎn)是什么?對(duì)于開(kāi)發(fā)者來(lái)說(shuō),如何適應(yīng)多屏開(kāi)發(fā)的趨勢(shì)?

  

Android L號(hào)稱(chēng)是Android歷史上改變最大的一個(gè)版本,其中多數(shù)功能是系統(tǒng)內(nèi)部的優(yōu)化,比如ART運(yùn)行環(huán)境、耗電性?xún)?yōu)化等。與應(yīng)用層開(kāi)發(fā)者相關(guān)的最主要的改變應(yīng)該就是Material
Design,新的UI,新的控件,給人耳目一新的感覺(jué)。

另外,之所以敢稱(chēng)Android L是Android歷史上改變最大的一個(gè)版本,是因?yàn)閺倪@個(gè)版本開(kāi)始,Android系統(tǒng)就不再是僅僅應(yīng)用于手機(jī)和平板上了,而是可以應(yīng)用在手表、電視和汽車(chē)上。Android L中已經(jīng)建立了Android Wear、Android TV和Android Auto這幾個(gè)分支,也是為Android日后的多元化鋪路吧。至于多屏開(kāi)發(fā)的問(wèn)題其實(shí)是外界人把它想復(fù)雜了,Android系統(tǒng)發(fā)展到了今天,已經(jīng)提供了太多不同尺寸屏幕適配的解決方案,相信懂Android開(kāi)發(fā)的朋友們都不會(huì)受這個(gè)問(wèn)題困擾的。

問(wèn):你認(rèn)為移動(dòng)開(kāi)發(fā)人員應(yīng)該學(xué)習(xí)用戶(hù)體驗(yàn)設(shè)計(jì)嗎?如何入手?

  

所謂技多不壓身,如果你有充足的時(shí)間和精力,多去學(xué)點(diǎn)東西肯定是有好處的。用戶(hù)體驗(yàn)設(shè)計(jì)可以在很大程序上幫助開(kāi)發(fā)人員編寫(xiě)出更優(yōu)秀的程序,能掌握這個(gè)本領(lǐng)的話對(duì)自身的能力也是有很大提升的。

問(wèn):要成為Android開(kāi)發(fā)高手要經(jīng)過(guò)幾個(gè)階段?

  

這種問(wèn)題我不敢回答,因?yàn)槲易约阂策€不是一個(gè)高手。但是就我自身的成長(zhǎng)經(jīng)歷來(lái)說(shuō),首先,一定要把Java的基本功打扎實(shí),然后就可以學(xué)習(xí)Android相關(guān)的基礎(chǔ)知識(shí)了(比如說(shuō)看《第一行代碼》)。接著,可以去嘗試編寫(xiě)一些小軟件,這樣基本就能達(dá)到入門(mén)水準(zhǔn)了。

自己能寫(xiě)出來(lái)代碼只能算是第一步,接著你還要能讀懂別人寫(xiě)的代碼,這是很重要的一門(mén)功夫,也是要慢慢培養(yǎng)的。等你掌握了這門(mén)功夫后,后面的發(fā)展方向就非常寬廣了,可以閱讀你們公司大牛寫(xiě)出的代碼,以及各種開(kāi)源框架甚至是系統(tǒng)的源碼,不斷充實(shí)自己。

問(wèn):對(duì)于想深入學(xué)習(xí)底層架構(gòu)的同學(xué),應(yīng)該怎樣閱讀 Android 系統(tǒng)源碼呢?

  

我覺(jué)得閱讀系統(tǒng)源碼非常有必要遵循的一個(gè)原則就是抽絲剝繭、點(diǎn)到即止。應(yīng)該認(rèn)準(zhǔn)一個(gè)功能點(diǎn),然后去分析這個(gè)功能點(diǎn)是如何實(shí)現(xiàn)的。但只要去追尋主體的實(shí)現(xiàn)邏輯即可,千萬(wàn)不要試圖去搞懂每一行代碼都是什么意思,那樣很容易會(huì)陷入到思維陷阱當(dāng)中。因?yàn)檫@些龐大的系統(tǒng)都不是由一個(gè)人寫(xiě)出來(lái)的,每一行代碼都想搞明白,就會(huì)感覺(jué)自己是在盲人摸象,永遠(yuǎn)也研究不透。如果只是去分析主體的實(shí)現(xiàn)邏輯,那么就有比較明確的目的性,這樣閱讀源碼會(huì)更加輕松,也更加有成效。

問(wèn):讀完《第一行代碼》該如何開(kāi)始下一步的晉級(jí)之路?

  

我覺(jué)得基礎(chǔ)知識(shí)掌握之后,并沒(méi)有統(tǒng)一的進(jìn)階方向,因?yàn)槟阋呀?jīng)擁有了開(kāi)發(fā)很多功能的能力,后面應(yīng)該根據(jù)公司的業(yè)務(wù)需求去深入研究相關(guān)領(lǐng)域的技術(shù),這個(gè)就因人而異了。但只要基本功掌握的足夠牢固,不管是什么方向的技術(shù),你一定都能勢(shì)如破竹地拿下的。

更多精彩,加入圖靈訪談微信!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/64202.html

相關(guān)文章

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<