AndroidStudioはじめました ~Gradle編~
-
Upload
yabata-tomomitsu -
Category
Technology
-
view
113 -
download
4
description
Transcript of AndroidStudioはじめました ~Gradle編~
![Page 1: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/1.jpg)
AndroidStudioはじめました ~Gradleについて~
2014/04/16 tyabata
![Page 2: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/2.jpg)
•矢端智光 Tomomitsu Yabata
•仕事と趣味とかでAndroid触ってます
![Page 3: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/3.jpg)
最近 AndroidStudio で開発してます
![Page 4: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/4.jpg)
ビルドは Gradleになりました
![Page 5: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/5.jpg)
Gradle?
![Page 6: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/6.jpg)
Gradleとは• Groovyで書けるビルドシステム
• プログラミングするように書けるのでビルド手順などが、柔軟にカスタマイズできる
• Maevenとの互換性ある
• 参考http://gradle.monochromeroad.com/docs/userguide/overview.html
![Page 7: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/7.jpg)
buildファイルで 比較してみた
![Page 8: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/8.jpg)
Ant(build.xml)
![Page 9: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/9.jpg)
<?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"/>
以下省略
![Page 10: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/10.jpg)
Maeven(pom.xml)参考URLは後記
![Page 11: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/11.jpg)
<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>
![Page 12: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/12.jpg)
Gradle(build.gradle)
![Page 13: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/13.jpg)
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.+" }
![Page 14: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/14.jpg)
見やすい!
![Page 15: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/15.jpg)
見やすい! (個人的)
![Page 16: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/16.jpg)
AndroidStudio + Gradle でできること1
![Page 17: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/17.jpg)
用途別build
![Page 18: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/18.jpg)
リリースorデバッグ+
独自定義したbuildタイプ(flavor)
![Page 19: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/19.jpg)
例android { ~省略~ productFlavors { ! normal { // 無料版build } payment { // 有料版build } } ! sourceSets { main { manifest.srcFile 'AndroidManifest.xml' ~省略~ } normal { } payment { } } }
![Page 20: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/20.jpg)
flavor毎に パッケージ名変更
![Page 21: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/21.jpg)
簡単ですandroid { ~省略~ productFlavors { ! normal { // 無料版build packageName "jp.tyabata.normal" } payment { // 有料版build packageName "jp.tyabata.payment" } } !}
![Page 22: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/22.jpg)
特定のflavorだけ 参照したいクラスやリソース
![Page 23: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/23.jpg)
flavor毎に フォルダ分けれます
![Page 24: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/24.jpg)
Manifestファイル
![Page 25: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/25.jpg)
合体できます基本の
AndroidManifest
normal用 AndroidManifest
payment用 AndroidManifest
+ +
通常のAndroidManifest
normal用 AndroidManifest
通常のAndroidManifest
payment用 AndroidManifest
Normalの Manifestファイル
paymentの Manifestファイル
![Page 26: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/26.jpg)
余談• 同パッケージの同クラスの場合
main(ベースになる部分) + flavor毎に配置するとduplicateで怒られますが
flavor毎だけに同パッケージの同クラスを置くと
ちゃっかりビルドできます
(赤くはなるので推奨ではなさそう)
![Page 27: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/27.jpg)
基本はmain+
差分はflavorへ
![Page 28: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/28.jpg)
ボタン一つで
![Page 29: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/29.jpg)
切り替わる
![Page 30: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/30.jpg)
AndroidStudio + Gradle でできること2
![Page 31: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/31.jpg)
外部ライブラリの 組み込み
![Page 32: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/32.jpg)
• git cloneして • プロジェクトを参照
すればいい?
![Page 33: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/33.jpg)
Yes!・・・でも
![Page 34: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/34.jpg)
Gradleで書くと
![Page 35: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/35.jpg)
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以上の最新版を 探して取得する
![Page 36: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/36.jpg)
リモートMaevenリポジトリ 又は
リモートlvyリポジトリにあるソースを build.gradleに記述するだけで
取りこんでくれる
![Page 37: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/37.jpg)
Gitリポジトリは?
![Page 38: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/38.jpg)
できないです・・・が
![Page 39: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/39.jpg)
Gradle用の Gitプラグインあるみたい (編集時点開発中だと思われます)
https://github.com/ajoberstar/gradle-git
![Page 40: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/40.jpg)
Groovy(java)で 書けるので
![Page 41: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/41.jpg)
夢も拡張もあるんだよ作れる
![Page 42: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/42.jpg)
参考• 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
![Page 43: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/43.jpg)
サンプルはこちら
https://github.com/tyabata/demo-tomo
![Page 44: AndroidStudioはじめました ~Gradle編~](https://reader033.fdocument.pub/reader033/viewer/2022051314/54c60ec74a7959a5228b4640/html5/thumbnails/44.jpg)
author tyabata
“Thank you for your attention.”