携帯Javaネタ

iアプリ。なんでそんなにメモリちっこいの!20年以上前にタイムスリップした気分だよ。

(1)  iアプリにトライしてみんとす 2003/01/30 
 

最近、とあるネットメザマシサイトのためにiアプリをいぢりはじめた。ユーザとしては、iアプリ研究のためという名目の元503i発売直後にP503iを購入して、ゲームに興じ始め、昨今では某ドラクエモンスターズiというものにはまっている。。。って話はどうでもよいね^^;

さて、本題。
i-アプリ。基本的に出来ることはかなり限られている。CLDC1.0に503iならDoJa1.0、504iならDoJa2.0、FOMAならDoJa2.1のDoCoMo独自のAPIが追加されたものが全て。こうやって書くといっぱいありそうだが、JavaDocを見るとなんじゃこりゃってくらい少ない^^;

のりは、昔はやったjava.applet.Appletと似てるような気がするね。違うのは稼働環境がPCではなくケータイだってこと。これはでかい。なんつっても、使用できるメモリがなんとDoJa1.0で10KB、DoJa2.0で30KB。(ちなみに、20年ちょい前にいぢっていたApple IIという8bitマイクロコンピュータは、32KBととか64KBというRAM容量だった。今時のPCは下手すりゃ1GBくらいつんでいても不思議ではないが。。。^^;)この10KBとか30KBという制限は、自分のクラスが使用する全てのメモリリソースを含んでの制限で、当然自分のクラスがロードされればそれも計算に入れなければならない。かなりきつい。

ちなみに、DoCoMoの提供するiαppl Development Kitのエミュレータではこの携帯のメモリの限界は気にしてくれていないようで、とりあえず作ったものが平然とするする動いてくれた。わーい!と喜びつつサーバにアップしていざ実機で動かすべーと、やってみた。。。。

ダウンロード成功!起動!。。。。画面の表示にまでいたることなく、よくわからんエラーメッセージが表示され、あえなく強制終了される。。。うーむ、、、、jam(Java Applicatin Manager)ファイルでAppTraceという項目をonにすると、デバッグモードで動作するということで、試してみた。

。。。今度は、さっきのわけわからんエラーメッセージではなく、、、、OutOfMemeryErrorというのが表示された。。。。しかし、どこで足りんくなっているのかさっぱりわからん^^;^^;^^;すたっくとれーすくらい出してくれーーーーーーー!と心の中で叫んだ。。。

実機にはデバッガがのっていない、、、いやそういえばエミュレータにもデバッガはのっていないが^^;、、、ので、いや、それだけでなく標準出力っちゅう概念も実機にはないのので仕方なく、どこまで処理が進んだか分かるようにダイアログボックスを出しまくってみた。

  1. httpsで鯖に接続
  2. InputStreamReaderを生成
  3. そいつを使うXMLParserを生成
    ....

最初にデータをダウンロードしてxmlをパースするのだが、そのパーサのコンストラクタに入る直前でこけていた。。。。うーむ、、、先は長そうだ。。。。