ものがたり(旧)

atsushieno.hatenablog.com に続く

monodroid: Monodroid.exe

これは http://monodroid.net/Documentation/Tools/Monodroid.exe の現時点での内容を日本語訳したものです。

  • -

monodroid.exeツールはAndroidパッケージを生成するビルドプロセスの一部として実行されます。これはアセンブリの集合を引数に取って、

  1. Java.Lang.Objectの全サブクラスについて、Android callable wrapperを生成します。
  2. カスタム属性に基づいてAndroidManifest.xmlを生成します。(訳注: 原文も同じリンク)
  3. Androidのaaptapkbuilderツールを実行して、Androidパッケージを生成します。
  4. (任意で)生成されたパッケージにデバッグキーで署名して、エミュレータ上にインストールする許可を与えます。

オプション

  • -A=directory: directoryaaptに渡して、追加のアセットファイルを探索できるようにします。この値はaresgen.exeに渡された値と一致しているべきです。
  • --application=name: アプリケーション内での名前を指定します。これは/manifest/application/@android:label属性の値に対応します。無指定時は、処理されたアセンブリで最初に発見されたAndroid.App.Activityのサブクラスの型名がデフォルトとなります。(訳注: これは実際にはbeta3からメインのActivityが指定できるようになったので、その名前を使用するように変わったのではないかと思われる。)
  • --framework-dir=directory: MonoDroidフレームワークアセンブリが含まれるdirectoryを指定します。
  • -I=package: 既存のパッケージや.jarファイルを基本インクルード集合に追加します。これはaaptツールに渡されます。もし指定されなければ、--sdk-dir--sdk-platformのディレクトリにあるandroid.jarがデフォルトとなります。備考: 指定された場合は、android.jarはデフォルトでは含まれずandroid.jarの何かしらのバージョンを含めることがaaptによって要求されます。この値はaresgen.exeに渡された値と一致しているべきです。
  • --manifest-template=file: fileからAndroidManifest.xmlファイルのテンプレートを読み込みます。無指定時は、内部テンプレートをデフォルトとします。
  • --nosign: デバッグ署名されたパッケージを作成しません。
  • -o=directory: ファイルが出力される場所を指定します。
  • --package=name: アプリケーションのパッケージ名を指定します。これは/manifest/@package属性値に対応します。全てのAndroidアプリケーションは(少なくともエミュレータ上では)、/data/dataディレクトリにインストールされます。nameは、アプリケーションファイルを含めるディレクトリ名として使用されます。無指定時は、処理されたアセンブリで最初に発見されたAndroid.App.ActivityのサブクラスのネームスペースをcamelCaseにしたものがデフォルトとなります。(訳注: ここもメインのActivityクラスの探索ルールの変更を反映していないと思われる。)
  • -r=assembly: 解決するアセンブリの参照となり、assemblyが他のリソースと一緒にapkbuilderでパッケージされるようにします。
  • -S=directory: aaptdirectoryを渡し、directoryにあるリソースを含めるようにします。これはaresgen.exeに渡された値と一致しているべきです。
  • --sdk-dir=directory: Android SDKが存在するdirectoryを指定します。
  • --sdk-platform=version: 使用するAndroid SDKプラットフォームのバージョンをandroid-7のように指定します。無指定時は、--sdk-dir/platforms以下の最大のバージョンになります。
  • -v[=level]: 出力メッセージの冗長性を上げます。