SHOEISHA iD

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

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

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

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

最適化の実施

 [最適化]ボタンをクリックすると、XAPファイルの最適化によりどれくらいサイズが変わったかが表示されます。

図5 最適化の効果確認
図5 最適化の効果確認

 今回のサンプルでは、最適化前に126KBあったXAPファイルのサイズが最適化後は55KBにまで小さくなっています。これだけでストレージの使用率が50%削減できました。

最適化後の実行

 では、最適化してもきちんと実行できるのかどうか試してみましょう。

 最適化したXAPファイルをVisual Studioを使って配置しようとすると再コンパイルが走る場合があるので、Windows Phone SDKのApplication Deploymentを使って配置を行います。まずは、Windows Phone Emulatorに配置してみましょう。

図6 最適化したXAPファイルの配置
図6 最適化したXAPファイルの配置

 配置が正常に完了すればWindows Phone Emulatorのアプリケーションリストに「CZ1203ContextMenu」アイコンが表示されるので、そのアイコンをタップして実行します。

図7 最適化したXAPファイルの実行
図7 最適化したXAPファイルの実行

 結果は、「C1ContextMenuServiceが存在しない」という実行時エラーが発生してしまい、正常に動作しませんでした。これはサンプルを実行するのに必要な要素が除去されていることを意味します。

除去の制御

 もう一度、[除去]タブの内容を確認してみましょう。C1ContextMenuをクリックすると依存関係に「C1ContextMenuService」が灰色で表示されています。

図8 除去から除外
図8 除去から除外

 このC1ContextMenuServiceの名称の左側にあるピンをクリックしてピン設定を行い、除去されないようにします。その後、backupフォルダにある最適化前のXAPファイルをコピーして、再度最適化をしてみましょう。

図9 最適化の再実行
図9 最適化の再実行

 C1ContextMenuServiceはあまり大きなクラスではなかったためか、ピン設定して除去を行わないようにしてから最適化した場合も最適化後のサイズは55KBと同様な効果を得ることができました。

 できあがったXAPファイルを再びWindows Phone Emulatorに配置して、先ほどと同じように実行します。今度は実行時エラーもなく意図した動作を行ってくれます。

図10 最適化したXAPファイルの再実行
図10 最適化したXAPファイルの再実行

除去設定の保存

 デフォルトの除去状態ではなくピン設定などを行った場合、XapOptimizerの設定を保存しておき次回以降も同じピン設定を復元して最適化すると便利です。

 このような場合、[名前を付けて保存]を使ってXapOptimizer Project File(xoprojファイル)に前回の内容を保存します。

図11 xoprojファイルの保存
図11 xoprojファイルの保存

次のページ
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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング