Android ライブラリモジュール(.aar)を作成し、プロジェクトにインポートする。

スマホを操作する女性_1Androidアプリ開発
サバ缶
サバ缶

どうもこんにちは!
サバ缶(@tech_begin)です。

とある業務で、ライブラリモジュール(.aar)を導入する機会がありました。

そういえばAndroidアプリ向けのライブラリを作成したことがないなぁ……と思い、
学ぶと同時に記事にすることにしました!

お役に立てれば幸いです。

Androidライブラリの構成

Androidライブラリは、構成上はAndroidアプリモジュールと全く同じです。
以下のようなファイルをすべて含めることができます。

ライブラリモジュールの主なファイル群
  • ソースコード
  • リソースファイル
  • Androidマニフェスト

ですので、レイアウトや画像(drawable)のような共有リソースを統合することが可能です。

ただし、AndroidライブラリをコンパイルするとJARではなくAARファイルとして出力されるためご注意ください。

  • JAR(Java Archive)ファイル
    • Javaのクラスやメソッドを持つライブラリソース
  • AAR(Android Archive)ファイル
    • JARファイルに加えて、Androidリソース(マニフェストやActivityなど)が含まれるライブラリソース

Androidライブラリの使い所

以下のような場面でAndroidのライブラリを導入します。

AARを導入する場面
  • Activity、Service、レイアウトなど共有のコンポーネントを使用する複数のアプリをビルドする場合
  • 無償版・有償版など複数のAPKバリアントに存在するアプリをビルドするときに、同じコアコンポーネントを必要とする場合

いずれにしても、導入する手順は同じです。

主な手順(ざっくり)
  • 再利用するファイルをライブラリモジュールに移動する
  • 各アプリのモジュール依存関係としてライブラリを追加する

それでは、実際にライブラリモジュールを作成する手順を解説していきます!

Androidライブラリの作成

Androidライブラリ(AAR)の作成方法は、大きく2つあります。

① ライブラリモジュールを新規作成する
② アプリモジュールをライブラリモジュールに変換する

それぞれの手順を確認しましょう。

① ライブラリモジュールを新規作成する

前提として、ライブラリ用のプロジェクトが必要になります。
通常の手順で、任意のプロジェクト名で新規作成しましょう。

すると、appモジュールを含んだプロジェクトが作成されます。

次に、Androidライブラリ(AAR)を作成していきます。

Fileメニュー > New > NewModule を選択します。

Module ダイアログで、Android Library を選択し、Next を押下します。

そしてライブラリ名、最小SDKバージョンを指定し、Finish を押下します。

Gradleの同期が完了したら、画面左側のProjectビューにモジュールが追加されます。

サバ缶
サバ缶

BuildVariant にも追加されますよ!

今回はとりあえず「testLibrary」という名称にして進めていきますね。

② アプリモジュールをライブラリモジュールへ変換する

再利用するファイルが含まれるモジュールは、
以下の手順でライブラリモジュールに変換することができます。

アプリモジュールをライブラリモジュールへ変換する手順
  • モジュールレベルのbuild.gradleを開く
  • applicationIdを削除する(これを定義できるのはアプリモジュールのみなので)
  • ファイル先頭のapply plugin: 'com.android.application'apply plugin: 'com.android.library' に変更する

これで、モジュール構造は同じですが、Androidライブラリとして機能するようになります。

ビルドするとAPKではなく、AARファイルが出力されます。

Androidライブラリの出力(ビルド)

作成した手順の①と②で方法が異なるのでご注意ください。

Androidライブラリの出力方法
  • ① 『ライブラリモジュールを新規作成する』の場合
    • Build > Make Moduleを押下する
  • ② 『アプリモジュールをライブラリモジュールへ変換する』の場合
    • Projectビューで、ライブラリモジュールを選択した状態で、Build > Build APKを押下する。

上記の手順で出力を行うと、 app/src/debug/ 配下に出力されます。
「debug」のところBuildVariantによるので、ご注意ください。

AarTestProject/testLibrary/build/outputs/aar
プロジェクト名/ライブラリ名/build/outputs/aar

意外と分かりづらいディレクトリに出力されるのね。

注意しなきゃ!

Androidライブラリの導入

ここでは、ライブラリモジュールを依存関係としてインポートしていきます。

Androidライブラリを別のアプリモジュールとして使用する手順は、2つあります。

① コンパイル済みのライブラリを追加する
② ライブラリモジュールをプロジェクトにインポートする

ちなみに、同じプロジェクト内でライブラリモジュールを作成済みの場合は、
プロジェクト内に存在するため必要ありません。

① コンパイル済みのライブラリを追加する

ライブラリのソースコードの単独バージョンを維持(編集不可)にしたい場合に、実施する必要があります。

  • File > New > New Module を選択
  • Import .JAR/.AAR Package を選択し、Nextを押下
  • AARまたはJARのファイル場所を選択し、Finishを押下

② ライブラリモジュールをプロジェクトにインポートする

こちらは、ライブラリモジュールがプロジェクトにコピーされ、ライブラリのソースコードを変更することができます。

  • File > New > Import Module を選択
  • ライブラリモジュールのディレクトリ場所を選択し、Finishを押下

①と②、それぞれの特徴を理解して使い分けましょう!

実際に試した方法

  • 一旦、debugとreleaseを分けて配置しておく。
  • ①の手順を試す
  • setting.gradleの先頭にライブラリ名が記述されていることを確認する
  • appモジュールのbuild.gradleを開き、dependenciesブロックに追加する
  • Sync Project with Gradle Files(画面右上の象さんマーク)を押下

特定のビルドバリアントで必要な場合は、implementationではなく、[buildVariantName]Implementationを使用します。

参考

AAR 形式のファイルを作成する/使用する | まくまくAndroidノート
天才星人まくのAndroidノート
Androidライブラリ(AAR)を作る&利用の注意点まとめ | TechBooster
今回はAndroidライブラリを作る手順と利用時に困らないためのチェックポイントを紹介していきます。 AndroidライブラリはAAR(Android Archive)ファイルにコンパイルできるモジュールです。JARファイルはJavaのクラスやメソッドをもつライブラリリソースですが、Androidライブラリでは加えてA...
Android ライブラリを作成する  |  Android Studio  |  Android Developers
Android ライブラリの作成方法について説明します。
タイトルとURLをコピーしました