モバイルJava最新動向

[検証]
MIDP for Palm OS Early Access版


米川英樹
スカイアーツ
2001/7/5

 2001年5月末、米サン・マイクロシステムズからPalm OS向けのMIDP(Mobile Information Device Profile)実装であるMIDP for Palm OSのEarly Access版がリリースされました。Palm OS向けMIDP実装の提供は、2000年12月にアナウンス(http://java.sun.com/pr/2000/12/pr001212.html)されていました。KJava発表後からPalm用のMIDPアプリケーション(MIDlet)の開発を行っていた筆者としては、首を長くして待ち望んでいた実装です。

 さっそく、MIDP for Palm OSについていろいろな角度から見ていくことにしましょう。なお、以下の記述はこの原稿執筆時点で一般に公開されているEarly Access版をもとに記載してありますので、正式版がリリースされたときに内容が変更される可能性があることにご注意ください。

MIDP for Palm OSとは?

 MIDPは携帯電話やページャー、PDAなど、メモリ資源などの制約が厳しい端末向けに制定されたプロファイルで、世界の主要な携帯電話メーカーに採用されています。日本国内でも、J-フォンやKDDIがJava対応携帯電話機にMIDPを採用しています。そして、そのMIDP 1.0実行環境をPalm OS用に実装したものがMIDP for Palm OSとなります。

 ところで、J-フォンやKDDIのJava対応携帯電話機はMIDP仕様を採用しています。メーカー独自の拡張APIを使用せずに、これらの携帯電話機に向けて作成したMIDletは、Palm OS機でも走らせることが可能になります。Javaの利点である"Write Once, Run Anywhere"が生きるというわけです。

 MIDP自体について知りたい方は、Java Solutionに掲載されている「ドコモ仕様とMIDPはどう違う?」や「MIDPプログラミング入門」を参照してみるとよいでしょう。

 また、現在MIDP for Palm OSのEarly Access版は次のURLからダウンロードできます。ご自分でダウンロードして試してみるとよいでしょう(http://developer.java.sun.com/developer/earlyAccess/midp_palm/)。
(注:Early Access版はPalm OS 3.5以上、メモリ4Mbytesが必要で、実行環境は約540Kbytesあります。ダウンロードには登録(無償)が必要です)

 さて、ここでMIDP for Palmと数年前にすでに発表されているKJavaとの違いが気になった読者もいらっしゃることでしょう。次のセクションでは、KJavaとMIDP for Palm OSを比べます。

■KJavaとはどこが違うの?

 KJava(http://java.sun.com/products/cldc/)とは、1999年のJavaOneにおいてK virtual machine(KVM)と一緒に発表(http://java.sun.com/pr/1999/06/pr990615-17.html)されたPalmに特化したJava実行環境です。

KJavaのアプリケーション起動画面

 MIDPと同様にCLDC(Connected Limited Device Configuration)の上のレイヤとしてPalm用のプロファイルを使用することで、以下のようなことが可能です。

  1. Palm OS独自のPalmDB(PDB:PCのファイルのようなもの)へのアクセス
  2. 赤外線通信(ビーム)
  3. MIDIファイルの演奏
    (KJavaの正式版は1999年のJavaOneに発表されたKJavaから変更が加えられていて違うものであるといえますが「名称がはっきりしていない」「CLDCと一緒にダウンロードできる実装のパッケージ名に"kjava"が使用されている」という理由からKJavaと呼びます)

 KJavaは「実行環境をインストールする必要がある」「起動が遅い」「日本語表示が面倒」「日本語入力ができない」などの問題があったため、国内ではあまり使われなかったようです。

 MIDP for Palm OSにも「実行環境をインストールする必要がある」「起動が遅い」「日本語表示が面倒」といった問題はありますが、「日本語入力ができない」という問題は解消されました。

 また、最新のCLDC 1.0.2リリース(http://www.sun.com/software/communitysource/j2me/cldc/)で提供されたKJavaのサンプルアプリケーションのUITestには「KJavaのUIについては、公式なサポートを長くは行わない。公式なUIはMIDP仕様書を見るように」といったことが記載されており、KJavaはMIDP for Palm OSに置き換わることをうかがわせます。

 では、MIDP for Palm OSとKJavaの大きな違いを挙げてみます。

●ファイルの扱い
KJavaはPalmDB(PDB)にアクセスできたが、MIDP for Palm OSは基本的にアプリケーションがアクセス可能なローカルリソースはMIDP仕様にあるRMS(Record Management System)のみとなっているためPDBにアクセスする手段は提供されない可能性がある。

●GUI部品
MIDP for Palm OSには、KJavaにあるようなButton、ScrollBar、DialogなどのGUI部品がない。そのため、複雑なUIアプリケーション開発には向いていないと思われる。

KJavaのUITest画面

●日本語入力
KJavaは日本語入力ができなかったが、MIDP for Palm OSはC/C++で書かれたPalmware(Palm用ソフトウェア)と同様に問題なく入力ができる。しかも、MIDP for Palm OSはほかのPalmwareとコピー&ペーストで文字列を渡すことも問題なくできるようになっている。

●低レベル描画
KJavaは描画時に癖があったが、MIDP for Palm OSはJ2SEに近いのでそれほど癖はない。

 MIDP for Palm OSは、MIDP仕様どおりであればPNGファイルをそのまま表示することができます。ただし、描画処理に時間がかかると思われます。Early Access版で試した限りでは、KJavaと同様に日本語描画に関して問題があります。例えば低レベル描画やGUIコンポーネントに全角文字の「あ」を表示する場合、Unicodeの"\u3042"ではなくPalm OS日本語版で使用されているShift-JISのコード(0x82a0)に沿った形で"\u0082\u00a0"と指定しないと、正しく表示されません。

●音再生機能
KJavaはMIDIを再生できたが、MIDP for Palm OSはMIDP仕様のため、基本的にエラー音など、数種しか使用できない。

 KJavaとMIDP for Palm OSの違いは上記のとおりですが、Palm OS機と携帯電話機には画面の形状的な違いがあります。次のセクションでは、Palmに特化した仕様を見ていくことにしましょう。

Palm OS向けにMIDPに追加された機能

Index
MIDP for Palm OSとは? 
 

Palm OS向けにMIDPに追加された機能
MIDP for Palm OSを総評する

  資料:携帯電話とGUI部品を比較する




Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間