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