XapOptimizerとは
XapOptimizer 1.0J(以下、XapOptimizer)はSilverlightアプリケーションのファイルサイズを最適化するソフトウェアです。XAPファイルに含まれるアセンブリを自動解析し、使われていないクラスやXAMLリソースを削除することにより、XAPファイルを最大70%削減します。
このソフトウェアを使うと、アプリの持つ機能はまったく削ることなく、アプリの起動時間を短縮し、起動中に使用するリソースを減らすことが可能です。
XapOptimizerが発売された当初のバージョンでは、Windows Phoneアプリには未対応でした。しかし2012年3月2日にリリースされたSP1を適用することで、Windows Phone 7.5アプリにも対応可能となりました。今回は、このSP1を使って、本当に機能に影響なくリソースが自動削除できるのか、また、リソースを削減することでどれくらい効果があるのかを、過去のサンプルプログラムに対してXapOptimizerを適用しながら確認していきます。
手動によるXapOptimizer適用
まずは、既に作成されているXAPファイルに対して、XapOptimizerを適用して効果を確認してみましょう。
XapOptimizerを起動したら「新規プロジェクトの作成」を選択し、XAPファイルを指定します。正常にファイルが読み込まれると自動的に使用しているコンポーネントの内容が解析されます。
デフォルトの状態では最適化後のファイルの出力先は同一ファイルになります。そこで、オプションを指定して自動的にバックアップを取るように設定変更を行います。
この指定を行えば、XAPファイルの存在するフォルダにbackupフォルダを作成し、最適化前のXAPファイルをbackupフォルダにコピーしてから上書きが行われます。
除去内容の確認
最適化時にどのような部分が除去されるかは[除去]タブで確認できます。
除去される部分は灰色、除去されない部分(例えば、C1ContextMenu)は黒色で表示されています。除去判定された部分についても、名称の左にあるピンをクリックしてピン指定すれば、強制的に黒色に(除去されないように設定)できます。
リフレクションなどが使われているときは、うまく解析ができずに必要な部分も除去判定されてしまう可能性があるのですが、まずは自動判定のままの状態で実行してみましょう。