Android Studioでライブラリを取り込む3つの方法
from https://sakebook.hatenablog.com/entry/2014/08/17/004540
以下の3種類があります。
A. libs
配下にjarを配置
B. ライブラリのprojectフォルダを読み込む
C. 外部のリポジトリからローカルに取り込む
それぞれの具体的な手順と、長所と短所を上げていきます。
A. libs
配下にjarを配置
- 広告のSDKなどを組み込む際によく用いる。
手順
jarのファイル名はandroid-support-v4.jar
とする。
${module}/libs
フォルダを作成する- moduleは適宜変更してください。
- jarファイルを
${module}/libs
フォルダに配置する ${module}/build.gradle
にjarのパスを指定するため以下のように追記
dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile files('libs/android-support-v4.jar') }
長所
- どこにもアップロードされていないライブラリを使うことが出来る
短所
- aarファイルは取り込めない
B. ライブラリのprojectフォルダを読み込む
- facebook sdkなどを組み込むときに用いる。
- 今回はGit Submoduleを利用して、ライブラリを取り込む。
- 取り込むライブラリはJohnPersano/SuperToastsを使わせてもらいました。
- ライブラリプロジェクトが手元にある場合は、dependenciesの追加からでOKです。
手順
- submoduleの設定
- プロジェクトルートで、次のようにコマンドを入力すると、
.gitmodules
というファイルが作られます。
- プロジェクトルートで、次のようにコマンドを入力すると、
$ git submodule add https://github.com/JohnPersano/SuperToasts SuperToasts
- submoduleの初期化
- 参照しているリポジトリのソースをローカルに落とします。
- 今回は
SuperToasts
というフォルダが生成され、そこにソースが取り込まれます。
$ git submodule init $ git submodule update
${module}/build.gradle
にプロジェクトのパスを指定するため以下のように追記
dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile files('libs/android-support-v4.jar') compile project(':SuperToasts:supertoasts') }
- Gradleのビルド対象にするため
settings.gradle
に、以下のように追記
include ':app', ':SuperToasts:supertoasts'
':SuperToasts:supertoasts'
は、Supertoasts/supertoasts
を見るという意味です。
取り込むライブラリプロジェクトや、既存のプロジェクトの構成によって異なります。
長所
- プロジェクトごと取り込むので、ライブラリの内容の変更が可能である。
短所
- 依存関係の解決はしてくれない
- ビルド時にAndroidManifest.xmlなどが競合する場合があります。
C. 外部のリポジトリからローカルに取り込む
- Maven Centralなどにjarやaarが公開されている場合に用いることが出来る。
手順
${module}/build.gradle
にリポジトリを指定する記述を追記する。
dependencies { compile fileTree(dir: 'libs', include: '*.jar') compile files('libs/android-support-v4.jar') compile project(':SuperToasts:supertoasts') compile 'com.github.sakebook:DialogHelper:0.1.1@aar' }
com.github.sakebook
はGroupIdDialogHelper
はArtifactId0.1.1
はVersion- aarファイルの場合は
@aar
をつける。
- aarファイルの場合は
長所
- 簡単!
- バージョンの指定が出来る
- 依存関係の解決をしてくれる
短所
- 公開されていなければ使えない
- カスタマイズできない
まとめ
それぞれ使えるときと使えないときがあります。
今後はaarのライブラリが増えていくと思うので、Cの方法が簡単かつ無難です。
しかし、ライブラリを少しカスタムしたいときなどは、Bの方法を取るのが良いです。
その場合は、他のライブラリ等と競合する場合があるので、exclude
の指定が必要です。
サンプルコードは以下にあるので、ご自由にお試しください。
sakebook/android-sample-libraries
留言
張貼留言