日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
如何將J2MEAPI移植到OPhone

對于Android的紅火,以及Windows Mobile的跟進,移動OPhone看起來還像是別人的技術。不過如何將J2ME API移植到OPhone,本文就談論這些。

創(chuàng)新互聯(lián)公司是一家專業(yè)從事成都網站設計、成都做網站、網頁設計的品牌網絡公司。如今是成都地區(qū)具影響力的網站設計公司,作為專業(yè)的成都網站建設公司,創(chuàng)新互聯(lián)公司依托強大的技術實力、以及多年的網站運營經驗,為您提供專業(yè)的成都網站建設、營銷型網站建設及網站設計開發(fā)服務!

中國擁有世界最龐大的電信客戶群,僅移動用戶就達4億,3G在中國有最大的市場做后盾,無論現(xiàn)在的市場發(fā)展如何的困難,3G費用的降低是大勢所趨,不久的將來,必然形成巨大的3G浪潮,3G手機會如雨后春筍一般,充滿祖國大地,如今各大移動通信運營商和移動終端開發(fā)商都看到廣大的前景,在為3G做最后的準備。最近作為中國移動業(yè)務最大的運營商中國移動公司推出了自己的開發(fā)平臺:OPhone OS系統(tǒng)。OPhone OS采用linux2.6內核,兼容Android應用。

OPhone是中國移動在這次3G浪潮來臨前打造的主力航空母艦,與中移動無線業(yè)務平臺的對接,OPhone將承載大量3G業(yè)務應用。大量的軟件開發(fā)企業(yè)將會把新的陣地放到移動平臺上來,軟件如:手機電視、炒股、網游,企業(yè)應用MIS,移動辦公,都將會是移動設備發(fā)展的熱點,這樣也就需要大量的開發(fā)人員,由于手機開發(fā)人員稀少,收入比一般pc開發(fā)人員會更高。由于現(xiàn)在中國移動的大力推廣,如果企業(yè)和創(chuàng)業(yè)者依托mmarket也會有不錯的前景,OPhone作為中國移動大力推廣的戰(zhàn)略平臺潛力巨大。

Android移植除了硬件外最重要的是Java平臺之間的移植,目前市面上Java VM主要使用的是Sun公司的Java Micro Edition。而Google Android平臺采用的是自己開發(fā)的Dalvik。如何從過去J2ME移植到谷歌手機平臺呢?

雖然是不同的開發(fā)環(huán)境,但是所要實現(xiàn)的功能都是相近的,因此從功能的角度可以很好的理解OPHONE OS平臺和J2ME平臺之間的聯(lián)系和區(qū)別??偨Y一下,可以發(fā)現(xiàn)從以下四個方面可以很好的理解兩個平臺之間移植。

如果代碼框架寫得好,邏輯部分基本不需要怎么變化,只需要把和平臺相關的接口轉換一下就可以了。

1)用戶界面

這一點是J2ME移植到Dalvik上最麻煩的地方,Android的圖形類和Sun Jave ME有了很大的不同,同時m3到m5 SDK上也有更大改變的趨勢,導致了移植時出現(xiàn)很多需要自己去實現(xiàn)相關類,使最終程序的運行效率可能會受影響,真機沒有出現(xiàn)的情況下通過開發(fā)板可以適當?shù)臏y試出性能損失。這一點需要花費很長時間去學習,也是未來我們著重需要講解的。

2)數(shù)據(jù)存儲

這方面就顯示出Android 平臺比Sun Java強大的地方了,Android平臺附帶了一個SQLite數(shù)據(jù)庫,和Sun J2ME中的Record Management System (RMS)相比在功能上有了很大的提升,同時在性能上也會有不俗的表現(xiàn),在過去開發(fā)J2ME軟件時一直都采取的是如果數(shù)據(jù)比較簡單使用自定義的二進制格式或XML代替。

3)網絡數(shù)據(jù)

這部分Android平臺的做法是import Sun中的I/O讀寫庫InputStream這樣的類,同時網絡相關的仍然采用Sun的URLConnection類進行操作,基本上沒有變化,移植時注意下設備的棧空間簡單的調整下就可以了。

4)媒體播放

這部分在Android系統(tǒng)上就有了大幅的改變,官方推薦使用MediaPlayer播放類,該類支持mp3、mid、wav、mp4等常規(guī)媒體格式的播放,相比J2ME中提供的就靈活強大的多。

下面我們一步一步實現(xiàn)J2ME API在OPHONE OS上的移植。

1、 入口程序MIDlet

學過J2ME的開發(fā)人員都知道J2ME有一個主體類MIDlet類,它是程序管理接口,調用startApp(),進入應用程序。

同樣,在OPHONE OS平臺中同樣有一個主體類Activity,調用onCreate(savedInstanceState)進入某個交互界面。

下面我們將通過繼承Activity模擬實現(xiàn)J2ME中的MIDlet類和方法。

 
 
 
  1. publicabstractclassMIDletextendsActivity {
  2. publicvoidonCreate(Bundle savedInstanceState) {
  3. super.onCreate(savedInstanceState);
  4. startApp();
  5. }
  6. publicabstractvoiddestroyApp(booleanunconditional);
  7. publicString getAppProperty(String key) {
  8. returnnull;
  9. }
  10. publicabstractvoidstartApp();
  11. publicvoidnotifyDestroyed() {
  12. }
  13. publicvoidnotifyPaused() {
  14. }
  15. publicvoidpauseApp() {
  16. }
  17. publicvoidplatformRequest(String URL) {
  18. }
  19. publicvoidresumeRequest() {
  20. }
  21. }

2、Canvas

同樣在J2ME中畫板Canvas類與OPhone OS中的View類相似。

 
 
 
  1. publicabstractclassCanvas extends Displayable {
  2. publicCanvas(MIDlet context) {
  3. super(context);
  4. }
  5. Graphics g =newGraphics();
  6. publicvoidonDraw(android.graphics.Canvas canvas) {
  7. g.bind(canvas);
  8. paint(g);
  9. }
  10. intgetGameAction(intkeyCode) {
  11. return0;
  12. }
  13. intgetKeyCode(intgameAction) {
  14. return0;
  15. }
  16. String getKeyName(intkeyCode) {
  17. return"key";
  18. }
  19. boolean hasPointerEvents() {
  20. returntrue;
  21. }
  22. boolean hasPointerMotionEvents() {
  23. returntrue;
  24. }
  25. boolean hasRepeatEvents() {
  26. returntrue;
  27. }
  28. protectedvoidhideNotify() {
  29. }
  30. boolean isDoubleBuffered() {
  31. returntrue;
  32. }
  33. protectedvoidkeyPressed(intkeyCode) {
  34. }
  35. protectedvoidkeyReleased(intkeyCode) {
  36. }
  37. protectedvoidkeyRepeated(intkeyCode) {
  38. }
  39. protectedabstractvoidpaint(Graphics g);
  40. protectedvoidpointerDragged(intx,inty) {
  41. }
  42. protectedvoidpointerPressed(intx,inty) {
  43. }
  44. protectedvoidpointerReleased(intx,inty) {
  45. }
  46. voidrepaint() {
  47. }
  48. voidrepaint(intx,inty,intwidth,intheight) {
  49. }
  50. voidserviceRepaints() {
  51. }
  52. voidsetFullScreenMode(boolean mode) {
  53. }
  54. protectedvoidshowNotify() {
  55. }
  56. protectedvoidsizeChanged(intw,inth) {
  57. }
  58. }

3、Graphics

J2ME 中的Graphics類和OPhone OS中的paint類相似。在移植中,要用OPhone OS類庫實現(xiàn)J2ME中的Graphics類,我們在實現(xiàn)的過程中可以對Graphics對象進行修飾,通過整合OPHONE OS 中Canvas并調類庫中的Paint類和Color類的方法來實現(xiàn)。比如:

 
 
 
  1. Graphics
  2. public class Graphics {
  3. public final static int VCENTER = 0;
  4. public final static int TOP = 1;
  5. public final static int SOLID = 2;
  6. public final static int RIGHT = 3;
  7. public final static int LEFT = 4;
  8. public final static int HCENTER = 5;
  9. public final static int DOTTED = 6;
  10. public final static int BOTTOM = 7;
  11. public final static int BASELINE = 8;
  12. Canvas dist;
  13. private final Paint paint = new Paint();
  14. public void bind(Canvas canvas) {
  15. dist = canvas;
  16. }
  17. public void setColor(int eraseColour) {
  18. }
  19. public void drawImage(Image img, int x, int y, int anchor) {
  20. dist.drawBitmap(img.getTp(), x, y, paint);
  21. }
  22. }}

上面是我們重新定義的Graphics類,在其方法的實現(xiàn)上,我們調用了OPHONE OS的一些具體實現(xiàn)方法,從而用OPhone OS類庫實現(xiàn)了J2ME的框架,做到了兩個平臺之間很好的移植。

從上面幾個例子可以看出兩個平臺的框架具有很多相似性,這就為兩個平臺之間的移植創(chuàng)造了條件。同時我們也會看到,兩個平臺之間存在一定的差異性,一些在 J2ME中的類和方法無法通過直接繼承或者調用OPhone OS來實現(xiàn),這時候就需要移植人員,自己來實現(xiàn)一些相關的類,這也是移植過程中需要我們去努力克服的困難。


文章標題:如何將J2MEAPI移植到OPhone
當前URL:http://m.5511xx.com/article/djijjgd.html