亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

簡介使用Java編寫Palm OS程序的解決方案

2019-11-18 11:51:03
字體:
來源:轉載
供稿:網友

  簡介使用java編寫Palm OS程序的解決方案
  
    現在,使用Java語言為 Palm OS編寫程序的領域還沒有完全統一,并且也有許多程度上的差異,目前,市面上有好幾種不同的可用的應用程序接口,每種應用程序接口都給出了一個到當前的Palm OS應用程序不同程度的訪問權限。也許這其中大家最熟悉的是Sun微系統出品的產品;但是能夠為Palm OS寫程序的絕不只有這一種產品。本文這一部分并不是介紹使用Java編寫Palm程序的教程--因為每種我們將要討論的解決方案都有自己的要求和值得注重的地方--而是一篇向開發者概括介紹開發工具的的文章,我們將縱觀這一領域,找出在使用 Java語言開發 Palm OS應用程序時,你應該使用什么工具以及你又能夠得到什么。
  一、Sun的解決方案: KVM、 Configuration和 PRofile
    KVM是 Kilobyte Virtual Machine (千字節虛擬機),那么命名是因為它的內存大小是以千字節來量度,而不是像 Java虛擬機那樣需要兆字節。 因為有這么苛刻的內存要求, KVM的功能只是完整 JVM的的子集。 你可以從 Javasoft站點上找到全部的信息,但是值得注重的是它遺漏了映射(reflection)、 JNI和自定義類裝載器以及一個可變的安全機制。
    Sun已經制訂一個計劃,提供了 configuration和 profile來滿足設備程序設計的需要。 configuration是一個應用程序接口,是設計來提供一個基礎,用于一類廣泛的一般的設備,所有的這些設備都有相似的特性,比如說有限的內存,偶然性強的網絡連接性,低電力消耗,可運行在電池上,所以,J2Me被設計得既一般又抽象。 現在 Java 2 Micro Edition(J2ME)可用的configuration有 CLDC(Connected,Limited Device Configuration)和 CDC(Connected Device Configuration)兩種,后者用于比 Palm功能更強大的設備,這就超出了我們討論的范圍;而前者,代表有限連接設備配置,是像PDA,雙通道呼叫器以及移動電話。 CLDC包括一個J2SE中的類的子集,但是有一些重要的差別,例如,因為小型設備中的虛擬機使用的無用單元收集機制,CLDC的 java.lang.Object不包含 finalize方法,你應當記住,這個應用程序接口中的某個特定的類可能出現但是它的某個方法卻沒有出現。請參考應用程序接口文檔,這樣的話你就會知道什么時候該用什么configuration了。
    對于許多剛開始使用 CLDC開發程序的朋友,感到希奇的是 CLDC不支持浮點數。 這是 KVM默認的實現, KVM是使用 C編寫的,它可以被移植到許多平臺上,它不支持浮點運算,這是因為我們所面對的硬件一般是小型設備,有的還是使用8位的處理器,這些處理器有可能不支持浮點運算。
    profile是非凡的具體的,它的目標是一個比configuration更具體的設備的類,包括用戶界面和事件處理元素,這在 configuration中是沒有出現。 現在, Palm OS或 PDA沒有公開可用的 profile。
    Java Community Process有一個已經開發了一段時間的 PDA Profile, 開發者們仍然在等待一個新的 PDA profile版本。與此同時,想要遵循 KVM/Sun解決方案開發者的應當做什么呢?
  CLDC版本包括一個可以用作 Palm OS的 最原始的profile的類的最小的集合, 據悉, Sun不贊同使用這些類開發任何商業程序,他們也不計劃對這個應用程序接口做任何更新。 但是假如沒有PDA profile,開發者也可以使用這些類庫。 通常我們所知的是Kjava,它包含了許多 GUI類: CheckBox、 RadioButton、 List等等。除了這些,還有 Spotlet類,它被用于處理事件以及Palm OS捕捉手寫筆的輸入和鍵盤按下的事件等等。
    下面是一個使用 kjava來顯示簡單的文本字符串和按鈕的類:
  import com.sun.kjava.*;
  public class HelloKjava extends Spotlet
  {
   private static Button OKButton;
   public static Graphics g = Graphics.getGraphics();
    file://取得Graphics對象
   public static void main(String args[])
   {
    HelloKjava hk = new HelloKjava();
   }
   public HelloKjava(???敶??攠????睥?敶瑮祔數??璡祲笠??瀠浲祔數映牯??協?浲敎?牯??琠瑩敬??????ㄠ???????????????????????????協?浲敓?瑣癩?牯?潦浲???協?浲牄睡瀠浲昨牯???価塓圮湩牄睡桃牡??汥潬?????????桷汩?牴敵????価?癅?瑥癅湥?攠敶瑮??????榡?伨?祓?湡湯?敶瑮?癥湥????????榡?攨敶瑮朮瑥呅灹???慍灰瑓燈癅湥?笠?????協?浲牅獡?牯?潦浲??????協?浲敄敬整瀠浲昨牯??????犡瑥牽????????綡???綡映湩污祬笠???楴汴?楤灳獯?????癥湥?楤灳獯?????協?浲汃獯?汬瀠浲?????綡????溜?????????????????六????????????????????????????????噋???????????????????????溜????????????????????????????倠污????????垢扡?畓數坲扡??????慗慢????????????€慗慢???慪慶??睡???????????欠慪慶????????????????????????????欠睡?????????垣扡??????????????噋??????????????????????????????慐浬傳?€?????慗慢???慗慢????圠湩潤獷??????慗慢????????匠靈牥慷慢?????????????????圠扡?????????????????????????榺滅牯?慷慢甮??浩潰瑲眠扡?硦?瀻扵楬?汣獡?效汬坯扡?硥整摮?慍湩楗摮睯?瑵潴?汣獯?瑵潴?) file://HelloKjava類的構造方法
   { OKButton = new Button("OK", 84, 140);
    register(NO_EVENT_OPTIONS);
    drawScreen();
   }
   public void penDown(int x, int y) {
    if (OKButton.pressed(x,y)) {
     System.exit(1);
    }
   }
   public void drawScreen()
   {
    g.clearScreen(); file://清除屏幕
    g.drawString("Hello KJava",20, 10); file://把字符串畫在屏幕上
    OKButton.paint();
   }
  }
    還有一個類 com.sun.kjava.Database,它在一種到達 Palm數據庫應用程序接口的方法。 這就是說,它是非常原始的并且不提供訪問存在Palm數據庫中的任何內容完全的權限。它只答應設置和獲得字節數組; 它不答應鍵入訪問,除了通過記錄標識號 (是一個整數 )。 因為數據庫只能理解字節數組,給你的數據意味著你需要把這些字節數組解析成有含義的字段。
  二、Kawt的解決方案
    Kawt也是 KVM的一個 Abstract Window Toolkit(抽象窗口工具包),Kaw為Java程序員提供了一個更加常見的應用程序接口集合,例如,它使用通用布局治理器 (除了 GridBag)來在屏幕上放置組件,此外它還答應你設置那些組件的監聽者,換言之,Kawt中沒有包括 Spotlet機制。按鈕、面板、標簽以及文本框和其他的 AWT類都可用,而且,還可以有自定義類: FTPShel,TabbedPane和 GifLoader,還有一個類 java.io.File,它是一個使用標準的 Palm數據庫文件儲存資料的目錄或文件結構的抽象類。
    使用 Kawt,我們編寫出來的程序如下所示:
  import java.awt.*;
  import java.awt.event.*;
  public class HelloKawt extends Frame implements ActionListener
  {
  Button OKBTn = new Button("OK");
  Label lbl = new Label("Hello Palm");
  public static void main(String args[])
  {
  new HelloKawt();
  }
  public HelloKawt()
  {
  OKBtn.addActionListener(this);
  this.add("South", OKBtn);
  this.add("Center", lbl);
  pack();
  this.show();
  }
  public void actionPerformed(ActionEvent ae)
  {
  System.exit(1);
  }
  }
    雖然 Kawt提供了一個比 kjava更好的類的集合,但是它實際上是基于 kjava的,因此,它缺少數據庫類。對于開發 Palm程序來說,這是一個相當嚴重的問題。 通常來說,任何商用應用程序都需要把數據儲存在設備上,隨后還要與臺式機同步化, kjava.Database的同步化有點問題,因為它不包含 HotSync軟件期待的分類,它也不答應訪問每個包含最初記錄的 "本地 " palm數據庫文件的屬性位,即使使用了 PDA Profile版本,這些也不可能解決,因為 profile的目標是一般的 PDA而不是非凡的 Palm OS。 然而, Kawt團隊究竟也做了一件出色的工作,它使剛開始寫Palm程序的程序員很輕易使用Java編程。
  三、IBM解決方案
   IBM有自己的虛擬機,叫J9---它在許多方面都優于 KVM,Visual Age Micro Edition支持J9,我們大家都知道, Visual Age Micro Edition是一個來自 Object Technology International的 IDE,而 Object Technology International又是 IBM擁有的子公司。 而 VAME是一個完整的開發工具,它可以給對 Palm OS應用程序接口完全的訪問權限, 然而,這需要付出一些代價。 雖然 VAME是一種 Java工具,它所提供的東西都是使用Palm應用程序接口的本地 C方法的包裝。 也就是說, VAME中調用的方法和你在 C中看到的方法完全相同。雖然理解你的應用程序所要運行的操作系統并不是一件壞事,但這需要你非常了解開發 Palm的 C應用程序接口的方法特征,假如你只是一名Java開發者這就成了問題了。這個是一個缺點,開發VAME的工程師似乎發覺到了這一點,并嘗試著去改進?! ∠旅媸且粋€使用 VAME編寫的例程:
  import com.ibm.oti.palmos.*;
  import com.ibm.oti.palmos.util.OSX;
  public class HelloJ9 implements OSConsts {
  public static void main(String[] args) {
   CharPtr title = new CharPtr("IBM Vame Demo");
   EventType event = new EventType();
   try {
    FormType form = OS.FrmNewForm(0, title, 0, 0, 160, 160,                  0, 0, 0, 0);
    OS.FrmS

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
中文字幕亚洲综合久久筱田步美| 国产va免费精品高清在线| 午夜精品久久久久久久99热浪潮| 欧美另类在线观看| 久久久999精品视频| 日韩欧美在线观看视频| 欧美又大粗又爽又黄大片视频| 久久精品久久久久电影| 欧美高清无遮挡| 中文字幕v亚洲ⅴv天堂| 欧美日韩国产91| 成人午夜黄色影院| 国产精品久久久久久亚洲影视| 亚洲国产黄色片| 亚洲黄色av女优在线观看| 亚洲风情亚aⅴ在线发布| 91亚洲国产成人精品性色| 欧美贵妇videos办公室| 亚洲欧美日韩区| 日产日韩在线亚洲欧美| 亚洲理论在线a中文字幕| 亚洲第一网站男人都懂| 91国产在线精品| 久久色精品视频| 精品成人久久av| 亚洲午夜精品久久久久久久久久久久| 成人xvideos免费视频| 91免费视频网站| 日韩在线视频中文字幕| 在线视频免费一区二区| 欧美成人久久久| 久久视频在线免费观看| 久久国产精品99国产精| 国产精品成人av性教育| 久久不射热爱视频精品| 91精品国产高清| 欧美激情一级欧美精品| 亚洲国产精品电影在线观看| 亚洲精品电影在线观看| 亚洲综合第一页| 亚洲片国产一区一级在线观看| 国语自产精品视频在线看抢先版图片| 青草青草久热精品视频在线网站| 精品人伦一区二区三区蜜桃网站| 欧美性高跟鞋xxxxhd| 亚洲奶大毛多的老太婆| 77777少妇光屁股久久一区| 日韩欧美一区二区三区久久| 欧美激情伊人电影| 国产精品99久久99久久久二8| 亚洲精品国产精品自产a区红杏吧| 日韩av不卡在线| 欧美中文字幕在线| 日韩欧美国产中文字幕| 亚洲精品suv精品一区二区| 在线日韩中文字幕| 2020欧美日韩在线视频| 91在线|亚洲| 国产精品欧美激情在线播放| 26uuu另类亚洲欧美日本一| 精品小视频在线| 韩国三级日本三级少妇99| 成人97在线观看视频| 欧美刺激性大交免费视频| 日韩欧美视频一区二区三区| 欧美激情视频给我| 91国内免费在线视频| 亚洲一区二区三区香蕉| 国产精品流白浆视频| 亚洲精品乱码久久久久久金桔影视| 国内外成人免费激情在线视频网站| 欧美夫妻性生活视频| 国产精品黄色影片导航在线观看| 欧美久久精品一级黑人c片| 国产女同一区二区| 97**国产露脸精品国产| 欧美丰满片xxx777| 97热精品视频官网| 中文字幕日韩av电影| 亚洲精品第一国产综合精品| 国产欧美日韩中文字幕在线| 欧美精品情趣视频| 伊人伊成久久人综合网站| 日韩中文字幕在线精品| 欧美成人性色生活仑片| 色悠悠久久88| 欧美丝袜一区二区三区| 欧美黄色www| 在线视频欧美性高潮| 久久九九全国免费精品观看| 欧美在线视频在线播放完整版免费观看| 亚洲欧美日韩另类| 亚洲永久在线观看| 中文字幕日韩av综合精品| 国产成人精彩在线视频九色| 日韩欧美亚洲成人| 成人免费在线网址| 国产精品黄页免费高清在线观看| 精品动漫一区二区| 亚洲一级一级97网| 91精品国产自产在线观看永久| 在线观看欧美日韩| 国产精品久久久久久搜索| 国产日韩专区在线| 亚洲精品suv精品一区二区| 国产精品一区二区久久国产| 欧美性xxxxxxxxx| 国产999在线观看| 国产精品igao视频| 中文字幕免费国产精品| 日韩激情片免费| 亚洲精选在线观看| 成人性生交大片免费观看嘿嘿视频| 午夜免费在线观看精品视频| 尤物精品国产第一福利三区| 欧美在线观看一区二区三区| 国产精品久久一区主播| 亚洲人成网站免费播放| 欧美性高跟鞋xxxxhd| 欧美在线观看日本一区| 国产日韩欧美另类| 超碰97人人做人人爱少妇| 国产欧美日韩免费| 欧美午夜无遮挡| 欧美电影在线播放| 国产美女被下药99| 日韩精品在线观| 2019av中文字幕| 日韩一级黄色av| 日本国产一区二区三区| 最近2019年中文视频免费在线观看| 欧美日韩中文字幕综合视频| 北条麻妃99精品青青久久| xxx成人少妇69| 亚洲www在线| 成年无码av片在线| 中文字幕一区日韩电影| 日韩高清不卡av| 中日韩美女免费视频网站在线观看| www.亚洲免费视频| 日韩中文字幕在线免费观看| 91免费国产视频| 亚洲免费伊人电影在线观看av| 国模私拍视频一区| 日韩在线免费视频观看| 日韩欧美在线播放| 欧美国产乱视频| 亚洲一区二区日本| 91久久精品国产91久久性色| 亚洲精品网站在线播放gif| 精品一区二区三区三区| 亚洲人成电影在线观看天堂色| 精品中文字幕乱| 久久成人在线视频| 欧美成人手机在线| 日韩视频免费大全中文字幕| 国产欧美精品日韩精品| 亚洲一区二区日本| 欧美高清一级大片| 蜜月aⅴ免费一区二区三区| 国产一区二区丝袜高跟鞋图片| 欧美在线免费视频| 日韩电影免费在线观看中文字幕| 97在线免费视频|