monodroid: Aresgen.exe
これは http://monodroid.net/Documentation/Tools/Aresgen.exe 現時点での内容をの日本語訳したものです。本当はビルドプロセスのページを訳したいところなのだけど、MonoDevelop版が来たら変わるところもあるかもしれないので…
Androidリソースモデルは、リソースをあるディレクトリ(便宜上resとなっています)に配置することで成立し、aaptツールによってこのディレクトリが最終的な.apkが含まれるようにします。しかし、この外部リソースを使用するには、開発者はリソースIDを使ってアクセスしなければなりません。aresgen.exeツールは、これらのリソースIDを生成して、リソースをコード上で使用可能にする責務を負っています。
ビルドプロセス
aresgen.exeツールは、ビルドプロセスにおけるpre-buildの段階で実行されます。これはプロジェクトに含まれるソースファイルを生成し、生成されたソースに含まれるリソースIDがそのアセンブリ上でアクセス出来るようにします。
オプション
- -A=directory: directoryを
aaptに渡して、追加のアセットファイルを探索できるようにします。この値はaresgen.exeに渡された値と一致しているべきです(訳注: この辺は原文がおかしい) - -I=package: 既存のパッケージや.jarファイルを基本インクルード集合に追加します。これは
aaptツールに渡されます。もし指定されなければ、--sdk-dirと--sdk-platformのディレクトリにあるandroid.jarがデフォルトとなります。備考: 指定された場合は、android.jarはデフォルトでは含まれず、android.jarの何かしらのバージョンを含めることがaaptによって要求されます。この値はmonodroid.exeに渡された値と一致しているべきです。 - —namespace=namespace: 生成されたクラスに与えられるネームスペース。無指定時は、生成されたクラスはデフォルト(グローバル)ネームスペースとなります。
- -o=filename: 生成されるファイル名。生成する言語はファイルの拡張子に基づきます。System.CodeDomがファイルの生成に使用されます。従って、CodeDomをサポートする任意の言語が使用できます。
- -S=directory:
aaptにdirectoryを渡し、directoryにあるリソースを含めるようにします。これはmonodroid.exeに渡された値と一致しているべきです。 - —sdk-dir=directory: Android SDKが存在するdirectoryを指定します。
- —sdk-platform=version: 使用するAndroid SDKプラットフォームのバージョンを
android-7のように指定します。無指定時は、--sdk-dir/platforms以下の最大のバージョンになります。 - -v[=level]: 出力メッセージの冗長性を上げます。
monodroid: Monodroid.exe
これは http://monodroid.net/Documentation/Tools/Monodroid.exe の現時点での内容を日本語訳したものです。
monodroid.exeツールはAndroidパッケージを生成するビルドプロセスの一部として実行されます。これはアセンブリの集合を引数に取って、
- Java.Lang.Objectの全サブクラスについて、Android callable wrapperを生成します。
- [カスタム属性に基づいてAndroidManifest.xmlを生成します。(訳注: 原文も同じリンク)](http://monodroid.net/Tutorials/Working_with_AndroidManifest.xml)
- Androidのaaptと
apkbuilderツールを実行して、Androidパッケージを生成します。 - (任意で)生成されたパッケージにデバッグキーで署名して、エミュレータ上にインストールする許可を与えます。
オプション
- -A=directory: directoryを
aaptに渡して、追加のアセットファイルを探索できるようにします。この値は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:
aaptにdirectoryを渡し、directoryにあるリソースを含めるようにします。これはaresgen.exeに渡された値と一致しているべきです。 - —sdk-dir=directory: Android SDKが存在するdirectoryを指定します。
- —sdk-platform=version: 使用するAndroid SDKプラットフォームのバージョンを
android-7のように指定します。無指定時は、--sdk-dir/platforms以下の最大のバージョンになります。 - -v[=level]: 出力メッセージの冗長性を上げます。