AndroidStudioはじめました
~Gradleについて~
2014/04/16
tyabata
• 矢端智光 Tomomitsu Yabata
• 仕事と趣味とかでAndroid触ってます
最近
AndroidStudio
で開発してます
ビルドは
Gradleになりました
Gradle?
Gradleとは
• Groovyで書けるビルドシステム
• プログラミングするように書けるのでビルド手順など
が、柔軟にカスタマイズできる
• Maevenとの互換性ある
• 参考

http://gradle.monochromeroad....
buildファイルで
比較してみた
Ant

(build.xml)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- WARNING: Eclipse auto-generated file.
Any modifications will be ...
Maeven

(pom.xml)

参考URLは後記
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/
XMLSchema-instance"
xsi:schemaLocati...
Gradle

(build.gradle)
apply plugin: 'android'
!
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
!
defaultConfig {
minSdkVersion 15
targ...
見やすい!
見やすい!
(個人的)
AndroidStudio + Gradle
でできること1
用途別build
リリースorデバッグ

+

独自定義したbuildタイプ

(flavor)
例
android {
∼省略∼
productFlavors {
!
normal { // 無料版build
}
payment { // 有料版build

}

}
!
sourceSets {
main {
manifest.srcF...
flavor毎に
パッケージ名変更
簡単です
android {
∼省略∼
productFlavors {
!
normal { // 無料版build
packageName "jp.tyabata.normal"
}
payment { // 有料版build
packag...
特定のflavorだけ
参照したいクラスやリソース
flavor毎に
フォルダ分けれます
Manifestファイル
合体できます
基本の

AndroidManifest
normal用
AndroidManifest
payment用
AndroidManifest
+ +
通常の

AndroidManifest
normal用
AndroidManif...
余談
• 同パッケージの同クラスの場合

main(ベースになる部分) + flavor毎に配置すると

duplicateで怒られますが



flavor毎だけに同パッケージの同クラスを置くと

ちゃっかりビルドできます



(赤くはなるので...
基本はmain

+

差分はflavorへ
ボタン一つで
切り替わる
AndroidStudio + Gradle
でできること2
外部ライブラリの
組み込み
• git cloneして
• プロジェクトを参照
すればいい?
Yes!・・・でも
Gradleで書くと
repositories {
mavenCentral()
}
!
dependencies {
!
compile 'jp.tyabata:normal:1.0.+'
}
repositories {
mavenCentral()
}
!
d...
リモートMaevenリポジトリ

又は
リモートlvyリポジトリにあるソースを
build.gradleに記述するだけで
取りこんでくれる
Gitリポジトリは?
できないです・・・が
Gradle用の
Gitプラグインあるみたい
(編集時点開発中だと思われます)
https://github.com/ajoberstar/
gradle-git

Groovy(java)で
書けるので
夢も拡張もあるんだよ
作れる
参考
• Gradle Documetation

http://www.gradle.org/documentation
• Gradleユーザーガイド(非公式)

http://gradle.monochromeroad.com/docs/...
サンプルはこちら
https://github.com/tyabata/demo-tomo
author tyabata
“Thank you for your attention.”
Upcoming SlideShare
Loading in …5
×

AndroidStudioはじめました ~Gradle編~

4,384 views

Published on

AndroidStudioはじめて、Gradleにできることを5分ぐらいの発表用にまとめたものです。
サンプルはこちら https://github.com/tyabata/demo-tomo

Published in: Technology
0 Comments
15 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,384
On SlideShare
0
From Embeds
0
Number of Embeds
45
Actions
Shares
0
Downloads
10
Comments
0
Likes
15
Embeds 0
No embeds

No notes for slide

AndroidStudioはじめました ~Gradle編~

  1. 1. AndroidStudioはじめました ~Gradleについて~ 2014/04/16 tyabata
  2. 2. • 矢端智光 Tomomitsu Yabata • 仕事と趣味とかでAndroid触ってます
  3. 3. 最近 AndroidStudio で開発してます
  4. 4. ビルドは Gradleになりました
  5. 5. Gradle?
  6. 6. Gradleとは • Groovyで書けるビルドシステム • プログラミングするように書けるのでビルド手順など が、柔軟にカスタマイズできる • Maevenとの互換性ある • 参考
 http://gradle.monochromeroad.com/docs/userguide/ overview.html
  7. 7. buildファイルで 比較してみた
  8. 8. Ant
 (build.xml)
  9. 9. <?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- WARNING: Eclipse auto-generated file. Any modifications will be overwritten. To include a user specific buildfile here, simply create one in the same directory with the processing instruction <?eclipse.ant.import?> as the first entry and export the buildfile again. --> <project basedir="." default="build" name="TomoTest"> <property environment="env"/> <property name="ECLIPSE_HOME" value="../../../../../Applications/eclipse"/> <property name="debuglevel" value="source,lines,vars"/> <property name="target" value="1.6"/> <property name="source" value="1.6"/> <path id="Android 4.4.2.libraryclasspath"> <pathelement location="../../android_sdk/platforms/android-19/android.jar"/> </path> <path id="Android Private Libraries.libraryclasspath"> <pathelement location="libs/android-support-v4.jar"/> </path> <path id="Android Dependencies.libraryclasspath"/> <path id="TomoTest.classpath"> <pathelement location="bin"/> <path refid="Android 4.4.2.libraryclasspath"/> <path refid="Android Private Libraries.libraryclasspath"/> <path refid="Android Dependencies.libraryclasspath"/> </path> <path id="run.MainController.classpath"> <path refid="Android 4.4.2.libraryclasspath"/> <path refid="TomoTest.classpath"/> </path> <path id="run.MainController.bootclasspath"/> <target name="init"> <mkdir dir="bin"/> <copy includeemptydirs="false" todir="bin"> <fileset dir="src"> <exclude name="**/*.java"/> </fileset> </copy> <copy includeemptydirs="false" todir="bin"> <fileset dir="gen"> <exclude name="**/*.java"/> </fileset> </copy> </target> <target name="clean"> <delete dir="bin"/> </target> <target depends="clean" name="cleanall"/> <target depends="build-subprojects,build-project" name="build"/> <target name="build-subprojects"/> <target depends="init" name="build-project"> <echo message="${ant.project.name}: ${ant.file}"/> <javac debug="true" debuglevel="${debuglevel}" destdir="bin" includeantruntime="false" source="${source}" target="${target}"> <src path="src"/> <src path="gen"/> 以下省略
  10. 10. Maeven
 (pom.xml)
 参考URLは後記
  11. 11. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/ XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven- v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>sample</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>Maven Quick Start Archetype</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
  12. 12. Gradle
 (build.gradle)
  13. 13. apply plugin: 'android' ! android { compileSdkVersion 19 buildToolsVersion "19.0.1" ! defaultConfig { minSdkVersion 15 targetSdkVersion 19 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } } ! dependencies { ! compile "com.android.support:support-v4:19.0.+" }
  14. 14. 見やすい!
  15. 15. 見やすい! (個人的)
  16. 16. AndroidStudio + Gradle でできること1
  17. 17. 用途別build
  18. 18. リリースorデバッグ
 +
 独自定義したbuildタイプ
 (flavor)
  19. 19. 例 android { ∼省略∼ productFlavors { ! normal { // 無料版build } payment { // 有料版build
 }
 } ! sourceSets { main { manifest.srcFile 'AndroidManifest.xml'
 ~省略~
 } normal { } payment { } } }
  20. 20. flavor毎に パッケージ名変更
  21. 21. 簡単です android { ∼省略∼ productFlavors { ! normal { // 無料版build packageName "jp.tyabata.normal" } payment { // 有料版build packageName "jp.tyabata.payment"
 }
 } ! }
  22. 22. 特定のflavorだけ 参照したいクラスやリソース
  23. 23. flavor毎に フォルダ分けれます
  24. 24. Manifestファイル
  25. 25. 合体できます 基本の
 AndroidManifest normal用 AndroidManifest payment用 AndroidManifest + + 通常の
 AndroidManifest normal用 AndroidManifest 通常の
 AndroidManifest payment用 AndroidManifest Normalの Manifestファイル paymentの Manifestファイル
  26. 26. 余談 • 同パッケージの同クラスの場合
 main(ベースになる部分) + flavor毎に配置すると
 duplicateで怒られますが
 
 flavor毎だけに同パッケージの同クラスを置くと
 ちゃっかりビルドできます
 
 (赤くはなるので推奨ではなさそう)
  27. 27. 基本はmain
 +
 差分はflavorへ
  28. 28. ボタン一つで
  29. 29. 切り替わる
  30. 30. AndroidStudio + Gradle でできること2
  31. 31. 外部ライブラリの 組み込み
  32. 32. • git cloneして • プロジェクトを参照 すればいい?
  33. 33. Yes!・・・でも
  34. 34. Gradleで書くと
  35. 35. repositories { mavenCentral() } ! dependencies { ! compile 'jp.tyabata:normal:1.0.+' } repositories { mavenCentral() } ! dependencies { ! compile group: 'jp.tyabata', name: 'normal', version: '1.0.+' } または 補足 1.0.+とした場合、 Maevenリポジトリから 1.0以上の最新版を 探して取得する
  36. 36. リモートMaevenリポジトリ
 又は リモートlvyリポジトリにあるソースを build.gradleに記述するだけで 取りこんでくれる
  37. 37. Gitリポジトリは?
  38. 38. できないです・・・が
  39. 39. Gradle用の Gitプラグインあるみたい (編集時点開発中だと思われます) https://github.com/ajoberstar/ gradle-git

  40. 40. Groovy(java)で 書けるので
  41. 41. 夢も拡張もあるんだよ 作れる
  42. 42. 参考 • Gradle Documetation
 http://www.gradle.org/documentation • Gradleユーザーガイド(非公式)
 http://gradle.monochromeroad.com/docs/ userguide/userguide.html • Maven入門 2-4 pom.xmlについて
 http://www.techscore.com/tech/Java/ ApacheJakarta/Maven/2-2/#maven-2-4
  43. 43. サンプルはこちら https://github.com/tyabata/demo-tomo
  44. 44. author tyabata “Thank you for your attention.”

×