2012/05/07

トラノマキ その4

大分完成が近づいてきました(ただしクライアント側の話)。

OutOgMemoryErrorの対策

bmpオブジェクトをリサイクルするだの色々あったのですが、トラノマキではImageViewを1つしか使っていなくて意味が無さそうだったので、画像を縮小して読み込む方向で解決できました。(参考記事:画面に合わせて画像を縮小して読み込む

ライセンス認証もどき

PHPの勉強も兼ねていたし、SSL通信(HTTPS通信)や暗号化など初めて取り組みものばかりなのでかなり苦労しました。その苦労の甲斐あって、なかなかそれっぽい物が出来たんじゃないかと思います。
通信に関しては出来上がってみると通常のHTTP通信とさほど変わりないコードなんですが、未だ謎は多いですね。このあたりに手をだすなら通信技術の知識が必須だと痛感いたしました。


更新処理のパフォーマンス改善

いくつか前のエントリでも書きましたが、更新処理に時間がかかり過ぎていたのでアルゴリズムを大幅に見直しました。

変更前では目次ファイルを走査し、それぞれのファイルに対しサーバー側とSDカード内の更新日を取得し比較を行う、という方式でしたが、この方法だと (1)サーバー上に無いファイルも比較を行ってしまう (2)ファイル毎にHTTP通信によるオーバーヘッドが発生する という2つの問題があります。

そこでサーバー側に『存在しているファイルとその更新日』をリストアップするPHPスクリプトを配置し、Android端末ではそのリストを取得、そしてそれを元にしてSDカード内ファイル更新日と比較を行う、といった方式に変更しました。

この変更によりパフォーマンスは以下のように改善しました(単位はミリ秒)


とまぁ、ドヤ顔でグラフを載せていますが最初に考えた方法が酷すぎるってことですね(このままリリースしなくて本当によかった・・・)。


という事で、あとは多少リファクタリングを進めてそれが終わったら次のステップに入る予定です。

0 件のコメント:

コメントを投稿