SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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はデフォルト設定のため、除去対象からはずすピン設定などを保存しておくことはできません。

次のページ
まとめ

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
この記事の著者

初音玲(ハツネアキラ)

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6713 2012/08/21 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング