もう Eclipse から Android Studio への移行は済みましたか?
僕はまだ途中です。
俺々ライブラリが移行できないと Android Studio に移行できないので
今回はそのための手順をご紹介したいと思います。
環境
- OS
- Mac OS X 10.8.5
- Android Studio
- 0.8.9
ライブラリプロジェクト(aar)とは
Android Studio 、というより Android Studio で導入された Gradle というビルドシステムでのライブラリプロジェクトの配布用バイナリ形式を aar (Android archive) と呼ぶらしいです。
.aar の拡張子を持つ ZIP ファイルで、以下が入っています。
- /AndroidManifest.xml (必須)
- /classes.jar (必須)
- /res/ (必須)
- /R.txt (必須)
- /assets/ (オプション)
- /libs/*.jar (オプション)
- /jni/
/*.so (オプション) - /proguard.txt (オプション)
- /lint.jar (オプション)
配布編
まずは Android Studio でライブラリプロジェクトを作成します。詳しい方法については割愛。試しに aar を作成するためリリースビルドするため、
上の画像の Terminal で ./gradlew assembleRelease を実行します。
以下のコマンドで aar が作成されているか確認します。
find . -name '*.aar'
./library/build/outputs/aar/library.aar
./library/build/outputs/aar/library.aar
問題ないので build.gradle に Maven プラグインを使用して aar やら何やらを生成するタスクを追記します。
以下のハイライト部分です。
(余談だけど build.gradle って説明された時に初めは root の build.gradle なのか
Modules の build.gradle なのかわからなくて戸惑いました。だいたい Modules の方らしい。)
apply plugin: 'com.android.library' android { compileSdkVersion 19 buildToolsVersion "20.0.0" defaultConfig { minSdkVersion 10 targetSdkVersion 19 } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:20.0.0' } def repo = new File(rootDir, "repository") apply plugin: 'maven' uploadArchives { repositories { mavenDeployer { repository url: "file://${repo.absolutePath}" pom.version = '1.0.0' pom.groupId = 'at.wada811' pom.artifactId = 'android-dialog-fragments' } } }pom.version がライブラリのバージョン、
pom.groupIdが自分用の識別子(Java の package 名の最初の部分で良さそう)、
pom.artifactIdがライブラリの識別子、みたいです。
詳しくは 第52章 Mavenプラグイン を読んで下さい。
追記したら Android Studio の Terminal で ./gradlew uploadArchivesすると
repository ディレクトリに aar が生成されます。
tree repository repository └── at └── wada811 └── android-dialog-fragments ├── 1.0.0 │ ├── android-dialog-fragments-1.0.0.aar │ ├── android-dialog-fragments-1.0.0.aar.md5 │ ├── android-dialog-fragments-1.0.0.aar.sha1 │ ├── android-dialog-fragments-1.0.0.pom │ ├── android-dialog-fragments-1.0.0.pom.md5 │ └── android-dialog-fragments-1.0.0.pom.sha1 ├── maven-metadata.xml ├── maven-metadata.xml.md5 └── maven-metadata.xml.sha1この repository を GitHub に Push すれば配布側の手順としては完了です。
利用編
GitHub で配布されているライブラリプロジェクト(aar) を参照することで利用することができます。プロジェクトは準備出来ているとして、app などの build.gradle に以下を記述します。
repositories { maven { url 'http://raw.github.com/wada811/Android-DialogFragments/master/repository/' } } dependencies { compile 'at.wada811:android-dialog-fragments:1.0.0' }全体は HelloGradle/build.gradle at master · wada811/HelloGradle を見て下さい。
読み込めると以下のように app/build/intermidiates/exported-aar/ 以下に追加されます。
これで Public な俺々ライブラリが手軽に配布、参照できて便利ですね!