- Androidアプリ開発での共通化まとめ
- git submoduleを使って共通ライブラリ化してみた
プロジェクトの構成
App1/
├── Common-lib
│ ├── build.gradle
│ ├── common-lib
│ ├── gradle
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── app1
│ ├── build
│ ├── build.gradle
│ ├── libs
│ ├── proguard-rules.txt
│ ├── app1.iml
│ └── src
├── App1.iml
├── build.gradle
└── settings.gradle
- アプリプロジェクトを作って、git initして、submodule addする
$ cd App1
$ git init
$ git submodule add <repogitory_url> Common-lib
- App1のsettings.gradleを下記な感じに
- 「:Common-lib:common-lib」のようにディレクトリ構造を書くのがポイントっぽい
include ':app1'
include ':Common-lib:common-lib'
- App1/app1のbuild.gradleを下記な感じに
- setting.gradleと同じく「:Common-lib:common-lib」のようにディレクトリ構造を書くのがポイントっぽい
apply plugin: 'android'
android {
・・・
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':Common-lib:common-lib')
compile 'com.android.support:appcompat-v7:19.1.0'
compile 'com.android.support:gridlayout-v7:19.1.0'
compile 'com.android.support:support-v4:19.1.0'
}
- App1/Common-libのsettings.gradleは下記な感じ
include ':common-lib'
- App1/Common-lib/common-libのbuild.gradleは下記な感じ
apply plugin: 'android-library'
android {
compileSdkVersion 19
buildToolsVersion "19.1.0"
defaultConfig {
minSdkVersion 11
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:19.+'
}