愛Android更要懂Android

愛Android更要懂Android——李寧解析學好Android兩大法寶

[背景資料]最近Android比較火,無論是摩托羅拉搭載Android 2.2準備鹹魚翻身,還是Android Market年底將在臺灣開市……這些消息足以讓人們爲之振奮。但當人們看到Android的外表光鮮之時,更要注意到其潛在內涵,尤其對於廣大開發者,一味盲目地崇拜並扎入其中並不實爲理智之舉。本期,我們爲您邀請到一位與代碼打了15年交道的李寧,以其親身經歷和開發經驗來爲廣大開發者提出鑑言和忠告。

熱戀還在Android:寫心得、出書投入十二分精神

提到移動應用開發,早在2003年李寧就嘗試過使用Symbian系統開發軟件,但當他開發完成準備安裝在手機上才發現,塞班系統安裝程序是需要購買簽名,一年需要幾百至上千美元費用,這對於僅作娛樂考慮的李寧來說,不太現實,移動開發也就此擱置。到了2007年Google發佈Android,這在當時也沒能引起他太多注意,直到2008年底,世界上第一部支持Android的手機G1推出,這才讓李寧感覺到Android的猛烈攻勢,於是,他開始嘗試Android軟件開發,雖然程序也需要簽名,但比較自由,在配置文件上配置即可,不需要購買。

關於智能手機操作系統,李寧認爲目前是第二代智能操作系統時代,以塞班爲首的第一代智能手機操作系統,面臨着屏幕小影響軟件表現、系統本身過於臃腫(Symbian的源代碼超過2000萬行,相當於Windows XP的源代碼量)、用戶體驗不足等諸多弊端,現在新出的手機屏幕分辨率多在320*480之上,Android、iPhone和Windows Phone 7都支持大分辨率,還支持傳感器,如重力、光學傳感等。同時傳統的塞班代碼積累太多,2000多萬的代碼量在修改和加入新功能上比較困難,不太適合開發者操作,而且在操作方式上並沒有帶來更好的用戶體驗。如果塞班不行,要有一個操作系統來取代的話,目前Android具有絕對優勢。雖然Android存在版本太多的問題,但Google承諾,Android 3.0之後的版本將一年升級一次,雖然這樣做放緩了Android的升級速度,但卻給手機硬件廠商以及開發者留有足夠的時間來適應新的系統,從而也在很大程度上解決了Android版本衆多的問題。據Google宣稱,將禁止第三方對Android 3.0及以上版進行擴展(如HTC Sense就是一種Android擴展),這樣可以使Android更加統一,從而可大大提升用戶體驗。

李寧看到,由於Android的支持廠商衆多,從低端到高端機型都有,因此,他決定從Android入手,挖掘在移動領域屬於他的第一批寶藏。由於從事Android的時間比較早,也算是國內第一批Android開發人員,經歷了Android的幾乎所有的版本的變遷,親身體會了Android由弱變強的過程。爲了紀念首次進入移動領域以及Android,在2009年下半年開始,李寧用了四個月多的時間將他的經驗寫成了一本書《Android/OPhone開發完全講義》,該書在上市近一個月以來,銷售排名一直在計算機類前10的位置,取得了不錯的成績。李寧還告訴我們,這本書的版權目前已賣給臺灣的一家出版社,估計二個月後將會在臺灣市場銷售。李寧還寫了一本與Android相關的書籍:《人人都玩開心網:Ext JS + Android + SSH整合開發Web與移動SNS》。

《Android/OPhone開發完全講義》 《人人都玩開心網:Ext JS + Android + SSH整合開發Web與移動SNS》

在學習Android的過程中,寫書可能只是一部分,李寧還開發了一系列軟件,包括多功能日曆、樂博Android客戶端(用戶在Android手機上管理微博)等。“樂博Android客戶端”這款軟件的開發,源於國內外有很多微博網站,而很多人在不同的微博都有帳號,這會在同步管理上帶來麻煩。因此,樂博Android客戶端就是幫助用戶維護這些微博,並能實現同步發送。

“樂博Android客戶端 0.9”軟件界面 “樂博Android客戶端 0.9”軟件界面 “樂博Android客戶端 1.0”軟件開發中

2010年初李寧完成了第一個版本0.9版的開發,目前1.0版正在開發中,1.0版將基於Android 2.1開發,並完善多種功能。比如將支持超過10種微博(包括新浪、搜狐、Follow5、Twitter等),除了具有微博客戶端的基本功能(發佈、瀏覽、評論、轉發微博)外,還支持同步多種微博、自動翻譯(將微博內容翻譯成其他語言)、圖像編輯(支持多種圖像效果)、輔助輸入(輸入表情字符、節日祝賀等)、快速發佈(通過手機桌面上的功能圖標可以迅速調用輸入微博的界面)等功能。在未來的版本中還支持將指定的微博生成電子書、更高級的輔助輸入功能。

對於這款軟件,還要提及的是其圖片處理功能,因爲一條微博只允許發佈一張圖片,而李寧通過對拍照效果進行處理,對照片的後期處理,通過軟件將多張照片通過橫豎合併在一張圖上等特殊效果處理,從而實現一條微博可以發佈多張圖片的效果。相信這個功能會讓很多圍脖爲此歡呼。

軟件開發完成,李寧打算將其發佈在中國移動Mobile Market應用商場,之前也發佈過但因移動MM不支持聯網應用而被駁回,所以希望到時可以通過審覈並順利上架。

愛要理智:愛Android更要懂Android

我們關注李寧對Android投入的愛是否有所回報,他告訴我們並未直接帶來收益,不過已經從著作及參賽獎項中獲得一定回報。對於移動MM,他認爲MM是目前國內最大的手機軟件商店,但收費軟件和免費軟件的下載量差距很大,這可能是因爲國人都不習慣花錢買軟件所造成的,希望MM可以爲開發人員提供更多的贏利機會。通過某些服務而不是賣軟件來贏利,例如,開放通信接口、植入性廣告、專業廣告等。對於軟件,產品銷售是一方面,後期服務也很關鍵。以移動的角度看,可以進行培訓,培養更多的Android人才,畢竟現在靠軟件賣錢的時代已經快過去了(直接向用戶收費也不符合互聯網的精神),免費纔是王道。而通過開發免費軟件賺錢的人也不在少數,比如Foxmail作者張小龍,當Foxmail用戶達到幾千萬時,軟件也自然擁有巨大的市場價值,最終以2000萬賣出;再比如來電通的作者蘇志宏也是一個例子。

在這個全球熱戀Android的時代,李寧不只愛着Android,更懂得Android,這對於很多癡迷着Android的開發者來說,尤爲重要。李寧認爲,學好Android有兩大法寶:Android源代碼(包括Java和C/C++的源代碼)和Linux。他把新入門的新手分爲二種類型,一種是技術新手,一種是Android新手。

對於技術新手,李寧奉勸他們應該先從Java學起,至少需要幾個月甚至半年的熟悉這種語言,這是不可缺少的基本功練習。對於現在有的人急於求成,自認爲Java不熟練但Android卻很精通,李寧用“拿着駕照但卻不會開車的馬路殺手”來形容這部分人。

當技術新手對Java有了一定掌握,並獨自編寫大量的代碼,對於一般的技術領域能駕輕就熟時,就可以開始Android的學習了,這時候的技術新手才能晉升爲Android新手。而對於Android新手,一般一、二天就能夠學會使用Android編寫程序,但要深入研究就需要些功夫。因爲Android是開源的,所以首先要研究Android的源代碼,雖然關於Android的書在國內已經有幾十本了,但書籍只能引導入門卻不能將你帶到一定高度,如果要深入研究就必須研究源代碼,通過源代碼才能真正瞭解Android的內部構造。

李寧認爲:“開發是一件很痛苦的事,但也是一件很快樂的事。就像一杯咖啡,雖然喝着感覺很苦,但隨後而來的卻是咖啡的香甜。”當然,這裏所說的痛苦並非開發本身,而是在開發過程中遇到無法解決的問題時,如果時間要求再緊,會更加鬱悶。李寧記得2年前剛接觸Android時,雖然憑着多年的開發經驗,應付一般的技術不成問題,但仍然還有很多Android技術問題無法得到解決。那時國內、外關於Android的技術論壇並不多,而且資源匱乏,除了Android的官方文檔外,最大的資源就是Android的源代碼,而任何與Android相關的文檔(也包括官方文檔)永遠只能是入門或API列表,永遠不能觸及實質的東西。因此,獲得我所需要的東西的唯一途徑就是直接查閱Android的源代碼(幸好源代碼很容易從網上獲得)。所以,要學好Android最好的方法,也是最快的捷徑,就是儘可能理解Android的源代碼。同時,鑑於Android是基於Linux內核的,所以學習Linux的相應API以及各種操作也是十分必要的。這就好比如果想要學習Windows Mobile就多研究下Windows的道理是一樣的。

當以上幾點都能夠達到基本上就是高手了。當我們問及李寧目前是處於哪個階段時,他很謙虛地告訴我們,正處在源代碼階段,他收集了1.7G的源代碼,正在仔細研究中。


發佈了47 篇原創文章 · 獲贊 25 · 訪問量 42萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章