1

Java->JNI->Cコードのシーケンスを持つCモジュールがたくさんあるAndroidアプリケーションを構築しています。現在、外部フォルダー内のAndroidベースポート(Androidソースコード)でmm-Bオプションを使用してすべてのCモジュールを構築しています。すべてのCモジュールを作成したい場合は、個々のモジュールのmm-B関数を次々に呼び出します。これに関して2つの質問があります。

  1. モジュールのセットでインクリメンタルビルドを実行する方法があるかどうかを知りたいと思いました。ここでのシナリオは、スクリプトからモジュールのセットを次々に構築しているというものです。スクリプトに記載されているすべてのモジュールは、変更が加えられているかどうかに関係なくビルドされることを確認しました。このクリーンビルドには時間がかかります。これから抜け出す方法はありますか?

  2. mm -Bが実行されるたびに、構築されたライブラリはデフォルトでout / target / product // obj /lib/パスに配置されます。このパスを変更できるかどうかを知りたかったのですが、mm -Bコマンドが呼び出されるたびに、ライブラリはこの共通パスではなく、対応するモジュールパスにコピーされます。

これらのmm関数とmmm関数の定義があるenvsetup.shについてはあまり知識がありません。

4

1 に答える 1

0

Q1: スクリプトに変更が加えられたかどうかに関係なく、スクリプトに記載されているすべてのモジュールがビルドされることを確認しました。このクリーン ビルドには時間がかかります。これから抜け出す方法はありますか?

--> -B は「無条件にすべてのターゲットにする」を意味します。したがって、「-B」なしで「mm」を実行して、それが機能するかどうかを確認できます。

Q2: このパスを変更できるかどうか知りたかったのですが、mm -B コマンドが呼び出されるたびに、ライブラリはこの共通パスではなく、対応するモジュール パスにコピーされます。これらの mm および mmm 関数の定義を持つ envsetup.sh についての知識はあまりありません。

--> envsetup.sh とは関係ないと思います。モジュールの出力ディレクトリを変更したい場合は、おそらくそのモジュールの .mk ファイルを変更する必要があります。

于 2013-09-21T01:04:28.750 に答える