google i/o 2013 報告会 android studio と gradle

Post on 10-May-2015

5.376 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

株式会社ミクシィで開催された、Google I/O 2013 報告会でのプレゼンテーション。

TRANSCRIPT

Android StudioGradle

横幕 圭真(@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  buildThe  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.apkHogeApp-­‐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 StudioGradle

top related