SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
Android Studio
Gradle
横幕 圭真(@KeithYokoma)
Android Studio
Android Studio
• 新しい Android 用開発環境
• IntelliJ IDEA ベースの Android 用 IDE
• オープンソース
• Apache ant から Gradle へ
• しかも IDE にガッツリ統合されている!
Android Studio
• ここがすごいよ Android Studio
• レイアウトエディタ
• Gradle ベースのビルド
プロジェクトの作成
Android Studio
• Eclipse と異なるプロジェクト構成
Android Studio
• テストを含める
Android Studio
• Command + R で実行
レイアウトの編集
Android Studio
Android Studio
• 表示を切り替えるコントロール
Android Studio
• 表示を切り替えるコントロール
自動でリソースを生成してくれる
プレビュー表示をカスタマイズする
Android Studio
Android Studio
Android Studio
Android Studio
• 表示を切り替えるコントロール
Android Studio
• 表示を切り替えるコントロール
Android Studio
• テーマ設定
Android Studio
• ロケール設定
Android Studio
• Fragment のレイアウトもプレビュー
Android Studio
• マウスオーバーでリソース名を表示
• リソース ID のサジェストもパワフルに
• フレームワークにアノテーションが付いている
• int がどのリソース ID かが指定されるようになった
Gradle
Gradle
• 新しいビルドシステム
• Groovy で記述
• ant にはない依存関係管理
• プログラムも仕込める
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile ‘AndroidManifest.xml’
java.srcDirs = [‘src’]
resources.srcDirs = [‘src’]
aidl.srcDirs = [‘src’]
renderscript.srcDirs[‘src’]
res.srcDirs = [‘res’]
assets.srcDirs = [‘assets’]
}
intrument.setRoot(‘tests’)
}
}
Gradle
• 新しいビルドシステム
• android 向けプラグイン完備
• AndroidManifest が書き換え可
• 有料版/無料版といった
バージョンの振り分けもできる
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile ‘AndroidManifest.xml’
java.srcDirs = [‘src’]
resources.srcDirs = [‘src’]
aidl.srcDirs = [‘src’]
renderscript.srcDirs[‘src’]
res.srcDirs = [‘res’]
assets.srcDirs = [‘assets’]
}
intrument.setRoot(‘tests’)
}
}
Gradle
• 新しいビルドシステム
• sourceSets の設定で
古いプロジェクトにも適用可
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile ‘AndroidManifest.xml’
java.srcDirs = [‘src’]
resources.srcDirs = [‘src’]
aidl.srcDirs = [‘src’]
renderscript.srcDirs[‘src’]
res.srcDirs = [‘res’]
assets.srcDirs = [‘assets’]
}
instrument.setRoot(‘tests’)
}
}
Gradle
• コマンド同封
• ./gradlew build
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
}
sourceSets {
main {
manifest.srcFile ‘AndroidManifest.xml’
java.srcDirs = [‘src’]
resources.srcDirs = [‘src’]
aidl.srcDirs = [‘src’]
renderscript.srcDirs[‘src’]
res.srcDirs = [‘res’]
assets.srcDirs = [‘assets’]
}
intrument.setRoot(‘tests’)
}
}
$	
  ./gradlew	
  build
The	
  TaskContainer.add()	
  method	
  has	
  been	
  deprecated	
  and	
  is	
  scheduled	
  to	
  be	
  removed	
  in	
  Gradle	
  2.0.	
  Please	
  use	
  the	
  create()	
  method	
  
instead.
:HogeApp:prepareDebugDependencies
:HogeApp:compileDebugAidl	
  UP-­‐TO-­‐DATE
:HogeApp:generateDebugBuildConfig	
  UP-­‐TO-­‐DATE
:HogeApp:mergeDebugAssets	
  UP-­‐TO-­‐DATE
:HogeApp:compileDebugRenderscript	
  UP-­‐TO-­‐DATE
:HogeApp:mergeDebugResources	
  UP-­‐TO-­‐DATE
:HogeApp:processDebugManifest	
  UP-­‐TO-­‐DATE
:HogeApp:processDebugResources	
  UP-­‐TO-­‐DATE
:HogeApp:compileDebug	
  UP-­‐TO-­‐DATE
:HogeApp:dexDebug	
  UP-­‐TO-­‐DATE
:HogeApp:processDebugJavaRes	
  UP-­‐TO-­‐DATE
:HogeApp:validateDebugSigning
:HogeApp:packageDebug	
  UP-­‐TO-­‐DATE
:HogeApp:assembleDebug	
  UP-­‐TO-­‐DATE
:HogeApp:prepareReleaseDependencies
:HogeApp:compileReleaseAidl
:HogeApp:generateReleaseBuildConfig
:HogeApp:mergeReleaseAssets
:HogeApp:compileReleaseRenderscript
:HogeApp:mergeReleaseResources
:HogeApp:processReleaseManifest
:HogeApp:processReleaseResources
:HogeApp:compileRelease
:HogeApp:dexRelease
:HogeApp:processReleaseJavaRes	
  UP-­‐TO-­‐DATE
:HogeApp:packageRelease
:HogeApp:assembleRelease
:HogeApp:assemble
:HogeApp:check	
  UP-­‐TO-­‐DATE
:HogeApp:build
BUILD	
  SUCCESSFUL
Total	
  time:	
  9.003	
  secs
$	
  ls	
  HogeApp/build/apk/
HogeApp-­‐debug-­‐unaligned.apk
HogeApp-­‐release-­‐unsigned.apk
Gradle for Android
Gradle for Android
• Android 用のタスクが一杯
$	
  ./gradlew	
  tasks
Gradle for Android
• AndroidManifest をいじる
• defaultConfig ブロック
• ターゲットSDKのバージョン
• バージョンコード
• バージョン名
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
versionCode 1
versionName “1.0.0”
}
}
AndroidManifestの修正
コミットが不要に
Gradle for Android
• AndroidManifest をいじる
• デバッグ用途の
• デバッグ用のパッケージ名
• デバッグ用のバージョン名
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 8
targetSdkVersion 16
versionCode 1
versionName “1.0.0”
}
sourceSets {
buildType {
debug {
packageNameSuffix “.debug”
}
}
}
}
リリースビルドとの
共存が可能に
Android Studio
Gradle
Google I/O 2013 報告会 Android Studio と Gradle

Weitere ähnliche Inhalte

Was ist angesagt?

Gradleプラグインを作成してみた
Gradleプラグインを作成してみたGradleプラグインを作成してみた
Gradleプラグインを作成してみたshinya sakemoto
 
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 Sansan Tech Meetup Androidエンジニアが振り返る Google I/O   Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O 健一 辰濱
 
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムAndroid アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムYu Nobuoka
 
ユーザーを待たせないためにできること
ユーザーを待たせないためにできることユーザーを待たせないためにできること
ユーザーを待たせないためにできることTomoaki Imai
 
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]AT GS
 
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るAndroid アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るYu Nobuoka
 
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博schoowebcampus
 
Android api-levels
Android api-levelsAndroid api-levels
Android api-levelsKazuaki Ueda
 
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Kenichi Kambara
 
GBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポートGBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポートYutaka Kato
 
[Lt]versionごとにurlを自動生成
[Lt]versionごとにurlを自動生成[Lt]versionごとにurlを自動生成
[Lt]versionごとにurlを自動生成shouta yoshikai
 
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方Makoto Yamazaki
 
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileGo goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileTakahiro Yoshimura
 
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~Yabata Tomomitsu
 
Androidアプリにおけるyoutube apiの使用方法~準備編~
Androidアプリにおけるyoutube apiの使用方法~準備編~Androidアプリにおけるyoutube apiの使用方法~準備編~
Androidアプリにおけるyoutube apiの使用方法~準備編~slide_nal
 
View customize1.2.0の紹介
View customize1.2.0の紹介View customize1.2.0の紹介
View customize1.2.0の紹介onozaty
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト健一 辰濱
 
DevFest Japan 2014 Spring
DevFest Japan 2014 SpringDevFest Japan 2014 Spring
DevFest Japan 2014 SpringTakashi EGAWA
 
絶対落ちないアプリの作り方
絶対落ちないアプリの作り方絶対落ちないアプリの作り方
絶対落ちないアプリの作り方Fumihiko Shiroyama
 
兄弟アプリのロジック共通化とビルド高速化の実験
兄弟アプリのロジック共通化とビルド高速化の実験兄弟アプリのロジック共通化とビルド高速化の実験
兄弟アプリのロジック共通化とビルド高速化の実験ichigotake .
 

Was ist angesagt? (20)

Gradleプラグインを作成してみた
Gradleプラグインを作成してみたGradleプラグインを作成してみた
Gradleプラグインを作成してみた
 
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 Sansan Tech Meetup Androidエンジニアが振り返る Google I/O   Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
Sansan Tech Meetup Androidエンジニアが振り返る Google I/O
 
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステムAndroid アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
 
ユーザーを待たせないためにできること
ユーザーを待たせないためにできることユーザーを待たせないためにできること
ユーザーを待たせないためにできること
 
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
10分で分かるAndroidアプリの作り方[ATGS主催イベント発表資料]
 
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作るAndroid アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
 
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
Android StudioではじめるAndroidアプリケーション実践入門 先生:日高 正博
 
Android api-levels
Android api-levelsAndroid api-levels
Android api-levels
 
Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化Jenkinsを用いたAndroidアプリビルド作業効率化
Jenkinsを用いたAndroidアプリビルド作業効率化
 
GBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポートGBDC 勉強会 #2 Android Studio 実践レポート
GBDC 勉強会 #2 Android Studio 実践レポート
 
[Lt]versionごとにurlを自動生成
[Lt]versionごとにurlを自動生成[Lt]versionごとにurlを自動生成
[Lt]versionごとにurlを自動生成
 
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方20150425 DroidKaigi つかえるGradleプロジェクトの作り方
20150425 DroidKaigi つかえるGradleプロジェクトの作り方
 
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and GomobileGo goes Mobile: Quick Exploration on Go 1.5 and Gomobile
Go goes Mobile: Quick Exploration on Go 1.5 and Gomobile
 
AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~AndroidStudioはじめました ~Gradle編~
AndroidStudioはじめました ~Gradle編~
 
Androidアプリにおけるyoutube apiの使用方法~準備編~
Androidアプリにおけるyoutube apiの使用方法~準備編~Androidアプリにおけるyoutube apiの使用方法~準備編~
Androidアプリにおけるyoutube apiの使用方法~準備編~
 
View customize1.2.0の紹介
View customize1.2.0の紹介View customize1.2.0の紹介
View customize1.2.0の紹介
 
Device Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テストDevice Farm を使ったスマホアプリの自動テスト
Device Farm を使ったスマホアプリの自動テスト
 
DevFest Japan 2014 Spring
DevFest Japan 2014 SpringDevFest Japan 2014 Spring
DevFest Japan 2014 Spring
 
絶対落ちないアプリの作り方
絶対落ちないアプリの作り方絶対落ちないアプリの作り方
絶対落ちないアプリの作り方
 
兄弟アプリのロジック共通化とビルド高速化の実験
兄弟アプリのロジック共通化とビルド高速化の実験兄弟アプリのロジック共通化とビルド高速化の実験
兄弟アプリのロジック共通化とビルド高速化の実験
 

Andere mochten auch

New android location ap is
New android location ap isNew android location ap is
New android location ap isVishal Nayak
 
Google Play Game Servicesについて
Google Play Game ServicesについてGoogle Play Game Servicesについて
Google Play Game ServicesについてKenzo Ishii
 
Games and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some moneyGames and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some moneyMarcelo Quinta
 
Modul oop with java application mauludin
Modul oop with java application   mauludinModul oop with java application   mauludin
Modul oop with java application mauludinMauludin Ahmad
 
The Game Of Life - Java‘s Siblings and Heirs are populating the Ecosystem
The Game Of Life - Java‘s Siblings and Heirs are populating  the EcosystemThe Game Of Life - Java‘s Siblings and Heirs are populating  the Ecosystem
The Game Of Life - Java‘s Siblings and Heirs are populating the Ecosystemjexp
 
KC Java Android Talk (March 2011)
KC Java Android Talk (March 2011)KC Java Android Talk (March 2011)
KC Java Android Talk (March 2011)osake
 
First Steps in Android
First Steps in AndroidFirst Steps in Android
First Steps in AndroidRich Helton
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android DevelopmentProf. Erwin Globio
 
Android studio 2.0: default project structure
Android studio 2.0: default project structureAndroid studio 2.0: default project structure
Android studio 2.0: default project structureVyara Georgieva
 
Android Studio 2.2 - What's new in Android development tools
Android Studio 2.2 - What's new in Android development toolsAndroid Studio 2.2 - What's new in Android development tools
Android Studio 2.2 - What's new in Android development toolsTaeho Kim
 
Introduction to Android development - Presentation
Introduction to Android development - PresentationIntroduction to Android development - Presentation
Introduction to Android development - PresentationAtul Panjwani
 
Practical OOP In Java
Practical OOP In JavaPractical OOP In Java
Practical OOP In Javawiradikusuma
 

Andere mochten auch (20)

Dive Into Google Glass
Dive Into Google GlassDive Into Google Glass
Dive Into Google Glass
 
Wallet api
Wallet apiWallet api
Wallet api
 
Google io 2013_keynote
Google io 2013_keynoteGoogle io 2013_keynote
Google io 2013_keynote
 
New android location ap is
New android location ap isNew android location ap is
New android location ap is
 
Google Play Game Servicesについて
Google Play Game ServicesについてGoogle Play Game Servicesについて
Google Play Game Servicesについて
 
Whats new in_play
Whats new in_playWhats new in_play
Whats new in_play
 
Games and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some moneyGames and Java ME - Have fun and earn some money
Games and Java ME - Have fun and earn some money
 
Modul oop with java application mauludin
Modul oop with java application   mauludinModul oop with java application   mauludin
Modul oop with java application mauludin
 
The Game Of Life - Java‘s Siblings and Heirs are populating the Ecosystem
The Game Of Life - Java‘s Siblings and Heirs are populating  the EcosystemThe Game Of Life - Java‘s Siblings and Heirs are populating  the Ecosystem
The Game Of Life - Java‘s Siblings and Heirs are populating the Ecosystem
 
KC Java Android Talk (March 2011)
KC Java Android Talk (March 2011)KC Java Android Talk (March 2011)
KC Java Android Talk (March 2011)
 
First Steps in Android
First Steps in AndroidFirst Steps in Android
First Steps in Android
 
Gu iintro(java)
Gu iintro(java)Gu iintro(java)
Gu iintro(java)
 
GUI Programming with Java
GUI Programming with JavaGUI Programming with Java
GUI Programming with Java
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Android studio 2.0: default project structure
Android studio 2.0: default project structureAndroid studio 2.0: default project structure
Android studio 2.0: default project structure
 
Android Studio 2.2 - What's new in Android development tools
Android Studio 2.2 - What's new in Android development toolsAndroid Studio 2.2 - What's new in Android development tools
Android Studio 2.2 - What's new in Android development tools
 
Firebase with Android
Firebase with AndroidFirebase with Android
Firebase with Android
 
OOP in Java
OOP in JavaOOP in Java
OOP in Java
 
Introduction to Android development - Presentation
Introduction to Android development - PresentationIntroduction to Android development - Presentation
Introduction to Android development - Presentation
 
Practical OOP In Java
Practical OOP In JavaPractical OOP In Java
Practical OOP In Java
 

Ähnlich wie Google I/O 2013 報告会 Android Studio と Gradle

OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築Daein Park
 
Realmの暗号化とAndroid System
Realmの暗号化とAndroid SystemRealmの暗号化とAndroid System
Realmの暗号化とAndroid SystemKeiji Ariyama
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Daisuke Hiraoka
 
Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発Osamu Monoe
 
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方Yuki Morishita
 
Androidアプリ販売への道
Androidアプリ販売への道Androidアプリ販売への道
Androidアプリ販売への道Yoshinori Kamaishi
 
Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )Masayuki Abe
 
appengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQueryappengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQueryRyo Yamasaki
 
Dot netcore multiplatform 2
Dot netcore multiplatform 2Dot netcore multiplatform 2
Dot netcore multiplatform 2shozon
 
WebIDLを見てみる
WebIDLを見てみるWebIDLを見てみる
WebIDLを見てみるtakenspc
 
Android App Development with Gradle & Android Studio
Android App Development with Gradle & Android StudioAndroid App Development with Gradle & Android Studio
Android App Development with Gradle & Android StudioSoichiro Kashima
 
テスト駆動開発の進化
テスト駆動開発の進化テスト駆動開発の進化
テスト駆動開発の進化Yukei Wachi
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 

Ähnlich wie Google I/O 2013 報告会 Android Studio と Gradle (20)

Gradle布教活動
Gradle布教活動Gradle布教活動
Gradle布教活動
 
OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築OpenShiftでJBoss EAP構築
OpenShiftでJBoss EAP構築
 
Realmの暗号化とAndroid System
Realmの暗号化とAndroid SystemRealmの暗号化とAndroid System
Realmの暗号化とAndroid System
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発Visual Studio 2015 を使用した Cordova アプリの開発
Visual Studio 2015 を使用した Cordova アプリの開発
 
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
サンプルアプリケーションで学ぶApache Cassandraを使ったJavaアプリケーションの作り方
 
UnicastWS vol.2
UnicastWS vol.2UnicastWS vol.2
UnicastWS vol.2
 
Androidアプリ販売への道
Androidアプリ販売への道Androidアプリ販売への道
Androidアプリ販売への道
 
Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )Cordovaコトハジメ( Html5fun×senchUG )
Cordovaコトハジメ( Html5fun×senchUG )
 
appengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQueryappengine ja night #24 Google Cloud Endpoints and BigQuery
appengine ja night #24 Google Cloud Endpoints and BigQuery
 
Dot netcore multiplatform 2
Dot netcore multiplatform 2Dot netcore multiplatform 2
Dot netcore multiplatform 2
 
Gradle handson
Gradle handsonGradle handson
Gradle handson
 
Grails 2.0.0.M1の話
Grails 2.0.0.M1の話 Grails 2.0.0.M1の話
Grails 2.0.0.M1の話
 
G * magazine 0
G * magazine 0G * magazine 0
G * magazine 0
 
Introduction of Rhodes
Introduction of RhodesIntroduction of Rhodes
Introduction of Rhodes
 
WebIDLを見てみる
WebIDLを見てみるWebIDLを見てみる
WebIDLを見てみる
 
Introduce React Native
Introduce React NativeIntroduce React Native
Introduce React Native
 
Android App Development with Gradle & Android Studio
Android App Development with Gradle & Android StudioAndroid App Development with Gradle & Android Studio
Android App Development with Gradle & Android Studio
 
テスト駆動開発の進化
テスト駆動開発の進化テスト駆動開発の進化
テスト駆動開発の進化
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 

Mehr von Keishin Yokomaku (14)

UI optimization for night
UI optimization for nightUI optimization for night
UI optimization for night
 
Popup view on Mortar
Popup view on MortarPopup view on Mortar
Popup view on Mortar
 
Regexp in Android and Java
Regexp in Android and JavaRegexp in Android and Java
Regexp in Android and Java
 
Deep Inside Android Hacks
Deep Inside Android HacksDeep Inside Android Hacks
Deep Inside Android Hacks
 
Make it compatible
Make it compatibleMake it compatible
Make it compatible
 
Signature
SignatureSignature
Signature
 
Android Media Hacks
Android Media HacksAndroid Media Hacks
Android Media Hacks
 
Null, the Abyss
Null, the AbyssNull, the Abyss
Null, the Abyss
 
?
??
?
 
Building stable and flexible libraries
Building stable and flexible librariesBuilding stable and flexible libraries
Building stable and flexible libraries
 
Typeface
TypefaceTypeface
Typeface
 
Version Management
Version ManagementVersion Management
Version Management
 
イカしたライブラリを作った話
イカしたライブラリを作った話イカしたライブラリを作った話
イカしたライブラリを作った話
 
自己組織化
自己組織化自己組織化
自己組織化
 

Kürzlich hochgeladen

プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールsugiuralab
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価sugiuralab
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 

Kürzlich hochgeladen (7)

プレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツールプレイマットのパターン生成支援ツール
プレイマットのパターン生成支援ツール
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価プレイマットのパターン生成支援ツールの評価
プレイマットのパターン生成支援ツールの評価
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 

Google I/O 2013 報告会 Android Studio と Gradle

  • 3. Android Studio • 新しい Android 用開発環境 • IntelliJ IDEA ベースの Android 用 IDE • オープンソース • Apache ant から Gradle へ • しかも IDE にガッツリ統合されている!
  • 4. Android Studio • ここがすごいよ Android Studio • レイアウトエディタ • Gradle ベースのビルド
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Android Studio • Eclipse と異なるプロジェクト構成
  • 12. Android Studio • Command + R で実行
  • 24. Android Studio • Fragment のレイアウトもプレビュー
  • 25. Android Studio • マウスオーバーでリソース名を表示 • リソース ID のサジェストもパワフルに • フレームワークにアノテーションが付いている • int がどのリソース ID かが指定されるようになった
  • 27. Gradle • 新しいビルドシステム • Groovy で記述 • ant にはない依存関係管理 • プログラムも仕込める buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 16 } sourceSets { main { manifest.srcFile ‘AndroidManifest.xml’ java.srcDirs = [‘src’] resources.srcDirs = [‘src’] aidl.srcDirs = [‘src’] renderscript.srcDirs[‘src’] res.srcDirs = [‘res’] assets.srcDirs = [‘assets’] } intrument.setRoot(‘tests’) } }
  • 28. Gradle • 新しいビルドシステム • android 向けプラグイン完備 • AndroidManifest が書き換え可 • 有料版/無料版といった バージョンの振り分けもできる buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 16 } sourceSets { main { manifest.srcFile ‘AndroidManifest.xml’ java.srcDirs = [‘src’] resources.srcDirs = [‘src’] aidl.srcDirs = [‘src’] renderscript.srcDirs[‘src’] res.srcDirs = [‘res’] assets.srcDirs = [‘assets’] } intrument.setRoot(‘tests’) } }
  • 29. Gradle • 新しいビルドシステム • sourceSets の設定で 古いプロジェクトにも適用可 buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 16 } sourceSets { main { manifest.srcFile ‘AndroidManifest.xml’ java.srcDirs = [‘src’] resources.srcDirs = [‘src’] aidl.srcDirs = [‘src’] renderscript.srcDirs[‘src’] res.srcDirs = [‘res’] assets.srcDirs = [‘assets’] } instrument.setRoot(‘tests’) } }
  • 30. Gradle • コマンド同封 • ./gradlew build buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 16 } sourceSets { main { manifest.srcFile ‘AndroidManifest.xml’ java.srcDirs = [‘src’] resources.srcDirs = [‘src’] aidl.srcDirs = [‘src’] renderscript.srcDirs[‘src’] res.srcDirs = [‘res’] assets.srcDirs = [‘assets’] } intrument.setRoot(‘tests’) } }
  • 31. $  ./gradlew  build The  TaskContainer.add()  method  has  been  deprecated  and  is  scheduled  to  be  removed  in  Gradle  2.0.  Please  use  the  create()  method   instead. :HogeApp:prepareDebugDependencies :HogeApp:compileDebugAidl  UP-­‐TO-­‐DATE :HogeApp:generateDebugBuildConfig  UP-­‐TO-­‐DATE :HogeApp:mergeDebugAssets  UP-­‐TO-­‐DATE :HogeApp:compileDebugRenderscript  UP-­‐TO-­‐DATE :HogeApp:mergeDebugResources  UP-­‐TO-­‐DATE :HogeApp:processDebugManifest  UP-­‐TO-­‐DATE :HogeApp:processDebugResources  UP-­‐TO-­‐DATE :HogeApp:compileDebug  UP-­‐TO-­‐DATE :HogeApp:dexDebug  UP-­‐TO-­‐DATE :HogeApp:processDebugJavaRes  UP-­‐TO-­‐DATE :HogeApp:validateDebugSigning :HogeApp:packageDebug  UP-­‐TO-­‐DATE :HogeApp:assembleDebug  UP-­‐TO-­‐DATE :HogeApp:prepareReleaseDependencies :HogeApp:compileReleaseAidl :HogeApp:generateReleaseBuildConfig :HogeApp:mergeReleaseAssets :HogeApp:compileReleaseRenderscript :HogeApp:mergeReleaseResources :HogeApp:processReleaseManifest :HogeApp:processReleaseResources :HogeApp:compileRelease :HogeApp:dexRelease :HogeApp:processReleaseJavaRes  UP-­‐TO-­‐DATE :HogeApp:packageRelease :HogeApp:assembleRelease :HogeApp:assemble :HogeApp:check  UP-­‐TO-­‐DATE :HogeApp:build BUILD  SUCCESSFUL Total  time:  9.003  secs $  ls  HogeApp/build/apk/ HogeApp-­‐debug-­‐unaligned.apk HogeApp-­‐release-­‐unsigned.apk
  • 33. Gradle for Android • Android 用のタスクが一杯 $  ./gradlew  tasks
  • 34. Gradle for Android • AndroidManifest をいじる • defaultConfig ブロック • ターゲットSDKのバージョン • バージョンコード • バージョン名 buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 16 versionCode 1 versionName “1.0.0” } } AndroidManifestの修正 コミットが不要に
  • 35. Gradle for Android • AndroidManifest をいじる • デバッグ用途の • デバッグ用のパッケージ名 • デバッグ用のバージョン名 buildscript { repositories { maven { url 'http://repo1.maven.org/maven2' } } dependencies { classpath 'com.android.tools.build:gradle:0.4' } } apply plugin: 'android' dependencies { compile files('libs/android-support-v4.jar') } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 16 versionCode 1 versionName “1.0.0” } sourceSets { buildType { debug { packageNameSuffix “.debug” } } } } リリースビルドとの 共存が可能に