Android平臺(tái)越來(lái)越火已經(jīng)成為事實(shí),,如何進(jìn)行學(xué)習(xí)呢?本文給大家進(jìn)行了詳細(xì)的介紹,。 1、我們知道Android是使用Java語(yǔ)言進(jìn)行應(yīng)用開(kāi)發(fā)的,,對(duì)于一個(gè)入門(mén)者,,想要開(kāi)發(fā)Android知識(shí)有哪些要求?需要哪些知識(shí)儲(chǔ)備? 答:對(duì)于該問(wèn)題確實(shí)有不少人咨詢過(guò),,始終有一點(diǎn)可以肯定,那就是Java基礎(chǔ)越好,,學(xué)習(xí)Android應(yīng)用開(kāi)發(fā)就越容易,,越輕松。沒(méi)有Java基礎(chǔ)也可以同時(shí)學(xué)習(xí)Java和Android(這需要根據(jù)自身情況來(lái)看,,我個(gè)人不推薦這種方式),。因?yàn)锳ndroid應(yīng)用程序使用Java語(yǔ)言來(lái)編寫(xiě),使用JDK中的Javac編譯器進(jìn)行編譯,,從而產(chǎn)生Java字節(jié)碼(.class文件),。然后,這些文件還要被轉(zhuǎn)化成Android的.dex文件,,這部分轉(zhuǎn)換工作包括一些優(yōu)化和壓縮等技術(shù),,由Dalvik虛擬機(jī)來(lái)完成,應(yīng)用開(kāi)發(fā)人員只需要使用Android提供的API來(lái)完應(yīng)用程序編寫(xiě)即可,,所以在學(xué)習(xí)Java基礎(chǔ)時(shí)就可以針對(duì)Android所引入的這部分來(lái)學(xué)習(xí),,概括一下就是:Java標(biāo)準(zhǔn)語(yǔ)法規(guī)則、Java提供的一些工具內(nèi)庫(kù),。另外,,Android的界面布局使用xml語(yǔ)法規(guī)則,所以有必要了解一下xml相關(guān)的知識(shí),。 2,、已經(jīng)有一定經(jīng)驗(yàn)的Java開(kāi)發(fā)者,想要走進(jìn)Android進(jìn)行應(yīng)用或者游戲的開(kāi)發(fā),,需要重新學(xué)習(xí)哪些知識(shí)? 答:Android引入了大部分Java API及其規(guī)則,,其實(shí)在Android平臺(tái)中很多應(yīng)用程序功能的實(shí)現(xiàn)是既可以使用標(biāo)準(zhǔn)的Java API,也可以使用Android API,,比如網(wǎng)絡(luò)通信,、I/O模塊等都能同時(shí)兼容,但是Android也增加了一部分專門(mén)使用于Android的API,,比如圖形圖形,IPC機(jī)制等,。那么對(duì)于有Java經(jīng)驗(yàn)的開(kāi)發(fā)者所要學(xué)習(xí)就主要在Android所新增這部分API及其工作原理,。其實(shí)我在寫(xiě)《Android應(yīng)用開(kāi)發(fā)揭秘》時(shí)就考慮了這部分有一定Java經(jīng)驗(yàn)的開(kāi)發(fā)者,同時(shí)對(duì)應(yīng)用和游戲進(jìn)行了分別講解,,幾乎介紹了Android平臺(tái)所新增的API的使用,,另外該書(shū)還特別適用于有一定J2ME經(jīng)驗(yàn)的開(kāi)發(fā)者。 3,、之前進(jìn)行.NET或者PHP開(kāi)發(fā)的程序員轉(zhuǎn)向Android開(kāi)發(fā)有什么快速的方法嗎? 答:這個(gè)問(wèn)題就好比我已經(jīng)可以駕駛小橋車了,,該如何去駕駛大客車或者大貨車呢?因此需要學(xué)習(xí)的就是大客車或者大貨車與小橋車。Android是一個(gè)操作系統(tǒng),因此其應(yīng)用程序編寫(xiě)的規(guī)則,、工作原理和機(jī)制都需要符合其系統(tǒng)要求,,所以這部分開(kāi)發(fā)者應(yīng)該從該平臺(tái)不同的規(guī)則、構(gòu)架,、原理和機(jī)制出發(fā),,學(xué)習(xí)Android所提供的API。對(duì)于PHP轉(zhuǎn)Android的稍微麻煩一點(diǎn)兒,,需要首先學(xué)習(xí)面向?qū)ο蟮木幊?學(xué)習(xí)Java),。 4、Android開(kāi)發(fā)是針對(duì)移動(dòng)設(shè)備的,,與傳統(tǒng)的軟件開(kāi)發(fā)相比有哪些不一樣的地方需要我們注意? 答:這個(gè)問(wèn)題,,我覺(jué)得用“靈活”兩個(gè)字來(lái)回答再好不過(guò)了,傳統(tǒng)的軟件開(kāi)發(fā)受到諸多因素的影響,,比如:設(shè)備,、API限制等,而Android本身就是一個(gè)開(kāi)放源碼的操作系統(tǒng),,這樣就使得開(kāi)發(fā)者可以很輕松的通過(guò)源碼來(lái)解決很多傳統(tǒng)軟件開(kāi)發(fā)中遇到的非常痛苦的問(wèn)題,。說(shuō)實(shí)話,我在當(dāng)初接觸Android的時(shí)候,,第一感覺(jué)就是這個(gè)系統(tǒng)太靈活了,,是一個(gè)適合開(kāi)發(fā)者根據(jù)自己的思路來(lái)創(chuàng)新的平臺(tái),比如:對(duì)于某些功能的實(shí)現(xiàn),,他并沒(méi)有限定開(kāi)發(fā)者必須使用某種方式或者某個(gè)API來(lái)完成,,而是讓開(kāi)發(fā)者自由的發(fā)揮,這就是與傳統(tǒng)軟件開(kāi)發(fā)最大的不同,,但是需要注意,,在開(kāi)發(fā)過(guò)程中,我們要始終保持不違背Android系統(tǒng)的權(quán)限,、機(jī)制和原則,。 5、能不能為Android開(kāi)發(fā)的初學(xué)者推薦一條學(xué)習(xí)路線?在這條線路中有哪些重點(diǎn)需要關(guān)注? 答:對(duì)于一個(gè)初學(xué)者首先應(yīng)該學(xué)習(xí)Java基礎(chǔ),,熟悉Java這種編程語(yǔ)言,,這部分比較重要將直接關(guān)系到學(xué)Android的時(shí)間進(jìn)度,當(dāng)你能夠獨(dú)立寫(xiě)出部分Java程序時(shí),,可以開(kāi)始進(jìn)入Android的學(xué)習(xí)了,,進(jìn)入Android的學(xué)習(xí)應(yīng)該首先掌握Android的系統(tǒng)結(jié)構(gòu),應(yīng)用程序框架,,應(yīng)用程序必須的各個(gè)模塊,,當(dāng)然這部分內(nèi)容可以直接參考官方提供的開(kāi)發(fā)入門(mén)文檔,,當(dāng)入門(mén)之后可以開(kāi)始深入Android各個(gè)模塊進(jìn)行學(xué)習(xí),了解各模塊的功能,、機(jī)制,,從而對(duì)其提供的API接口進(jìn)行熟練且靈活的運(yùn)用。 6,、這樣的路線走下來(lái)大概需要多長(zhǎng)時(shí)間?從事應(yīng)用開(kāi)發(fā)和游戲開(kāi)發(fā)的學(xué)習(xí)路線和重點(diǎn)是否會(huì)有所不同? 答:時(shí)間的問(wèn)題就需要根據(jù)個(gè)人的不同情況來(lái)衡量,,一般對(duì)于沒(méi)有任何Java基礎(chǔ)的開(kāi)發(fā)者來(lái)說(shuō)至少需要2月以上來(lái)學(xué)習(xí)Java,因?yàn)檫@也將直接影響后期對(duì)Android的學(xué)習(xí),,有了Java基礎(chǔ),,對(duì)于Android的學(xué)習(xí)就簡(jiǎn)單很多了,幾天時(shí)間都能完成Android入門(mén),。入門(mén)簡(jiǎn)單,,但是入門(mén)之后的深入需要一個(gè)長(zhǎng)期的經(jīng)驗(yàn)積累。對(duì)于應(yīng)用方向的開(kāi)發(fā)者需要重點(diǎn)掌握Android的各個(gè)組件(包括各個(gè)組件的組合運(yùn)用),、網(wǎng)絡(luò)通信,、音頻和視頻這些模塊,對(duì)于游戲開(kāi)發(fā)方向則應(yīng)該把重點(diǎn)放在圖形圖像方面包括2D和3D(Opengl ES)渲染,。 7,、Android的應(yīng)用,與ava程序有什么不同之處? 答:首先從運(yùn)行環(huán)境層次來(lái)分析,,Java程序在擁有Java虛擬機(jī)的情況下就能運(yùn)行,,而Android應(yīng)用程序不僅需要Dalvik虛擬機(jī)來(lái)解釋,而且需要很多系統(tǒng)組件及API的支持,。另外每個(gè)Android應(yīng)用程序都是相對(duì)獨(dú)立的,,不能在一個(gè)應(yīng)用程序中調(diào)用另一個(gè)應(yīng)用程序。因此這些都是傳統(tǒng)Java程序開(kāi)發(fā)者需要注意的地方,,Java編程的IDE和工具確實(shí)比較多,,但是Google選擇了Eclipse并提供了基于Eclipse的插件ADT使得應(yīng)用程序的開(kāi)發(fā)變得非常方便,相信大家都知道,,開(kāi)發(fā)應(yīng)用最困難的就是Debug了吧,,在Android平臺(tái)除了Eclipse本身的調(diào)試工具之外,ADT還提供了眾多輔助調(diào)試的功能,,比如:ddms,,模擬器工具等。同時(shí),,如果我們的應(yīng)用程序需要使用NDK來(lái)開(kāi)發(fā)原生程序,那么Eclipse也可以很方便的集成C\C++開(kāi)發(fā)環(huán)境等,,總的說(shuō)來(lái)使用Eclipse和ADT來(lái)開(kāi)發(fā)應(yīng)用程序是個(gè)非常完美的組合,,當(dāng)然不排除可以使用其他的工具來(lái)開(kāi)發(fā)! 8,、能不能從項(xiàng)目管理的角度為我們介紹一下,一個(gè)Android項(xiàng)目的具體開(kāi)發(fā)流程,,在移動(dòng)軟件的項(xiàng)目開(kāi)發(fā)中需要注意哪些問(wèn)題? 答:這個(gè)問(wèn)題比較大了,,那么我就自己開(kāi)發(fā)Android項(xiàng)目的流程來(lái)說(shuō)說(shuō),首先Android目前的應(yīng)用程序雖然不像iPhone上那么多,,但是其項(xiàng)目的同質(zhì)化越來(lái)越嚴(yán)重,,因此在最初對(duì)項(xiàng)目的定義階段非常重要,將直接影響產(chǎn)品的生命周期,,客戶需要一個(gè)獨(dú)特的,,新穎的、便于操作的產(chǎn)品,,這都是我們?cè)诳梢栽陂_(kāi)發(fā)中嵌入相關(guān)程序或其他,,對(duì)項(xiàng)目進(jìn)行更新及其完善 9、目前除了Android SDK,,還有NDK,。NDK主要應(yīng)用在哪類項(xiàng)目的開(kāi)發(fā)?是否值得我們關(guān)注和學(xué)習(xí)? 答,Android平臺(tái)的第三方應(yīng)用程序均是依靠基于Java的Dalvik特制虛擬機(jī)進(jìn)行開(kāi)發(fā)的,。原生SDK(NDK)的可以讓開(kāi)發(fā)者更加直接的接觸Android系統(tǒng)資源,,并使用傳統(tǒng)的C或C++語(yǔ)言編寫(xiě)程序,并在程序封包文件(.apks)中直接嵌入原生庫(kù)文件,。NDK主要用于一些具有大量邏輯計(jì)算和高性能的圖像渲染的工作,,比如我們要開(kāi)發(fā)款大型的3D游戲,那么如果使用Android SDK通過(guò)Java來(lái)開(kāi)發(fā),,速度和性能上很難滿足我們的要求,,這是就可以使用NDK通過(guò)C\C++來(lái)開(kāi)發(fā)原生的程序來(lái)處理這些渲染,可以極大的提高我們游戲的性能,。所以我們很有必要對(duì)NDK進(jìn)行學(xué)習(xí),。 |
|
來(lái)自: 昵稱38644644 > 《電腦知識(shí)》