Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Makoto Yamazaki
22,719 views
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
Technology
◦
Read more
38
Save
Share
Embed
Embed presentation
Download
Downloaded 49 times
1
/ 23
2
/ 23
3
/ 23
4
/ 23
5
/ 23
6
/ 23
7
/ 23
8
/ 23
9
/ 23
10
/ 23
11
/ 23
12
/ 23
13
/ 23
14
/ 23
15
/ 23
16
/ 23
17
/ 23
18
/ 23
19
/ 23
20
/ 23
21
/ 23
22
/ 23
23
/ 23
More Related Content
PDF
AndroidLint #DroidKaigi
by
Yukiya Nakagawa
PDF
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
by
Yu Nobuoka
PDF
DroidKaigi2016 windows環境での効率的なアプリ開発手法
by
tkawashita
PDF
Android Dev Tools Knowledge
by
Shinobu Okano
PDF
AndroidStudioはじめました ~Gradle編~
by
Yabata Tomomitsu
PDF
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
by
Kengo Suzuki
PDF
Android,Brillo,ChromeOS
by
l_b__
PDF
Go MobileでAndroidアプリ開発
by
Takuya Ueda
AndroidLint #DroidKaigi
by
Yukiya Nakagawa
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
by
Yu Nobuoka
DroidKaigi2016 windows環境での効率的なアプリ開発手法
by
tkawashita
Android Dev Tools Knowledge
by
Shinobu Okano
AndroidStudioはじめました ~Gradle編~
by
Yabata Tomomitsu
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
by
Kengo Suzuki
Android,Brillo,ChromeOS
by
l_b__
Go MobileでAndroidアプリ開発
by
Takuya Ueda
What's hot
PDF
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
by
Masataka Kono
PPTX
ネットワークの切り替えを感知する方法
by
Keisuke Yamaguchi
PDF
パーミッションモデルの過渡期への対応
by
ak_shio_555
PDF
Androidの新ビルドシステム
by
l_b__
PDF
Eclipseを使ったandroid nativeデバッグ
by
l_b__
PDF
ABS2015 のセッション紹介
by
l_b__
PDF
Android Studioの魅力
by
Keiji Ariyama
PDF
Jenkinsを用いたAndroidアプリビルド作業効率化
by
Kenichi Kambara
PDF
View Customize Pluginで出来ること
by
onozaty
PDF
僕がAndroid開発する時にちょっと便利だと思うtips
by
Masataka Kono
PDF
Android Studio開発講座
by
Keiji Ariyama
PDF
用途に合わせたアニメーションの実装方法
by
Takao Sumitomo
ODP
Yapf2013
by
l_b__
PDF
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
by
leverages_event
PDF
NPAPIを使ったandroid標準ブラウザの拡張方法
by
Naruto TAKAHASHI
PDF
go.mobile で Android 開発
by
Hiroshi Kurokawa
PDF
Write slides and books in VSCode + Markdown
by
ロフト くん
PDF
2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa
by
Keiji Ariyama
ODP
Fuchsia概略その1
by
l_b__
PDF
Remote Development with Visual Studio Code & A clean dev env, working every ...
by
Hiroyuki Ohnaka
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
by
Masataka Kono
ネットワークの切り替えを感知する方法
by
Keisuke Yamaguchi
パーミッションモデルの過渡期への対応
by
ak_shio_555
Androidの新ビルドシステム
by
l_b__
Eclipseを使ったandroid nativeデバッグ
by
l_b__
ABS2015 のセッション紹介
by
l_b__
Android Studioの魅力
by
Keiji Ariyama
Jenkinsを用いたAndroidアプリビルド作業効率化
by
Kenichi Kambara
View Customize Pluginで出来ること
by
onozaty
僕がAndroid開発する時にちょっと便利だと思うtips
by
Masataka Kono
Android Studio開発講座
by
Keiji Ariyama
用途に合わせたアニメーションの実装方法
by
Takao Sumitomo
Yapf2013
by
l_b__
【ヒカ☆ラボ】 dely株式会社 梅森 翔氏 登壇資料 20171121
by
leverages_event
NPAPIを使ったandroid標準ブラウザの拡張方法
by
Naruto TAKAHASHI
go.mobile で Android 開発
by
Hiroshi Kurokawa
Write slides and books in VSCode + Markdown
by
ロフト くん
2015年のAndroidアプリ開発入門 - ABCD 2015 Kanazawa
by
Keiji Ariyama
Fuchsia概略その1
by
l_b__
Remote Development with Visual Studio Code & A clean dev env, working every ...
by
Hiroyuki Ohnaka
Viewers also liked
PDF
AndroidとSELinux
by
android sola
PDF
Android学ぶを君へ。生き抜くためのナレッジ共有
by
Shinobu Okano
PDF
マテリアルデザインを用いたデザインリニューアル [フリル編]
by
YUKI YAMAGUCHI
PDF
僕らのデータ同期プラクティス
by
Yukiya Nakagawa
PDF
Droid kaigiプレゼン
by
Suguru Oho
PPTX
進化するArt
by
Takuya Matsunaga
PDF
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
by
Yuki Anzai
PDF
あるゲームアプリケーションの構成とアップデートサイクル
by
Kentaro Iizuka
PDF
開発を効率的に進めるられるまでの道程
by
Takao Sumitomo
PDF
CardboardのUXをカメラで向上する (droidkaigi 2015/04)
by
Kenichi Takahashi
PDF
DroidKaigi - Welcome talk
by
Masahiro Hidaka
PDF
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
by
Yukiya Nakagawa
PPTX
怖くないGradle設定とBazel
by
shimada tatsuya
PDF
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
by
Kazuki Yoshida
PDF
Android lint-srp-practice
by
cch-robo
PDF
全てSになる -RxJavaとLWSを持ち込む楽しさ-
by
Ryutaro Miyashita
PDF
DroidKaigi 2017 welcometalk DAY02
by
Masahiro Hidaka
PDF
Workshop: Docker on Elastic Beanstalk
by
輝 子安
PDF
機械学習チュートリアル@Jubatus Casual Talks
by
Yuya Unno
PDF
AWSでアプリ開発するなら 知っておくべこと
by
Keisuke Nishitani
AndroidとSELinux
by
android sola
Android学ぶを君へ。生き抜くためのナレッジ共有
by
Shinobu Okano
マテリアルデザインを用いたデザインリニューアル [フリル編]
by
YUKI YAMAGUCHI
僕らのデータ同期プラクティス
by
Yukiya Nakagawa
Droid kaigiプレゼン
by
Suguru Oho
進化するArt
by
Takuya Matsunaga
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
by
Yuki Anzai
あるゲームアプリケーションの構成とアップデートサイクル
by
Kentaro Iizuka
開発を効率的に進めるられるまでの道程
by
Takao Sumitomo
CardboardのUXをカメラで向上する (droidkaigi 2015/04)
by
Kenichi Takahashi
DroidKaigi - Welcome talk
by
Masahiro Hidaka
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
by
Yukiya Nakagawa
怖くないGradle設定とBazel
by
shimada tatsuya
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
by
Kazuki Yoshida
Android lint-srp-practice
by
cch-robo
全てSになる -RxJavaとLWSを持ち込む楽しさ-
by
Ryutaro Miyashita
DroidKaigi 2017 welcometalk DAY02
by
Masahiro Hidaka
Workshop: Docker on Elastic Beanstalk
by
輝 子安
機械学習チュートリアル@Jubatus Casual Talks
by
Yuya Unno
AWSでアプリ開発するなら 知っておくべこと
by
Keisuke Nishitani
Similar to 20150425 DroidKaigi つかえるGradleプロジェクトの作り方
PDF
Gws 20130315 gradle_handson
by
Nobuhiro Sue
PDF
Android App Development with Gradle & Android Studio
by
Soichiro Kashima
PDF
Gradle布教活動
by
Nemoto Yusuke
PDF
Gradle a new Generation Build Tool
by
Shinya Mochida
PDF
Groovy base gradle_20130309
by
Nobuhiro Sue
PDF
明日から使えるgradle
by
kimukou_26 Kimukou
PDF
Androidアプリ開発で活躍必至!? ビルドツールGradle
by
amayaw9
PPT
Android Hacks - Hack40
by
Masanori Ohkawara
PDF
Gws 20120521 gradle
by
Nobuhiro Sue
PDF
Gradleどうでしょう
by
Takuma Watabiki
PDF
FIRST STEP to Haxe/JavaScript
by
terurou
PDF
つ部 Android Studio 勉強会 12/7
by
Hikaru Wada
PDF
ScalaでAndroidアプリ開発
by
papamitra
PDF
Google I/O 2013 報告会 Android Studio と Gradle
by
Keishin Yokomaku
PDF
Android studio で行ってみよう!!
by
Kazuaki Ueda
PDF
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
by
Yosaku Toyama
PDF
Layout analyzerでのgroovyの利用について
by
kimukou_26 Kimukou
PPTX
長寿なゲーム事業におけるアプリビルドの効率化
by
gree_tech
PDF
Android アプリ開発における Gradle ビルドシステム
by
Yu Nobuoka
PDF
Java開発の強力な相棒として今すぐ使えるGroovy
by
Yasuharu Nakano
Gws 20130315 gradle_handson
by
Nobuhiro Sue
Android App Development with Gradle & Android Studio
by
Soichiro Kashima
Gradle布教活動
by
Nemoto Yusuke
Gradle a new Generation Build Tool
by
Shinya Mochida
Groovy base gradle_20130309
by
Nobuhiro Sue
明日から使えるgradle
by
kimukou_26 Kimukou
Androidアプリ開発で活躍必至!? ビルドツールGradle
by
amayaw9
Android Hacks - Hack40
by
Masanori Ohkawara
Gws 20120521 gradle
by
Nobuhiro Sue
Gradleどうでしょう
by
Takuma Watabiki
FIRST STEP to Haxe/JavaScript
by
terurou
つ部 Android Studio 勉強会 12/7
by
Hikaru Wada
ScalaでAndroidアプリ開発
by
papamitra
Google I/O 2013 報告会 Android Studio と Gradle
by
Keishin Yokomaku
Android studio で行ってみよう!!
by
Kazuaki Ueda
爆速でAndroidアプリを ビルドするための仕組み DeNA TechCon #denatechcon
by
Yosaku Toyama
Layout analyzerでのgroovyの利用について
by
kimukou_26 Kimukou
長寿なゲーム事業におけるアプリビルドの効率化
by
gree_tech
Android アプリ開発における Gradle ビルドシステム
by
Yu Nobuoka
Java開発の強力な相棒として今すぐ使えるGroovy
by
Yasuharu Nakano
More from Makoto Yamazaki
PDF
Custom lintcheckをつくろう
by
Makoto Yamazaki
KEY
20120516 第7回ウフィカ社内ハンズオン Git基礎
by
Makoto Yamazaki
KEY
ICS ホットトピック
by
Makoto Yamazaki
KEY
DevQuiz 2011 の模範解答 Android編
by
Makoto Yamazaki
KEY
USB Host APIで遊んでみた
by
Makoto Yamazaki
KEY
20110619 live view ideathon_logcatonliveview
by
Makoto Yamazaki
KEY
I/O 2011 報告会 ADKで遊んでみた
by
Makoto Yamazaki
KEY
ぐだ生 Java入門第三回(文字コードの話)(Keynote版)
by
Makoto Yamazaki
KEY
ぐだ生 Java入門第ニ回(synchronized and lock)
by
Makoto Yamazaki
KEY
ぐだ生 Java入門第ニ回(synchronized and lock)
by
Makoto Yamazaki
KEY
ぐだ生 Java入門第一回(equals hash code_tostring)
by
Makoto Yamazaki
KEY
20110326 ネットプリントの紹介
by
Makoto Yamazaki
PDF
20110109 abc2010w gingerbread_api_storage
by
Makoto Yamazaki
Custom lintcheckをつくろう
by
Makoto Yamazaki
20120516 第7回ウフィカ社内ハンズオン Git基礎
by
Makoto Yamazaki
ICS ホットトピック
by
Makoto Yamazaki
DevQuiz 2011 の模範解答 Android編
by
Makoto Yamazaki
USB Host APIで遊んでみた
by
Makoto Yamazaki
20110619 live view ideathon_logcatonliveview
by
Makoto Yamazaki
I/O 2011 報告会 ADKで遊んでみた
by
Makoto Yamazaki
ぐだ生 Java入門第三回(文字コードの話)(Keynote版)
by
Makoto Yamazaki
ぐだ生 Java入門第ニ回(synchronized and lock)
by
Makoto Yamazaki
ぐだ生 Java入門第ニ回(synchronized and lock)
by
Makoto Yamazaki
ぐだ生 Java入門第一回(equals hash code_tostring)
by
Makoto Yamazaki
20110326 ネットプリントの紹介
by
Makoto Yamazaki
20110109 abc2010w gingerbread_api_storage
by
Makoto Yamazaki
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
1.
つかえるGradleプロジェクトの作り方 2015/4/25 DroidKaigi 山 誠
(@zaki50)
2.
自己紹介 • YAMAZAKI Makoto
(@zaki50) • 株式会社 uPhyca 所属
3.
Gradleとは • Antのようなあらゆる目的に使用できる汎用ビルドツール • Mavenのような規約によるビルドフレームワーク •
マルチプロジェクトをサポート • Ivyベースの強力な依存管理 • Maven/Ivyリポジトリのサポート • Antタスクが使用可能 • Groovyベースのビルドスクリプト http://gradle.monochromeroad.com/docs/userguide/introduction.html
4.
プロジェクト構成
5.
モジュールを追加
6.
build.grade buildscript { repositories { jcenter() } dependencies
{ classpath 'com.android.tools.build:gradle:1.1.0' } } allprojects { repositories { jcenter() } }
7.
app/build.gradle apply plugin: 'com.android.application' android
{ compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.example.myapplication" minSdkVersion 9 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.1.0' }
8.
ポイント • build.gradleのあるディレクトリがプロジェクト • build.grade
は Groovyスクリプト • {} はクロージャー • 項目の設定はメソッド呼び出し
9.
最初からできること • デバッグビルド • リリースビルド(署名なし)
10.
設定するとできること • buildToolsVersion等の一元管理 • デバッグビルド用の証明書をプロジェクトに含めて共有 •
リリース用apkへの署名 • リリース署名設定の外出し • バージョンコード設定の自動化 • git hashをプログラムに埋め込む • アプリプロジェクトとライブラリプロジェクトのdebug連動 • ビルドサーバーでのビルドの高速化
11.
プロジェクト作成 ∼プロジェクトの作成とモジュールの追加∼
12.
buildToolsVersion等の一元管理 buildscript { … } allprojects { … } project.ext
{ compileSdkVersion = 22 buildToolsVersion = '22.0.1' } /build.gradle /app/build.gradle apply plugin: 'com.android.application' android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { … } buildTypes { … } }
13.
デバッグビルド用の証明書を共有 apply plugin: 'com.android.application' android
{ … signingConfigs { debug { storeFile rootProject.file(‘./debug.keystore’) } } buildTypes { … } … } /app/build.gradle
14.
リリースapkへの署名 apply plugin: 'com.android.application' android
{ … signingConfigs { release { storeFile file('/Users/zaki/DroidKaigi/release.jks') storePassword 'android' keyAlias 'release' keyPassword 'android' } debug { … } } buildTypes { release { … signingConfig signingConfigs.release } } } /app/build.gradle
15.
リリース署名設定の外出し(1) buildscript { … } allprojects { … File
propertiesFile = rootProject.file("ext.properties") if (propertiesFile.exists()) { Properties properties = new Properties() propertiesFile.withInputStream { properties.load(it) } properties.entrySet().each { project.ext.set(it.key, it.value) } } } … /build.gradle
16.
リリース署名設定の外出し(2) /app/build.gradle apply plugin: 'com.android.application' android
{ … signingConfigs { if (project.hasProperty('signingStoreFile')) { release { storeFile file(signingStoreFile) storePassword signingStorePassword keyAlias signingKeyAlias keyPassword signingKeyPassword } } … } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt'), if (project.hasProperty('signingStoreFile')) { signingConfig signingConfigs.release } } } … }
17.
バージョンコード設定の自動化 apply plugin: 'com.android.application' def
versionMajor = 1 def versionMinor = 0 def versionPatch = 0 def versionBuild = 0 android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId "com.example.myapplication" minSdkVersion 9 targetSdkVersion 22 versionCode versionMajor * 10000 + versionMinor * 1000 + versionPatch * 100 + versionBuild versionName "${versionMajor}.${versionMinor}.${versionPatch}" } … } /app/build.gradle
18.
git hashをプログラムに埋め込む apply plugin:
'com.android.application' def versionMajor = 1 def versionMinor = 0 def versionPatch = 0 def versionBuild = 0 android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion defaultConfig { applicationId "com.example.myapplication" minSdkVersion 9 targetSdkVersion 22 versionCode versionMajor * 10000 + versionMinor * 1000 + versionPatch * 100 + versionBuild versionName "${versionMajor}.${versionMinor}.${versionPatch}" buildConfigField "String", "GIT_HASH", """ + 'git rev-parse --short HEAD'.execute([], project.rootDir).text.trim() + """ } … } /app/build.gradle
19.
プロジェクトのdebug連動(1) apply plugin: 'com.android.library' android
{ … defaultPublishConfig 'libRelease' publishNonDefault true … productFlavors { lib } } … /mylibrary/build.gradle
20.
プロジェクトのdebug連動(2) apply plugin: 'com.android.application' … android
{ … } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.1.0' debugCompile project(path: ':mylibrary', configuration: 'libDebug') releaseCompile project(path: ':mylibrary', configuration: 'libRelease') } /app/build.gradle
21.
ビルドサーバーでの高速化 buildscript { … } allprojects { … project.plugins.whenPluginAdded
{ plugin -> if ("com.android.build.gradle.AppPlugin".equals(plugin.class.name)) { project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs } else if ("com.android.build.gradle.LibraryPlugin".equals(plugin.class.name)) { project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs } } } project.ext { // CIサーバなどでは -PdisablePreDex をつける。 preDexが省略されてビルドが速くなる preDexLibs = !project.hasProperty('disablePreDex') … } /build.gradle
22.
まとめ • build.grade はスクリプトなので可能性 は無限大 •
楽をするための苦労を惜しまない • let’s hack!
23.
参考 http://tools.android.com/tech-docs/new-build-system/user-guide https://github.com/zaki50/android_gradle_template https://techbooster.booth.pm/items/75014 Android実践プログラミング 第五章 android_gradle_template Gradle Plugin
User Guide
Download