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

図書室で本を選ぶ男性 Android開発

業務でライブラリモジュールを導入しました。

僕

そういえばライブラリ作ったことないな……。

ということでお勉強がてら、基礎から学び直してみました!

Androidライブラリの構成

Androidライブラリは、構造上はAndroidアプリモジュールと同じです。

  • ソースコード
  • リソースファイル
  • Androidマニフェスト

上記のようなファイルを全て含めることができるため、レイアウトや画像ファイル(drawable)のような共有リソースを統合可能です。

ただし、AndroidライブラリをコンパイルするとJARではなく、AAR(AndroidARchive)ファイルとして出力されます。

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

Androidライブラリの使いどころ

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

どちらにしても、主な手順は下記の通りになります。

  • 再利用するファイルをライブラリモジュールに移動する
  • 各アプリのモジュール依存関係としてライブラリを追加する

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

適当なプロジェクトを作成する

前提として、ライブラリ作成用のプロジェクトを新規作成しなければなりません。

新規作成すると、appモジュールを持ったプロジェクトが作成されます。

Androidライブラリ(AARを作成する)

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

AAR新規作成手順_1

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

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

AAR新規作成手順_2

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

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

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

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

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

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

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

ライブラリモジュールをビルド(出力)する

  • ①の場合
    • Build > Make Moduleを押下する
  • ②の場合
    • Projectビューで、ライブラリモジュールを選択した状態で、Build > Build APKを押下する。

以下のパスに出力されます。
意外と分かりにくいところにあるので、要注意!

AARの出力場所

AarTestProject/testLibrary/build/outputs/aar

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

ライブラリモジュールを依存関係として追加(インポート)する

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を使用します。

詳細は以下の記事を参照してください。

Android Plugin for Gradle 3.0.0 への移行  |  Android デベロッパー

参考文献

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