2010-03-17 27 views
4

我正在考慮在我的大學學習手機軟件開發課程。該課程使用J2ME和模擬器。我對手機軟件開發很感興趣,但我感覺J2ME與iPhone和Android等新平臺相比有點陳舊和有限。我最喜歡Android,因爲我不喜歡iPhone的封閉性。J2ME的知識如何推廣到其他移動平臺?

因此,如果我選擇課程,獲得技能轉移到Android平臺的能力如何?

我有一個相關的問題。我對Java(以及其他各種編程語言)非常滿意,但我沒有使用過J2ME。是否有任何事情使得編程特別痛苦? (無論如何,Java並不是那麼愉快)

回答

6

從對Java的舒適到適應J2ME應該是一個相當簡單的過渡。最大的障礙可能是設置手機模擬器或構建腳本,以及學習如何在手機上加載和運行構建。但是,這些都是我相信你會在課堂的第一週內討論的。就桌面Java中包含的東西而言,移動API(像幾乎任何Java 1.5+功能,某些UI軟件包等等)和少數J2ME特定的API都會被忽略用來做屏幕上的繪畫或按鍵響應等操作,但它們都非常類似於java,並且在Javadoc中有很好的記錄,因此它們不是很難學習......基本上它可能是相比之下,Java的精簡版本取出了對移動應用程序不那麼有用的功能。

J2ME將是一個很好的介紹手機發展在我看來,哪怕是多一點「陳舊」爲平臺,如果他們不提供你最感興趣的平臺類,它我們將向您介紹許多您需要擔心的類型問題,例如小型外觀/屏幕尺寸,內存和性能問題,使應用程序可以跨多個具有不同功能的手機模型工作等。

從J2ME走向本地(非J2ME)在做了將近一年的J2ME開發之後,黑莓開發對我來說不是一個巨大的飛躍 - 主要是指學習不同的構建工具以及如何在手機上加載黑莓應用程序,使用不同的模擬器,以及U的一些不同的黑莓專用軟件包我的東西 - 取決於你能找到的教程有多好,這可能是一件輕而易舉的事,或者是「XYZ如何翻譯到這個新平臺上」。

Android可能會有類似的跳躍程度 - 你可能會發現在J2ME,Blackberry和Android之間有相當多的代碼可以重用,因爲所有三個平臺都可以讓你編寫基於Java的代碼(在我的工作中,項目的黑莓和Android版本通過設置相關項目實際上共享了一堆非ui相關的代碼)......我認爲從編碼的角度來看,所有三個平臺之間最大的區別之一是它們有不同的庫爲了做UI ......我的意思是,它們基本上都會有繪製方法和其他東西,但是每個平臺都有不同的UI和其他本地包,你必須使用它們,它們在容易和不容易得到的地方有一些變化例如:比J2ME更容易在黑莓上繪製漸變),文件系統訪問在平臺之間有點不同,只要你需要什麼API使用等

就J2ME而言,痛苦的事情......我會說你無法通過設備模擬器進行調試的問題(例如:打電話中斷你的應用程序,音頻不能正常播放,等等),受保護的API(如果您使用的是像ATT這樣的提供程序,則需要這樣做纔會導致您需要在您的構建中籤名),並且試圖處理具有微小分辨率和/或處理器速度慢的屏幕是最困難的...沒有那麼痛苦,我認爲你會因爲參加移動開發課而討厭自己,其中一些問題可能超出了你班級的範圍。

所有的一切,我會說學習任何移動平臺將讓你更接近了很多學習是不作爲一門課程提供了某些特定的平臺你的預期目標,而且有很多的事情你會學到在將推廣的過程:)

PS ...如果最終,你想學習Android,並且必須從一個不同的手機語言開始,我認爲學習J2ME或黑莓是最接近的,匹配平臺,因爲它們都是基於Java的,並且在使用什麼工具方面有點重疊(例如,您可能會將Eclipse用作所有三種IDE),而Windows Mobile,BREW(基於C++)或iPhone(目標C)。

PPS ...抱歉編輯再次添加此...但我看了一下我們公司的內部文檔(針對新開發人員)關於獲取android構建環境以查看它是多麼的瘋狂(它根本就不瘋狂),其實它和我爲了設置黑莓環境所做的工作非常相似,除了要安裝不同的插件和SDK。我想你會發現這兩個平臺中的任何一個都只是你在J2ME開發課程中學習的一小部分。從本質上講,要在Eclipse中編寫android代碼,您必須爲Android添加一個插件:在Eclipse中,在幫助菜單下添加新軟件,並添加一個下載網站,地址爲https://dl-ssl.google.com/android/eclipse/),並且在設置完成後,然後將Eclipse中的默認JRE設置爲適用於Android的JRE中的一個,而不是JDK中的JRE(注意:您可能必須安裝SDK工具,才能獲得所需的正確JRE(google for「android sdk tools」)) 。該插件將添加一些您需要的Android專用菜單選項,例如「轉換爲Android項目」......您甚至可以通過J2ME課程的一部分了解足夠的知識,以嘗試獲得設置在Android開發環境中的嘗試你自己:)

+0

我也傾向於在android中突出顯示線程模型問題。由於J2ME只使用基本線程,因此Dimatura需要自行學習Android活動,提供者和意圖。 – 2010-03-18 16:18:57

+0

我想添加一個關於Android網站上一些文檔鏈接的註釋:http://developer.android.com/guide/他們介紹的絕對有一些新的範例和詞彙術語,顯然在你之前有一些學習曲線會爲Android做複雜的應用程序......但是關於如何設置自己的構建環境並獲得在模擬器上運行的hello-world應用程序的文檔已經足夠透徹,而不是那麼難以做到的事情一個自學項目。 – 2010-03-26 18:32:30

5

已經有一個很好的答案,但我想增加我的2美分,並會盡量不要太多。 :)順便說一句,我的經驗是在手機遊戲編程中,中介層面。

因此,如果我選擇課程,獲得的技能轉移到Android平臺的能力如何?

如果您已經瞭解Java語法,那麼學習J2me將全面瞭解如何在嵌入式環境中編寫代碼:如何編寫較小的代碼,與桌面相比性能下降,並且幾乎沒有API暴露給您(很少,j2me是一個非常小的API,是的,已經過時了)。 J2me和Android只有少數幾個通用的API,所以在移植到Android時你會有一個陡峭的學習曲線。 J2me可以成爲一個基地,但它並沒有太多的肉。使用j2me,您至少可以獲得嵌入式編程的基本原理:應用程序生命週期,運行通過模擬環境,構建腳本,java預處理器(bleh),工具代碼優化,工具代碼混淆,提高可移植性的技巧,部署,新發誓的ethimology(是的,它會消失)。

你不會在j2me環境中學習儘可能多的優化/性能分析/調試,因爲它不適合它(你會學到更多科學的「假設 - 試驗 - 錯誤」類型的方法,然後設計出「測量 - 計算 - 應用「)。相反,Android env的開發友好性,所有內容都是在Eclipse中完成的。

商業智慧,J2me正在慢慢消亡,Android是一個很好的開始,所以後者更有價值。此外,趨勢是與本土環境,而不是解釋的...和Android允許它,而不是J2me。

我有一個相關的問題。我對Java(以及其他各種編程語言)非常滿意,但我沒有使用過J2ME。是否有任何事情使得編程特別痛苦?

J2me很簡單。有什麼問題是它的可移植性。少數製造商有擴展性,少數運營商擁有專有API,設備具有不同的JSR(API /庫),設備具有不同的Java虛擬機,因此在設備上最終會出現不同的行爲。除此之外,調試的低效率,有時讓你的應用程序在設備上正常工作是非常痛苦的。這是最大的問題。否則,J2me是一個真正精簡版的J2SE(版本3,如果我能夠正確記得,那麼版本更少?),所以它與標準Java非常相似。

我認爲j2me對於學術界來說是相當不錯的,但如果你有興趣超越,你應該檢查一下Android。

Ciao!