CodeZine(コードジン)

特集ページ一覧

XapOptimizerでWindows Phoneアプリの使用リソースを最適化しよう

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2012/08/21 14:00
目次

XapOptimizer適用前後の比較

 XapOptimaizorで最適化した場合、XAPファイルのサイズが小さくなります。この恩恵はmarketplaceからのダウンロード時間が短縮できたり、ストレージ容量の使用率が削減できたりすることだけではありません。

 XAPファイルは拡張子をzipからxapに変更したものです。そのため、XAPファイルの拡張子をzipに変更すればWindowsのファイルエクスプローラで内容を見ることができます。

図12 最適化前後でのXAPファイルの内容
図12 最適化前後でのXAPファイルの内容

 上図にあるように、今回の最適化ではC1.Phone.dllのサイズが大幅に縮小されています。これはC1.Phone.dllの未使用部分を除去したことを意味します。

 zip圧縮を解除した状態でサイズを考えると、342KBが77KBに縮小されたと評価できます。Windows PhoneアプリはインストールこそXAPファイルですが、実際の動作はzip圧縮を解除した状態でメモリ上にローディングされます。メモリ使用効率から言えば実に5倍も効率よくメモリが使えるということになります。

ビルドプロセスにXapOptimizerを組み込む

 最適化を行う際、Visual Studioでビルドし、XapOptimizerで最適化、Application Deploymentで配置して…という一連の作業を毎回行うのはだんだんと面倒になってきます。

 そこで、Visual Studioの機能を使ってビルドイベントの中にXapOptimizerの最適化を組み込んでしまいましょう。

図13 ビルドイベントでXapOptimizerを起動
図13 ビルドイベントでXapOptimizerを起動

 ビルドが成功したときのビルドイベントでXapOptimizerを起動するには、次の手順で設定が必要です。

  1. プロジェクトのプロパティで[コンパイル]タブを選択
  2. [ビルド]ボタンをクリック
  3. [ビルド後の編集]ボタンをクリック
  4. ビルド後に実行するコマンドラインを設定
リスト1 ビルド後に実行するコマンドライン
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を閉じると自動的に配置が行われます。

図14 ビルドイベントでXapOptimizerを起動
図14 ビルドイベントでXapOptimizerを起動

 しかし、この方法で起動したXapOptimizerはデフォルト設定のため、除去対象からはずすピン設定などを保存しておくことはできません。


  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 初音玲(ハツネアキラ)

     国内SIerのSEでパッケージ製品開発を主に行っており、最近は、空間認識や音声認識などを応用した製品を手掛けています。  個人的には、仕事の内容をさらに拡張したHoloLensなどのMRを中心に活動しています。  Microsoft MVP for Windows Development...

All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5