MIDP 2.0 for WILLCOM メモ

今回Java対応してる端末はWX310J (日本無線)WX310SA(三洋)W-ZERO3(シャープ)。てか、Windows MobileなのにJavaですか、へぇ。JBlendだから、別にMS vs Sunはどうでもいいか。

MIDP2.0メモ(ん・ぱか工房)
willcom Javaアプリスレッド vol.1
WILLCOM Javaアプリ(PukiWiki)
画面サイズ、フォントサイズ、ヒープサイズ、データフォルダへのアクセスあたりを整理しなきゃダメかな。

JSR 75の「FileConnection Optional Package」が使えるらしい。「file://localhost/」でデータフォルダにアクセスできるらしい。「file:///」じゃないのか?"/"が1本足りないような。JSCLのStorageConnection(com.j_phone.io.StorageConnection)に似すぎ、Vodafoneがcommitしたのか知らん。FileSystemRegistry#listRoots()(javax.microedition.io.file.FileSystemRegistry)でルートディレクトリ集合を得られる仕様なので、「file:///localhost/」を直接指定するのはよくない気がする。「Possible Root Value」が/から始まってないとこでミスりそう。。*.jadに「MIDlet-Permission: javax.microedition.io.Connector.file.read」を忘れないように。

エミュで実行中、ちょっとでもRecordStore(javax.microedition.rms.RecordStore)にアクセスするたびにPCのHDDがガリガリとお忙しく動く。仕様なのか私の環境が悪いのかがわからん。実端末で問題になるのかもわからん。とりあえず終了時(MIDlet#destroyApp)にだけ書き込むようにしてみた。そしたら終了時にエミュがエラーはきやがる。destroyAppメソッド処理がが5秒以内に終わらないと強制終了させられる「5秒ルール」があったような気がしないでもない。Vodafoneには、アプリ終了時にdestroyAppが呼ばれる保証がないとかいう意味不明な仕様もあったし、困ったもんだ。C:\WTK22\appdb\DefaultColorPhone\run_by_class_storage_conf.dbがRecordStoreの保存先、エミュのRecordStoreを消すにはこのファイルを消せばよい。

Gauge(javax.microedition.lcdui.Gauge)はエミュでは視覚的なメータしか表示してくれない。おかげで、今現在の値がわからない。不便だ。横に数値も添えてくれればいいのに。CustomItem(javax.microedition.lcdui.CustomItem)使えばそういうのを自作できるようになったが、Form(javax.microedition.lcdui.Form)の上で行儀よく振る舞わなければならないItem(javax.microedition.lcdui.Item)の仕様上、CustomItemの実装に課される制約が重く感じる。こんなの使うくらいなら、Form使うのをあきらめてCanvas(javax.microedition.lcdui.Canvas)使うだろうな、ふつう。(わかりやすくいえば、ボタンやコンボボックスやチェックボックスなどのコントロールがItemにあたり、そんなコントロールを自作できるようになってるのがCustomItemってことです。コントロールとしての共通の振る舞いがCustomItemにも求められるため、実装上注意しなきゃいけない仕様がCustomItemにはたくさんある。)

JSCLのFEPControl(com.j_phone.ui.FEPControl)にあたるものがMIDP2.0にはなくてちょっと困る。FEPControlは、処理の流れをブロックしてユーザにテキストを入力してもらうと、ブロックした制御が動くと同時に入力してもらったテキストが返ってくる、というように使える。この流れはTextField(javax.microedition.lcdui.TextField)では代用できない。TextFieldでは、入力してもらったテキストが引数となるようなコールバック関数をListenerとして提供するのが限界か。

JSCLのcom.j_phone.util.GraphicsUtil#drawRegionがほぼそっくりそのままjavax.microedition.lcdui.Graphics#drawRegionとなってる。

あと、エミュでプロポーショナルフォントになっててビビった。まぁプロポーショナルだったのはさすがに英数だけだったけど。Font.FACE_SYSTEM(javax.microedition.lcdui.Font)じゃなくてFont.FACE_MONOSPACE使いなさいってことか。

まだメモりたいことがあった気がするけど思い出せないのでここまで。

このブログ記事について

このページは、らるるが2005年12月 3日 06:20に書いたブログ記事です。

ひとつ前のブログ記事は「テレビCMの変化のきざし」です。

次のブログ記事は「イルミネーションの罠」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.5.0