IntelliJ IDEA 2020.1ヘルプ

ライブラリプロジェクトを使用してAndroidソースコードとリソースを共有する

IntelliJ IDEAは、共有Androidソースコードとリソースを保持するAndroid ライブラリプロジェクトをサポートします。他のAndroidアプリケーションプロジェクトは、ライブラリプロジェクトを参照し、ビルド時に .apk ファイルにコンパイルされたソースを含めることができます。

IntelliJ IDEAでは、ライブラリプロジェクトは別々のライブラリモジュールを介してサポートされています。

Androidのソースコードとリソースを共有するには、次のいずれかの操作を行います。

  • 新しいライブラリモジュールを作成します。

  • 共有するソースを含むアプリケーションモジュールをライブラリモジュールに変換します。

このトピックの内容:

ライブラリモジュールの作成

  1. 以下のいずれか 1 つを実行します:
  2. ウィザードの最初のページで、左側のウィンドウでAndroidを選択し、右側のウィンドウでライブラリ・モジュールを選択します。

  3. ウィザードを完了します。

アプリケーションモジュールをライブラリモジュールに変換する

Androidファセットを更新することによって、アプリケーションモジュールをライブラリモジュールに変換することができます。

  1. メインメニューからファイル | プロジェクト構造を選択して、プロジェクト構造ダイアログを開きます。

  2. 左側のペインでモジュールを選択します。中央ペインで、ライブラリモジュールにするモジュールのノードを展開し、Androidをクリックします。

  3. 右側のペインで、Androidファセットページの上にあるライブラリ・モジュールチェックボックスを選択します。

別のプロジェクトでライブラリモジュールを使用する

別のプロジェクトでライブラリモジュールを使用するには、このモジュールをそのモジュールにインポートする必要があります。

  1. メインメニューからファイル | 新規 | 既存ソースからモジュールを選択します。

  2. 表示されたダイアログで、インポートする iml モジュールファイルを参照し、OKをクリックします。モジュールノードがツリービューに追加されます。

  3. インポートされたライブラリモジュールの依存関係を、データが使用されるモジュールに追加します。
    1. 非ライブラリモジュールの設定を開きます:ファイル | プロジェクト構造にナビゲートし、左ペインでモジュールを選択し、中央ペインで非ライブラリモジュールを選択します。

    2. 右側のウィンドウで、依存関係タブに切り替えます。右のツールバーの追加ボタン icons general add をクリックし、コンテキストメニューからモジュール依存関係を選択します。

    3. 表示されたモジュールの選択ダイアログボックスで、リストからインポートしたライブラリモジュールを選択し、OKをクリックします。

ライブラリモジュールのAndroidManifest.xmlからアプリケーション全体のAndroidManifest.xmlへのデータの追加

ライブラリモジュールを別のアプリケーションに正常に統合するには、そのコンポーネントをアプリケーション AndroidManifest.xml ファイルで宣言する必要があります。マニフェストファイルには、アプリケーションの実行に必要な情報が含まれています(詳細はApp Manifestを参照)。この情報をライブラリモジュールに手動で追加するか、ライブラリモジュールの AndroidManifest.xml から抽出して、アプリケーションの AndroidManifest.xml に自動的に追加することができます。

第2のアプローチは、マージマニフェストと呼ばれます。

ライブラリモジュールのマニフェストをアプリケーションマニフェストと自動的にマージさせるには:

  1. メインメニューからファイル | プロジェクト構造を選択して、プロジェクト構造ダイアログを開きます。

  2. 左側のペインでモジュールを選択します。中央ペインで非ライブラリモジュールを展開し、そのノードのAndroidファセットをクリックします。

  3. 右ペインのAndroidファセットページで、パッケージングタブに切り替えて、マジゲストマージを有効にするオプションを選択します。

ライブラリモジュールの.dexファイルを再構築せずにアプリケーション全体の.apkに含める (pre-dexing)

アプリケーションのパッケージ化中、ライブラリモジュールの class ファイルは .dex ファイルに変換されます。この操作はデクシングと呼ばれます。最後に、ライブラリモジュールから出力された .dex ファイルは、最終的なアプリケーション .apk に含まれています(ビルドと実行からのビルド手順の詳細は、こちらを参照してください)。

原則として、ライブラリモジュールの内容は変更されません。この場合、dexed を一度だけ持つことができます。その結果、出力 .dex ファイルは .apkに含まれます。このアプローチはpre-dexingと呼ばれます。

デフォルトでは、IntelliJ IDEAは前回のビルド以降に更新されていない外部 jars と同様にライブラリモードの依存関係を事前定義します。すべての class ファイルが常にdexされるようにこれらの設定を変更することができます。

  1. メインメニューからファイル | プロジェクト構造を選択して、プロジェクト構造ダイアログを開きます。

  2. 左側のペインでモジュールを選択します。中央ペインで非ライブラリモジュールを展開し、そのノードのAndroidファセットをクリックします。

  3. 右ペインのAndroidファセットページで、パッケージングタブに切り替えて、外部 jar および Android ライブラリの依存関係を Pre-dex するオプションを選択します。

最終更新日: 2020年5月25日