新聞中心
【獨家專訪】隨著移動互聯(lián)網(wǎng)和智能終端設(shè)備的發(fā)展,移動應(yīng)用開發(fā)也隨之逐漸升溫。在專訪最牛iPhone開發(fā)團隊之后,為您帶來Android應(yīng)用開發(fā)入門方面的訪談,這次我們有幸請到Android開發(fā)的先驅(qū)者、《Android應(yīng)用開發(fā)揭秘》作者楊豐盛老師為大家講解Android入門、其他開發(fā)平臺轉(zhuǎn)向Android平臺以及Android開發(fā)中一些常見問題。

專家簡介:楊豐盛,國內(nèi)Android開發(fā)的先驅(qū)者,對Android開發(fā)優(yōu)勢深入研究,實戰(zhàn)經(jīng)驗極其豐富。精通Java、C、C++等語言,專注于移動通信軟件開發(fā),在機頂盒軟件開發(fā)和MTK平臺軟件開發(fā)方面有非常深厚的積累。曾經(jīng)參與過《三國群英傳說》、《大航海傳奇》、《養(yǎng)成計劃》等游戲的開發(fā),2007年榮獲中國軟件行業(yè)協(xié)會游戲軟件分會(CGIA)認證及國際游戲開發(fā)教育聯(lián)合會國際認證。著有《Android應(yīng)用開發(fā)揭秘》等熱銷技術(shù)書籍。
《Android應(yīng)用開發(fā)揭秘》
1、我們知道Android是使用Java語言進行應(yīng)用開發(fā)的,對于一個入門者,想要開發(fā)Android應(yīng)用,對Java知識有哪些要求?需要哪些知識儲備?
答:對于該問題確實有不少人咨詢過,始終有一點可以肯定,那就是Java基礎(chǔ)越好,學(xué)習(xí)Android應(yīng)用開發(fā)就越容易,越輕松!沒有Java基礎(chǔ)也可以同時學(xué)習(xí)Java和Android(這需要根據(jù)自身情況來看,我個人不推薦這種方式)。因為Android應(yīng)用程序使用Java語言來編寫,使用JDK中的Javac編譯器進行編譯,從而產(chǎn)生Java字節(jié)碼(.class文件)。然后,這些文件還要被轉(zhuǎn)化成Android的.dex文件,這部分轉(zhuǎn)換工作包括一些優(yōu)化和壓縮等技術(shù),由Dalvik虛擬機來完成,應(yīng)用開發(fā)人員只需要使用Android提供的API來完應(yīng)用程序編寫即可;Android 引用了很大一部分的Java API(很多都是編寫Java程序經(jīng)常使用的),但是也省略了一些,比如界面部分(Java.awt包)等,所以在學(xué)習(xí)Java基礎(chǔ)時就可以針對Android所引入的這部分來學(xué)習(xí),概括一下就是:Java標準語法規(guī)則、Java提供的一些工具內(nèi)庫。另外,Android的界面布局使用xml語法規(guī)則,所以有必要了解一下xml相關(guān)的知識。
2、已經(jīng)有一定經(jīng)驗的Java開發(fā)者,想要走進Android進行應(yīng)用或者游戲的開發(fā),需要重新學(xué)習(xí)哪些知識?
答:Android引入了大部分Java API及其規(guī)則,其實在Android平臺中很多應(yīng)用程序功能的實現(xiàn)是既可以使用標準的Java API,也可以使用Android API,比如網(wǎng)絡(luò)通信、I/O模塊等都能同時兼容,但是Android也增加了一部分專門使用于Android的API,比如圖形圖形,IPC機制等。那么對于有Java經(jīng)驗的開發(fā)者所要學(xué)習(xí)就主要在Android所新增這部分API及其工作原理。其實我在寫《Android應(yīng)用開發(fā)揭秘》時就考慮了這部分有一定Java經(jīng)驗的開發(fā)者,同時對應(yīng)用和游戲進行了分別講解,幾乎介紹了Android平臺所新增的API的使用,另外該書還特別適用于有一定J2ME經(jīng)驗的開發(fā)者。
3、之前進行.NET或者PHP開發(fā)的程序員轉(zhuǎn)向Android開發(fā)有什么快速的方法嗎?
答:這個問題就好比我已經(jīng)可以駕駛小橋車了,該如何去駕駛大客車或者大貨車呢?因此需要學(xué)習(xí)的就是大客車或者大貨車與小橋車之間的不同即可。Android是一個操作系統(tǒng),因此其應(yīng)用程序編寫的規(guī)則、工作原理和機制都需要符合其系統(tǒng)要求,所以這部分開發(fā)者應(yīng)該從該平臺不同的規(guī)則、構(gòu)架、原理和機制出發(fā),學(xué)習(xí)Android所提供的API。對于PHP轉(zhuǎn)Android的稍微麻煩一點兒,需要首先學(xué)習(xí)面向?qū)ο蟮木幊蹋▽W(xué)習(xí)Java)。
4、Android開發(fā)是針對移動設(shè)備的,與傳統(tǒng)的軟件開發(fā)相比有哪些不一樣的地方需要我們注意?
答:這個問題,我覺得用“靈活”兩個字來回答再好不過了,傳統(tǒng)的軟件開發(fā)受到諸多因素的影響,比如:設(shè)備、API限制等,而Android本身就是一個開放源碼的操作系統(tǒng),這樣就使得開發(fā)者可以很輕松的通過源碼來解決很多傳統(tǒng)軟件開發(fā)中遇到的非常痛苦的問題。說實話,我在當初接觸Android的時候,第一感覺就是這個系統(tǒng)太靈活了,是一個適合開發(fā)者根據(jù)自己的思路來創(chuàng)新的平臺,比如:對于某些功能的實現(xiàn),他并沒有限定開發(fā)者必須使用某種方式或者某個API來完成,而是讓開發(fā)者自由的發(fā)揮,這就是與傳統(tǒng)軟件開發(fā)最大的不同,但是需要注意,在開發(fā)過程中,我們要始終保持不違背Android系統(tǒng)的權(quán)限、機制和原則。
5、能不能為Android開發(fā)的初學(xué)者推薦一條學(xué)習(xí)路線?在這條線路中有哪些重點需要關(guān)注?
答:對于一個初學(xué)者首先應(yīng)該學(xué)習(xí)Java基礎(chǔ),熟悉Java這種編程語言,這部分比較重要將直接關(guān)系到學(xué)習(xí)Android的時間進度,當你能夠獨立寫出部分Java程序時,可以開始進入Android的學(xué)習(xí)了,進入Android的學(xué)習(xí)應(yīng)該首先掌握Android的系統(tǒng)結(jié)構(gòu),應(yīng)用程序框架,應(yīng)用程序必須的各個模塊,當然這部分內(nèi)容可以直接參考官方提供的開發(fā)入門文檔,當入門之后可以開始深入Android各個模塊進行學(xué)習(xí),了解各模塊的功能、機制,從而對其提供的API接口進行熟練且靈活的運用。對于Android的學(xué)習(xí)流程,大家可以參考最受初中級讀者歡迎的《Android應(yīng)用開發(fā)揭秘》,寫書時就征求了大量初級開發(fā)者的意見,因此比較適合初學(xué)者,該書目前也被臺灣佳魁資訊有限公司引入,即將出版繁體版,同時也感謝及廣大讀者的支持與關(guān)注。
#p#
6、這樣的路線走下來大概需要多長時間?從事應(yīng)用開發(fā)和游戲開發(fā)的學(xué)習(xí)路線和重點是否會有所不同?
答:時間的問題就需要根據(jù)個人的不同情況來衡量,一般對于沒有任何Java基礎(chǔ)的開發(fā)者來說至少需要2月以上來學(xué)習(xí)Java,因為這也將直接影響后期對Android的學(xué)習(xí),有了Java基礎(chǔ),對于Android的學(xué)習(xí)就簡單很多了,幾天時間都能完成Android入門。入門簡單,但是入門之后的深入需要一個長期的經(jīng)驗積累。對于應(yīng)用方向的開發(fā)者需要重點掌握Android的各個組件(包括各個組件的組合運用)、網(wǎng)絡(luò)通信、音頻和視頻這些模塊,對于游戲開發(fā)方向則應(yīng)該把重點放在圖形圖像方面包括2D和3D(Opengl ES)渲染。對于3D游戲的開發(fā)我們和華章培訓(xùn)網(wǎng)一起推出了《Android 3D游戲引擎實現(xiàn)》視頻教程,全面的介紹了使用Opengl ES來開發(fā)3D游戲。
7、Android的應(yīng)用程序本身與傳統(tǒng)Java程序有什么不同之處?搭配Eclipse和ADT,開發(fā)效率如何?
答:首先從運行環(huán)境層次來分析,Java程序在擁有Java虛擬機的情況下就能運行,而Android應(yīng)用程序不僅需要Dalvik虛擬機來解釋,而且需要很多系統(tǒng)組件及API的支持。另外每個Android應(yīng)用程序都是相對獨立的,不能在一個應(yīng)用程序中調(diào)用另一個應(yīng)用程序。因此這些都是傳統(tǒng)Java程序開發(fā)者需要注意的地方,Java編程的IDE和工具確實比較多,但是Google選擇了Eclipse并提供了基于Eclipse的插件ADT使得應(yīng)用程序的開發(fā)變得非常方便,相信大家都知道,開發(fā)應(yīng)用最困難的就是Debug了吧,在Android平臺除了Eclipse本身的調(diào)試工具之外,ADT還提供了眾多輔助調(diào)試的功能,比如:ddms,模擬器工具等。同時,如果我們的應(yīng)用程序需要使用NDK來開發(fā)原生程序,那么Eclipse也可以很方便的集成C\C++開發(fā)環(huán)境等,總的說來使用Eclipse和ADT來開發(fā)應(yīng)用程序是個非常完美的組合,當然不排除可以使用其他的工具來開發(fā)!
8、能不能從項目管理的角度為我們介紹一下,一個Android項目的具體開發(fā)流程,在移動軟件的項目開發(fā)中需要注意哪些問題?
答:這個問題比較大了,那么我就自己開發(fā)Android項目的流程來說說,首先Android目前的應(yīng)用程序雖然不像iPhone上那么多,但是其項目的同質(zhì)化越來越嚴重,因此在最初對項目的定義階段非常重要,將直接影響產(chǎn)品的生命周期,客戶(玩家)需要一個獨特的,新穎的、便于操作的產(chǎn)品,這都是我們在定義項目的過程中需要考慮的,在確定了項目就需要對項目進行規(guī)劃、執(zhí)行和跟蹤,該過程主要確定產(chǎn)品的開發(fā)周期、涉及技術(shù)人員,技術(shù)問題如何來避免和解決,在開發(fā)過程中葉需要定期的對項目進行測試,包括測試其視覺感、體驗感、兼容性等等,對發(fā)現(xiàn)的問題及時的進行處理。最后項目開發(fā)完成,測試通過之后我們的項目其實并沒有完,還有更加重要的工作要做,收集客戶反饋的信息(可以在開發(fā)中嵌入相關(guān)程序或其他),對項目進行更新及其完善。^ _^說了這么多,也不知道說清楚沒有!
9、目前除了Android SDK,還有NDK。NDK主要應(yīng)用在哪類項目的開發(fā)?是否值得我們關(guān)注和學(xué)習(xí)?
答,Android平臺的第三方應(yīng)用程序均是依靠基于Java的Dalvik特制虛擬機進行開發(fā)的。原生SDK(NDK)的可以讓開發(fā)者更加直接的接觸Android系統(tǒng)資源,并使用傳統(tǒng)的C或C++語言編寫程序,并在程序封包文件(.apks)中直接嵌入原生庫文件。NDK主要用于一些具有大量邏輯計算和高性能的圖像渲染的工作,比如我們要開發(fā)款大型的3D游戲,那么如果使用Android SDK通過Java來開發(fā),速度和性能上很難滿足我們的要求,這是就可以使用NDK通過C\C++來開發(fā)原生的程序來處理這些渲染,可以極大的提高我們游戲的性能。所以我們很有必要對NDK進行學(xué)習(xí)。
10、最后,有哪些比較好的Android社區(qū)向開發(fā)者推薦?
答:隨著Android的發(fā)布,一個又一個的Android技術(shù)社區(qū)誕生了,甚至以前一些大型的社區(qū)也有開放了Android板塊,因此開發(fā)者能夠找到學(xué)習(xí)資源的社區(qū)也就很多,除了非常優(yōu)秀的移動開發(fā)頻道之外,下面幾個是比較典型的可以推薦給大家。
◆Google Android主站:http://code.google.com/Android/
◆Android官方文檔:http://code.google.com/Android/documentation.html
◆Android中國開發(fā)者團隊: http://groups.google.com/group/Android-developers-zh
◆Androidev社區(qū):http://anddev.org/
◆EoeAndroid社區(qū):http://www.eoeAndroid.com/
最后,大家不要忘了,Android的開源就是給開發(fā)者們最好的禮物!最好的資料!
推薦Android開發(fā)詳解專題
【.com獨家特稿,非經(jīng)授權(quán)謝絕轉(zhuǎn)載,合作媒體轉(zhuǎn)載請注明原文作者及出處!】
文章標題:51CTO獨家專訪:Android開發(fā)入門問與答
URL地址:http://www.dlmjj.cn/article/dhisjhh.html


咨詢
建站咨詢
