本文章的移植不是移植到硬件平臺(tái)而是移植軟件項(xiàng)目。
很多J2ME項(xiàng)目如何移植到Android平臺(tái)呢?Java雖然號(hào)稱(chēng)是跨平臺(tái)應(yīng)用但是目前的移植問(wèn)題還是比較嚴(yán)重的,不知道未來(lái)Sun推出JavaFx或F3時(shí)會(huì)出現(xiàn)什么問(wèn)題,如何從J2ME移植到Android平臺(tái)上呢?下面我們來(lái)做簡(jiǎn)單的分析。
1.圖形顯示 J2ME平臺(tái)虛擬機(jī)為Sun Midlet和Android Dalvik在顯示方面有極大的不同,這給游戲帶來(lái)了極大的困難,很多過(guò)去使用的精靈類(lèi)等等在Android中不存在,同時(shí)Android中又出現(xiàn)了很多新的東西,在顯示方面會(huì)有很大的出入。
2.數(shù)據(jù)存儲(chǔ) 在J2ME中RMS這樣的系統(tǒng)可以方便的存儲(chǔ)些數(shù)據(jù),但Android并沒(méi)有它,但新增了一個(gè)更強(qiáng)大的SQLite,可以執(zhí)行SQL語(yǔ)言,但還是比較輕量級(jí),不支持存儲(chǔ)過(guò)程等。這一點(diǎn)相信很多公司都有自己的數(shù)據(jù)定義格式,比如更通用的XML,在Android中有DOM XML解析器。
3.文件網(wǎng)絡(luò) 在Android中沒(méi)有多大的變化和J2ME一樣,用戶(hù)可以直接調(diào)用J2ME中的I/O接口完成相應(yīng)的工作,這一點(diǎn)還比較滿(mǎn)意,未來(lái)的情況會(huì)是什么樣子的,目前還不好說(shuō),因?yàn)锳ndroid又新增了一個(gè)網(wǎng)絡(luò)傳輸類(lèi),可以看出正在開(kāi)發(fā)中,目前最新的M5 SDK中還不是很完善。
4.媒體影音 這一點(diǎn)Android比J2ME強(qiáng)大的多,支持的解碼器也多的多,兼容MPEG4, AAC, H.264, MP3, AMR, PNG, JPG, GIF基于OpenCORE引擎,這一點(diǎn)可以看出開(kāi)源的東西利用的很到位。
5.SDK模擬器 在SDK文檔上Android就不如JME易讀了,這一點(diǎn)倒是微軟MSDN寫(xiě)的很好,每個(gè)參數(shù)等等寫(xiě)的清晰易讀,同時(shí)Google的文檔和IE7顯示不兼容,用的不是CHM文件而是HTML也是為了Linux和Mac OS考慮。而模擬器上J2ME為Sun通用的WTK或各手機(jī)公司的,而Android則采用開(kāi)源Linux模擬器 Qemu,比較放心。
6.瀏覽器 在瀏覽器方面Android采用類(lèi)似iPhone Safari的webkit內(nèi)核,至于效率可以說(shuō)處理JS腳本大大超過(guò)IE和Firefox等東西,但內(nèi)存占用挺嚴(yán)重的,目前在移動(dòng)上主要競(jìng)爭(zhēng)對(duì)手為 Opera Mini。這一點(diǎn)J2ME無(wú)能為力了,畢竟JVM不能和系統(tǒng)比較。
說(shuō)到最后還有很多東西,但我們注意到了Android和Symbian一樣都犯了一個(gè)向下兼容的問(wèn)題,比如 Android移植問(wèn)題,從m3升級(jí)到m5 自己的SDK升級(jí)需要大幅改進(jìn),這一點(diǎn)Windows Mobile平臺(tái)上的Win32 API可以說(shuō)真正的跨桌面和移動(dòng)平臺(tái)。
轉(zhuǎn)載請(qǐng)注明出處。