中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)專(zhuān)訪:學(xué)習(xí)Android的兩大法寶
本文為原創(chuàng),如需轉(zhuǎn)載,請(qǐng)注明作者和出處,謝謝!
近日,接受了中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)的專(zhuān)訪,談了關(guān)于Android的一系列問(wèn)題
http://dev.10086.cn/upload/developers_mag/vol8/index.htm?from=home
李寧近照
[背景資料]最近Android比較火,無(wú)論是摩托羅拉搭載 Android 2.2準(zhǔn)備咸魚(yú)翻身,還是Android Market年底將在臺(tái)灣開(kāi)市……這些消息足以讓人們?yōu)橹駣^。但當(dāng)人們看到Android的外表光鮮之時(shí),更要注意到其潛在內(nèi)涵,尤其對(duì)于廣大開(kāi)發(fā)者, 一味盲目地崇拜并扎入其中并不實(shí)為理智之舉。本期,我們?yōu)槟?qǐng)到一位與代碼打了15年交道的李寧,以其親身經(jīng)歷和開(kāi)發(fā)經(jīng)驗(yàn)來(lái)為廣大開(kāi)發(fā)者提出鑒言和忠 告。
15年演繹代碼與操作系統(tǒng)之戀
李寧1999年畢業(yè)于東北大學(xué)計(jì)算機(jī)專(zhuān)業(yè),畢業(yè)后曾任東軟股份項(xiàng)目經(jīng)理,2003年考入東北大學(xué)計(jì)算機(jī)專(zhuān)業(yè)讀研,2006年3月碩士畢業(yè)。從 1995年至今15年時(shí)間里,李寧幾乎一直與各種計(jì)算機(jī)語(yǔ)言和操作系統(tǒng)打交道。從最早接觸的DOS 3.3到后來(lái)的Windows 3.2、Windows 95、98、NT、2000乃至現(xiàn)在的Windows 7和Windows 2008,他對(duì)于計(jì)算機(jī)的學(xué)習(xí)歷程也正是經(jīng)歷了微軟PC的鼎盛發(fā)展期和互聯(lián)網(wǎng)的20年。
李寧認(rèn)為這一切都得益于其母親單位里有臺(tái)計(jì)算機(jī),在上世紀(jì)90年代,在那個(gè)計(jì)算機(jī)并不普及的年代,使得他從小就有機(jī)會(huì)接觸到計(jì)算機(jī)并對(duì)其情有獨(dú)鐘,在1995年報(bào)考大學(xué)填報(bào)志愿時(shí)選擇了“計(jì)算機(jī)專(zhuān)業(yè)”,而在1996年他也擁有了自己的第一臺(tái)計(jì)算機(jī)。
對(duì)于開(kāi)發(fā)語(yǔ)言,相信很多人已不再使用DOS了,而現(xiàn)在的孩子們也不能理解,在當(dāng)時(shí)一張5寸容量?jī)H為1.2M的軟盤(pán)曾經(jīng)讓多少人為之癡迷。然而李寧是 從DOS下的Pascal開(kāi)始學(xué)習(xí)編程語(yǔ)言,而后是C語(yǔ)言。最開(kāi)始接觸的數(shù)據(jù)庫(kù)開(kāi)發(fā)工具是DOS下的FoxPro 2.5,后來(lái)是Windows下的FoxPro3.0、FoxPro5.0.VB(Visual Basic)作為微軟第一款具有圖形界面的開(kāi)發(fā)工具一經(jīng)推出就曾引起不小的轟動(dòng),也為廣大開(kāi)發(fā)者所使用。在快畢業(yè)時(shí),李寧開(kāi)始使用SQL Server 7.0,到后來(lái)的SQL Server 2008,作為上手比較容易的一種數(shù)據(jù)庫(kù),也是李寧使用時(shí)間最長(zhǎng)的,差不多已有10年時(shí)間。
接觸Linux則純屬偶然。大概是在三、四年前,李寧的Windows操作系統(tǒng)的電腦突然崩潰,很多軟件突然無(wú)法打開(kāi)(有可能是中招了),而要重新 修復(fù)系統(tǒng)至少需要花費(fèi)一個(gè)星期時(shí)間(因?yàn)橄到y(tǒng)里安裝的軟件實(shí)在是太多了,有的已很難找到安裝程序),不得已他安裝了Fedora Linux操作系統(tǒng),并在Linux下繼續(xù)他的開(kāi)發(fā)工作。而通過(guò)深入了解他發(fā)現(xiàn),Linux在娛樂(lè)方面并不比Windows差,而單純對(duì)于技術(shù)人員來(lái) 講,Linux也比Windows更便于編程。一臺(tái)電腦安裝Windows 2008需占有2~3G的空間,而完全安裝Linux將占用8~9G空間,而且Linux所帶的工具大多都直接或間接地與開(kāi)發(fā)有關(guān),在完全安裝后基本就不 需要再安裝開(kāi)發(fā)工具,所以更加適合開(kāi)發(fā)人員使用。
熱戀還在Android:寫(xiě)心得、出書(shū)投入十二分精神
提到移動(dòng)應(yīng)用開(kāi)發(fā),早在2003年李寧就嘗試過(guò)使用Symbian系統(tǒng)開(kāi)發(fā)軟件,但當(dāng)他開(kāi)發(fā)完成準(zhǔn)備安裝在手機(jī)上才發(fā)現(xiàn),塞班系統(tǒng)安裝程序是需要購(gòu) 買(mǎi)簽名,一年需要幾百至上千美元費(fèi)用,這對(duì)于僅作娛樂(lè)考慮的李寧來(lái)說(shuō),不太現(xiàn)實(shí),移動(dòng)開(kāi)發(fā)也就此擱置。到了2007年Google發(fā)布Android,這 在當(dāng)時(shí)也沒(méi)能引起他太多注意,直到2008年底,世界上第一部支持Android的手機(jī)G1推出,這才讓李寧感覺(jué)到Android的猛烈攻勢(shì),于是,他開(kāi) 始嘗試Android軟件開(kāi)發(fā),雖然程序也需要簽名,但比較自由,在配置文件上配置即可,不需要購(gòu)買(mǎi)。
關(guān)于智能手機(jī)操作系統(tǒng),李寧認(rèn)為目前是第二代智能操作系統(tǒng)時(shí)代,以塞班為首的第一代智能手機(jī)操作系統(tǒng),面臨著屏幕小影響軟件表現(xiàn)、系統(tǒng)本身過(guò)于臃腫 (Symbian的源代碼超過(guò)2000萬(wàn)行,相當(dāng)于Windows XP的源代碼量)、用戶(hù)體驗(yàn)不足等諸多弊端,現(xiàn)在新出的手機(jī)屏幕分辨率多在320*480之上,Android、iPhone和Windows Phone 7都支持大分辨率,還支持傳感器,如重力、光學(xué)傳感等。同時(shí)傳統(tǒng)的塞班代碼積累太多,2000多萬(wàn)的代碼量在修改和加入新功能上比較困難,不太適合開(kāi)發(fā)者 操作,而且在操作方式上并沒(méi)有帶來(lái)更好的用戶(hù)體驗(yàn)。如果塞班不行,要有一個(gè)操作系統(tǒng)來(lái)取代的話(huà),目前Android具有絕對(duì)優(yōu)勢(shì)。雖然Android存在 版本太多的問(wèn)題,但Google承諾,Android 3.0之后的版本將一年升級(jí)一次,雖然這樣做放緩了Android的升級(jí)速度,但卻給手機(jī)硬件廠商以及開(kāi)發(fā)者留有足夠的時(shí)間來(lái)適應(yīng)新的系統(tǒng),從而也在很大 程度上解決了Android版本眾多的問(wèn)題。據(jù)Google宣稱(chēng),將禁止第三方對(duì)Android 3.0及以上版進(jìn)行擴(kuò)展(如HTC Sense就是一種Android擴(kuò)展),這樣可以使Android更加統(tǒng)一,從而可大大提升用戶(hù)體驗(yàn)。
《Android/OPhone開(kāi)發(fā)完全講義》
《人人都玩開(kāi)心網(wǎng):Ext JS + Android + SSH整合開(kāi)發(fā)Web與移動(dòng)SNS》
李寧看到,由于Android的支持廠商眾多,從低端到高端機(jī)型都有,因此,他決定從Android入手,挖掘在移動(dòng)領(lǐng)域?qū)儆谒牡谝慌鷮毑亍S捎? 從事Android的時(shí)間比較早,也算是國(guó)內(nèi)第一批Android開(kāi)發(fā)人員,經(jīng)歷了Android的幾乎所有的版本的變遷,親身體會(huì)了Android由弱 變強(qiáng)的過(guò)程。為了紀(jì)念首次進(jìn)入移動(dòng)領(lǐng)域以及Android,在2009年下半年開(kāi)始,李寧用了四個(gè)月多的時(shí)間將他的經(jīng)驗(yàn)寫(xiě)成了一本書(shū) 《Android/OPhone開(kāi)發(fā)完全講義》,該書(shū)在上市近一個(gè)月以來(lái),銷(xiāo)售排名一直在計(jì)算機(jī)類(lèi)前10的位置,取得了不錯(cuò)的成績(jī)。李寧還告訴我們,這本 書(shū)的版權(quán)目前已賣(mài)給臺(tái)灣的一家出版社,估計(jì)二個(gè)月后將會(huì)在臺(tái)灣市場(chǎng)銷(xiāo)售。李寧還寫(xiě)了一本與Android相關(guān)的書(shū)籍:《人人都玩開(kāi)心網(wǎng):Ext JS + Android + SSH整合開(kāi)發(fā)Web與移動(dòng)SNS》。
結(jié)晶之作:“樂(lè)博Android客戶(hù)端”開(kāi)發(fā)、升級(jí)
“樂(lè)博Android客戶(hù)端0.9”軟件界面
“樂(lè)博Android客戶(hù)端0.9”軟件界面
“樂(lè)博Android客戶(hù)端1.0”軟件開(kāi)發(fā)中
在學(xué)習(xí)Android的過(guò)程中,寫(xiě)書(shū)可能只是一部分,李寧還開(kāi)發(fā)了一系列軟件,包括多功能日歷、樂(lè)博Android客戶(hù)端(用戶(hù)在Android手 機(jī)上管理微博)等。“樂(lè)博Android客戶(hù)端”這款軟件的開(kāi)發(fā),源于國(guó)內(nèi)外有很多微博網(wǎng)站,而很多人在不同的微博都有帳號(hào),這會(huì)在同步管理上帶來(lái)麻煩。 因此,樂(lè)博Android客戶(hù)端就是幫助用戶(hù)維護(hù)這些微博,并能實(shí)現(xiàn)同步發(fā)送。
2010年初李寧完成了第一個(gè)版本0.9版的開(kāi)發(fā),目前1.0版正在開(kāi)發(fā)中,1.0版將基于Android 2.1開(kāi)發(fā),并完善多種功能。比如將支持超過(guò)10種微博(包括新浪、搜狐、Follow5、Twitter等),除了具有微博客戶(hù)端的基本功能(發(fā)布、瀏 覽、評(píng)論、轉(zhuǎn)發(fā)微博)外,還支持同步多種微博、自動(dòng)翻譯(將微博內(nèi)容翻譯成其他語(yǔ)言)、圖像編輯(支持多種圖像效果)、輔助輸入(輸入表情字符、節(jié)日祝賀 等)、快速發(fā)布(通過(guò)手機(jī)桌面上的功能圖標(biāo)可以迅速調(diào)用輸入微博的界面)等功能。在未來(lái)的版本中還支持將指定的微博生成電子書(shū)、更高級(jí)的輔助輸入功能。
對(duì)于這款軟件,還要提及的是其圖片處理功能,因?yàn)橐粭l微博只允許發(fā)布一張圖片,而李寧通過(guò)對(duì)拍照效果進(jìn)行處理,對(duì)照片的后期處理,通過(guò)軟件將多張照片通過(guò) 橫豎合并在一張圖上等特殊效果處理,從而實(shí)現(xiàn)一條微博可以發(fā)布多張圖片的效果。相信這個(gè)功能會(huì)讓很多圍脖為此歡呼。
軟件開(kāi)發(fā)完成,李寧打算將其發(fā)布在中國(guó)移動(dòng)Mobile Market應(yīng)用商場(chǎng),之前也發(fā)布過(guò)但因移動(dòng)MM不支持聯(lián)網(wǎng)應(yīng)用而被駁回,所以希望到時(shí)可以通過(guò)審核并順利上架。
愛(ài)要理智:愛(ài)Android更要懂Android
我們關(guān)注李寧對(duì)Android投入的愛(ài)是否有所回報(bào),他告訴我們并未直接帶來(lái)收益,不過(guò)已經(jīng)從著作及參賽獎(jiǎng)項(xiàng)中獲得一定回報(bào)。對(duì)于移動(dòng)MM,他認(rèn)為 MM是目前國(guó)內(nèi)最大的手機(jī)軟件商店,但收費(fèi)軟件和免費(fèi)軟件的下載量差距很大,這可能是因?yàn)閲?guó)人都不習(xí)慣花錢(qián)買(mǎi)軟件所造成的,希望MM可以為開(kāi)發(fā)人員提供更 多的贏利機(jī)會(huì)。通過(guò)某些服務(wù)而不是賣(mài)軟件來(lái)贏利,例如,開(kāi)放通信接口、植入性廣告、專(zhuān)業(yè)廣告等。對(duì)于軟件,產(chǎn)品銷(xiāo)售是一方面,后期服務(wù)也很關(guān)鍵。以移動(dòng)的 角度看,可以進(jìn)行培訓(xùn),培養(yǎng)更多的Android人才,畢竟現(xiàn)在靠軟件賣(mài)錢(qián)的時(shí)代已經(jīng)快過(guò)去了(直接向用戶(hù)收費(fèi)也不符合互聯(lián)網(wǎng)的精神),免費(fèi)才是王道。而 通過(guò)開(kāi)發(fā)免費(fèi)軟件賺錢(qián)的人也不在少數(shù),比如Foxmail作者張小龍,當(dāng)Foxmail用戶(hù)達(dá)到幾千萬(wàn)時(shí),軟件也自然擁有巨大的市場(chǎng)價(jià)值,最終以2000 萬(wàn)賣(mài)出;再比如來(lái)電通的作者蘇志宏也是一個(gè)例子。
在這個(gè)全球熱戀Android的時(shí)代,李寧不只愛(ài)著Android,更懂得Android,這對(duì)于很多癡迷著Android的開(kāi)發(fā)者來(lái)說(shuō),尤為重 要。李寧認(rèn)為,學(xué)好Android有兩大法寶:Android源代碼(包括Java和C/C++的源代碼)和Linux.他把新入門(mén)的新手分為二種類(lèi)型, 一種是技術(shù)新手,一種是Android新手。
對(duì)于技術(shù)新手,李寧奉勸他們應(yīng)該先從Java學(xué)起,至少需要幾個(gè)月甚至半年的熟悉這種語(yǔ)言,這是不可缺少的基本功練習(xí)。對(duì)于現(xiàn)在有的人急于求成,自認(rèn)為Java不熟練但Android卻很精通,李寧用“拿著駕照但卻不會(huì)開(kāi)車(chē)的馬路殺手”來(lái)形容這部分人。
當(dāng)技術(shù)新手對(duì)Java有了一定掌握,并獨(dú)自編寫(xiě)大量的代碼,對(duì)于一般的技術(shù)領(lǐng)域能駕輕就熟時(shí),就可以開(kāi)始Android的學(xué)習(xí)了,這時(shí)候的技術(shù)新手 才能晉升為Android新手。而對(duì)于Android新手,一般一、二天就能夠?qū)W會(huì)使用Android編寫(xiě)程序,但要深入研究就需要些功夫。因?yàn)? Android是開(kāi)源的,所以首先要研究Android的源代碼,雖然關(guān)于Android的書(shū)在國(guó)內(nèi)已經(jīng)有幾十本了,但書(shū)籍只能引導(dǎo)入門(mén)卻不能將你帶到一 定高度,如果要深入研究就必須研究源代碼,通過(guò)源代碼才能真正了解Android的內(nèi)部構(gòu)造。
李寧認(rèn)為:“開(kāi)發(fā)是一件很痛苦的事,但也是一件很快樂(lè)的事。就像一杯咖啡,雖然喝著感覺(jué)很苦,但隨后而來(lái)的卻是咖啡的香甜。”當(dāng)然,這里所說(shuō)的痛苦 并非開(kāi)發(fā)本身,而是在開(kāi)發(fā)過(guò)程中遇到無(wú)法解決的問(wèn)題時(shí),如果時(shí)間要求再緊,會(huì)更加郁悶。李寧記得2年前剛接觸Android時(shí),雖然憑著多年的開(kāi)發(fā)經(jīng)驗(yàn), 應(yīng)付一般的技術(shù)不成問(wèn)題,但仍然還有很多Android技術(shù)問(wèn)題無(wú)法得到解決。那時(shí)國(guó)內(nèi)、外關(guān)于Android的技術(shù)論壇并不多,而且資源匱乏,除了 Android的官方文檔外,最大的資源就是Android的源代碼,而任何與Android相關(guān)的文檔(也包括官方文檔)永遠(yuǎn)只能是入門(mén)或API列表, 永遠(yuǎn)不能觸及實(shí)質(zhì)的東西。因此,獲得我所需要的東西的唯一途徑就是直接查閱Android的源代碼(幸好源代碼很容易從網(wǎng)上獲得)。所以,要學(xué)好 Android最好的方法,也是最快的捷徑,就是盡可能理解Android的源代碼。同時(shí),鑒于Android是基于Linux內(nèi)核的,所以學(xué)習(xí) Linux的相應(yīng)API以及各種操作也是十分必要的。這就好比如果想要學(xué)習(xí)Windows Mobile就多研究下Windows的道理是一樣的。
當(dāng)以上幾點(diǎn)都能夠達(dá)到基本上就是高手了。當(dāng)我們問(wèn)及李寧目前是處于哪個(gè)階段時(shí),他很謙虛地告訴我們,正處在源代碼階段,他收集了1.7G的源代碼,正在仔細(xì)研究中。
附:李寧簡(jiǎn)介
李寧,東北大學(xué)計(jì)算機(jī)專(zhuān)業(yè)碩士、CSDN博客專(zhuān)家、51CTO客座專(zhuān)家、中國(guó)移動(dòng)開(kāi)發(fā)者社區(qū)技術(shù)管理員、OPhone專(zhuān)家、ophonesdn版主 (Id:mobileguy)、eoeandroid版主(id:androidguy)。曾任東軟股份項(xiàng)目經(jīng)理,領(lǐng)導(dǎo)并參與開(kāi)發(fā)十幾個(gè)大中型項(xiàng)目。從 2005年進(jìn)入寫(xiě)作領(lǐng)域以來(lái),為程序員、電腦編程技巧與維護(hù)、電腦報(bào)、IT168、天極網(wǎng)等平面媒體和網(wǎng)絡(luò)媒體撰寫(xiě)了一百多篇原創(chuàng)技術(shù)和評(píng)論文章。并在個(gè) 人blog(http://nokiaguy.blogjava.net)上發(fā)表了大量的原創(chuàng)技術(shù)文章。
主要獎(jiǎng)項(xiàng):
1、2009年ophone原創(chuàng)技術(shù)征文大賽二等獎(jiǎng)(獎(jiǎng)品:dell mini 3i手機(jī)一部)
2、2010年獲得ophonesdn季度優(yōu)秀版主(獎(jiǎng)品:LG GW800手機(jī)一部)
3、《OPhone2.0之初體驗(yàn)》博客征文最佳人氣博文二等獎(jiǎng)
4、CSDN應(yīng)用達(dá)人(獎(jiǎng)品:微軟無(wú)線鼠標(biāo))
5、2007年獲得《電腦編程技巧與維護(hù)》優(yōu)秀作者(獎(jiǎng)品:U盤(pán))
6、首屆.Net平臺(tái)創(chuàng)新編程征文比賽三等獎(jiǎng)(2008年)(獎(jiǎng)品:MP5)
7、第二屆微軟.net平臺(tái)應(yīng)用程序開(kāi)發(fā)征文大賽三等獎(jiǎng)(2009年)(獎(jiǎng)品:MP5)
8、MSN機(jī)器人大賽最佳人氣獎(jiǎng)(獎(jiǎng)品:價(jià)值1000元的無(wú)線鼠標(biāo)和鍵盤(pán))
主要著作:
1、《Android/OPhone開(kāi)發(fā)完全講義》
2、《人人都玩開(kāi)心網(wǎng):ext js+android+ssh整合開(kāi)發(fā)web與移動(dòng)SNS》
《Android開(kāi)發(fā)完全講義(第2版)》(本書(shū)版權(quán)已輸出到臺(tái)灣)
http://product.dangdang.com/product.aspx?product_id=22741502
《Android高薪之路:Android程序員面試寶典 》http://book.360buy.com/10970314.html
新浪微博:http://t.sina.com.cn/androidguy 昵稱(chēng):李寧_Lining
posted on 2010-08-25 05:45 銀河使者 閱讀(5000) 評(píng)論(2) 編輯 收藏 所屬分類(lèi): java 、 原創(chuàng) 、 圖書(shū) 、Android/OPhone