昨日、Javaのclassファイル圧縮がうまくいかないという話を書いた。今日はその問題を探求しようと思って、ProGuardについていろいろ調べてみたのだが、やっぱりうまく行かない。僕がやっていたのはDoJa4.1のエミュレータで圧縮後のjarファイルを実行することだった。前に実機でもエミュレータでも動かないことがあったので、エミュレータで動作しないということは実機でも動かないものだと思い込んでいた。ダメもとで圧縮後のjarファイルを実機で動かしてみたら。ついでに別部署に連絡して、僕が持っていない702系で動作確認をしてもらったら、こっちも問題なく動作したとのこと。エミュレータでは動作しないというだけのことだった。先入観というのは怖い。これで多分一日分くらいの工数を無駄にしてしまったことになる。スケジュールに影響が出ていないからいいようなものの、ちょっと反省した。今のプログラムは圧縮後で702系の上限サイズの30kBytesギリギリだ。処理を書き加えただけでほんの少しオーバーしたりする。その都度ロジックをやりくりしているのだが、それもそろそろ限界だ。あとはアイコンファイルを小さくするか、アイコンの使用を断念するか。通信を組み合わせればもっと容量を稼げるのだが、それはそれでプログラミングが面倒だし、運用環境に面倒な部分が出てしまう。やるとしたら次のステップだ。それでもユーザの要望事項にはほぼリアルタイムで対応できているし、今回のプロジェクトはまあまあだな。