国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

zhaochunqi / 2080人閱讀

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

  

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

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

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

  

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

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

  

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

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

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

  

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

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

  

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

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

  

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

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

  

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

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

  

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

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

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

  

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

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

  

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

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

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

  

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

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

  

我覺得基礎(chǔ)知識(shí)掌握之后,并沒有統(tǒng)一的進(jìn)階方向,因?yàn)槟阋呀?jīng)擁有了開發(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://m.specialneedsforspecialkids.com/yun/64202.html

相關(guān)文章

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

0條評(píng)論

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