ZAPAnet総合情報局 > ZAPAブログ2.0 > [作ろう!iアプリ]4.iアプリの実行速度UPとサイズ縮小

[作ろう!iアプリ]4.iアプリの実行速度UPとサイズ縮小

2006年04月15日 作ろう!iアプリ
作ろう!iアプリ第四回目「iアプリの実行速度UPとサイズ縮小」です。

iアプリJava言語で作成され、Javaと言えばオブジェクト指向言語として有名です。
ところが、このオブジェクト指向的な開発はiアプリにおいて欠点となることがあります。
ケータイ電話というCPUの能力があまり高くなく、利用できるファイル・メモリサイズが限られた動作環境では致命的となることがあります。
ケータイ電話の処理能力は年々上がってきてはいますが、今のところ(2006年現在)はまだ開発性よりも実行速度の上昇とサイズ縮小を優先した方が良いのではないかと思います。
そこで今回は、iアプリの実行速度UPとサイズ縮小について考えてみます。
 
クラスの数を極力少なくする
クラスの数は少なければ少ないほど、ファイルサイズが小さくなります。オブジェクト指向開発に沿わないかもしれませんが、なるべくIApplicationを継承したクラス、Canvasを継承したクラスのみで作るようにこころがけます。
メソッドの数を極力少なくする
メソッドの数は少なければ少ないほど、ファイルサイズが小さくなります。オブジェクト指向開発に沿わないかもしれませんが、なるべく少ないメソッドで処理を行えるようにこころがけます。
変数の数を少なくする
変数の数は少なければ少ないほど、ファイルサイズが小さくなります。無駄な変数は使わないよう心がけ、変数自体も少なくなるようにこころがけます。
クラス名、メソッド名、変数名は極力短くする
クラス名、メソッド名、変数名は短ければ短いほど、ファイルサイズが小さくなります。極論すれば全ての名前は一文字が理想的ですが、それでは開発・デバッグの際に非常にわかりにくくなってしまうため、ツールなどを使って最終的に短くなるように心がけます。
Threadを増やさない
無駄にスレッドを増やさなければ、その分実行速度もファイルサイズも有利になります。
比較は0と行う
0比較専用の命令を持っているため、0と比較するようにすると、実行速度が速くなるそうです。(どの程度早くなるのかは調べていないのでわかりません)
switch文よりもif文を使う
switch文よりもif文を使った方がファイルサイズが小さくなるそうです。(どの程度変わってくるのかは調べていないのでわかりません)
Java実行サイズ縮小ツールを使う
変数名を短縮名で置き換えてからコンパイルしてくれるツールなどを使うとファイルサイズの縮小に役立ちます。Java Blenderjarg - Java Archive GrinderProGuardなどが有名ですが、バグがないとは言い切れないので、使う際には注意が必要です。
paint()メソッドを置き換える
paint(Graphics g){ /* 描画処理 */ }の処理を
Graphics g = getGraphics();
g.lock();
// 描画処理
g.unlock(true);
に置き換えることで、実行速度UPとサイズ縮小が望めます。Vodafoneやauなどでは使えないテクニックですが、iアプリでは有効なテクニックです。
小さい画像サイズになるように圧縮する
例えばGIF画像であれば、色数が少なければそれだけファイルサイズが小さくなります。JPEG画像の場合は圧縮率を変えれば簡単にファイルサイズを小さくできますが、その分ノイズが乗ってしまうので実際の見た目と見比べて判断しましょう。
効率的でスマートな処理方法にする
無駄でわかりにくい処理よりも、効率的でスマートな処理方法にした方がソースの見た目も実行速度も良くなり、ファイルサイズも小さくなります。

他にもいろいろとテクニックはあるかもしれませんが、なるべく実行速度が速くなるようにファイルサイズが小さくなるように心がけることが大事だと思います。