XapOptimizer適用前後の比較
XapOptimaizorで最適化した場合、XAPファイルのサイズが小さくなります。この恩恵はmarketplaceからのダウンロード時間が短縮できたり、ストレージ容量の使用率が削減できたりすることだけではありません。
XAPファイルは拡張子をzipからxapに変更したものです。そのため、XAPファイルの拡張子をzipに変更すればWindowsのファイルエクスプローラで内容を見ることができます。
上図にあるように、今回の最適化ではC1.Phone.dllのサイズが大幅に縮小されています。これはC1.Phone.dllの未使用部分を除去したことを意味します。
zip圧縮を解除した状態でサイズを考えると、342KBが77KBに縮小されたと評価できます。Windows PhoneアプリはインストールこそXAPファイルですが、実際の動作はzip圧縮を解除した状態でメモリ上にローディングされます。メモリ使用効率から言えば実に5倍も効率よくメモリが使えるということになります。
ビルドプロセスにXapOptimizerを組み込む
最適化を行う際、Visual Studioでビルドし、XapOptimizerで最適化、Application Deploymentで配置して…という一連の作業を毎回行うのはだんだんと面倒になってきます。
そこで、Visual Studioの機能を使ってビルドイベントの中にXapOptimizerの最適化を組み込んでしまいましょう。
ビルドが成功したときのビルドイベントでXapOptimizerを起動するには、次の手順で設定が必要です。
- プロジェクトのプロパティで[コンパイル]タブを選択
- [ビルド]ボタンをクリック
- [ビルド後の編集]ボタンをクリック
- ビルド後に実行するコマンドラインを設定
mkdir $(TargetDir)backup COPY /y $(TargetDir)$(TargetName).xap $(TargetDir)backup "C:\Program Files (x86)\GrapeCity\XapOptimizer1\bin\XapOptimizer.exe" /i:$(TargetDir)$(TargetName).xap /o:$(TargetDir)$(TargetName).xap
backup用フォルダを作成してからcopyコマンドでビルド直後のXAPファイルをコピーし、XapOptimizerを起動します。このとき/iパラメタには入力ファイル名、/oパラメタには出力ファイル名を指定します。
設定が終わりビルドをすれば、完了後にXapOptimizerが自動起動されます。この時点でXapOptimizerでの最適化が終わっているため、XapOptimizerを閉じると自動的に配置が行われます。
しかし、この方法で起動したXapOptimizerはデフォルト設定のため、除去対象からはずすピン設定などを保存しておくことはできません。