Mobile:NEWS 2002年7月31日 10:04 PM 更新

携帯向けJavaを圧縮する新技術

携帯Javaは普及したが、そのうちの1000万台程度は10Kバイトのサイズのプログラムしか動かない。開発に職人芸が要求される携帯Javaプログラミングを、より自由に行える“圧縮ソフト”が登場した

 携帯向けJavaは、1つのプラットフォームとして確実に定着した。しかし、当初から言われ続けてきた問題点の1つは「プログラムサイズの小ささ」だ。特に小さいのがNTTドコモ向けで1000万台以上普及した「503iシリーズ」のJavaで、わずか10Kバイトしかない。

 そこで、Javaアプリケーション開発者は、プログラムをいかに小さくするかに力を注いできた。中には、独自の言語でプログラムを記述し、専用のコンパイラでJavaプログラムを生成することでサイズを減らす工夫をしたところさえある。

 京都のソフィア・クレイドルは、Javaプログラムを実行形式(JARファイル)のまま圧縮するソフト、「Sophia Compress」を開発。10−15%程度、ファイルサイズの圧縮が可能になった。Javaアプリケーションの種類やドコモ向け、J-フォン向けといったプラットフォームを問わず、国内外のJavaに対応する。

 圧縮は、大きく4つの方法で行われる。(1)まず実行時に不要な情報は削除される。次に、(2)通常人が読みやすいように書かれるクラスやフィールド、メソッドの名称は短縮され、(3)データ領域もできる限り短縮化される。(4)ソフィア・クレイドル独自となるのが、さらにデータ領域をJavaシステム(VM)と共有化するというものだ。「フィールド名やメソッド名など、名前の情報をJavaシステムと共有することで、圧縮が図れる」(同社チーフソフトウェアアーキテクトの堀口淳史氏)。


製品名Sophia Compress他社製品
携帯電話に特化×
設定の難しさ○(GUIを採用)×
圧縮・名前の短縮
圧縮・未使用の削除×
圧縮・名前の共有×
圧縮・属性削除
圧縮・未使用フィールド、メソッドの削除△(一部)×
インストラクション最適化×
クラスの融合△(実装予定)×

ソフィア・クレイドルの資料より

よりJavaらしいプログラミングのために

 ソフィア・クレイドルが圧縮に着目したのは、さらに多くのデータを詰め込むためではない。「開発の仕方をしばるのではなく、もっと自由に開発できるようにする」(同社社長の杉山和徳氏)ためだ。

 10Kバイトというサイズでは、凝ったグラフィックスが使えないだけでなく、オブジェクト指向プログラミングができないという制約が生じる。例えば、オブジェクト指向でシューティングゲームを作る際には、普通、自機と敵機で別々のクラスを定義する。しかし、複数のクラスを利用するとサイズが大きくなるため、携帯向けJavaでは、「iアプリクラスとキャンバスクラスの2つしか使わず、自機と敵機の動きはキャンバスクラス内にベタベタに書くことが多かった」(iアプリ開発に携わるプログラマー)。

 さらに、通常ならばデバッグしやすいようにクラスに分かりやすい名前を付けるところを、ファイルサイズを減らすために暗号のような短縮文字を使うという職人芸が求められた。機能追加やデバッグが容易という、オブジェクト指向言語としてのJavaを活かしきれていなかったともいえる。

 Sophia Compressを利用することで、職人技の部分はソフトウェアが代行してくれる。プログラマは、オブジェクト指向を生かして効率とメンテナンス性の高い開発が行えるようになる。「将来的には、クラスの融合もできるようにする」と堀口氏は語る。携帯Javaだからといって、特殊な技法を必要としない日も来るのかもしれない。

 Sophia Compressは、1ライセンス10万円で10ライセンスより販売。既にコンテンツプロバイダ10社程度が評価に入っているという。

関連記事
▼ 第2世代の携帯Javaは何が変わるのか?
▼ 携帯向けJava、3社の違いは?

関連リンク
▼ ソフィア・クレイドル

[斎藤健二, ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.



Special

おすすめPC情報テキスト

モバイルショップ

最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!

最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!