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

  • 5,175 views
Uploaded on

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

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

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
5,175
On Slideshare
0
From Embeds
0
Number of Embeds
29

Actions

Shares
Downloads
7
Comments
0
Likes
8

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Android StudioGradle横幕 圭真(@KeithYokoma)
  • 2. Android Studio
  • 3. Android Studio• 新しい Android 用開発環境• IntelliJ IDEA ベースの Android 用 IDE• オープンソース• Apache ant から Gradle へ• しかも IDE にガッツリ統合されている!
  • 4. Android Studio• ここがすごいよ Android Studio• レイアウトエディタ• Gradle ベースのビルド
  • 5. プロジェクトの作成
  • 6. Android Studio• Eclipse と異なるプロジェクト構成
  • 7. Android Studio• テストを含める
  • 8. Android Studio• Command + R で実行
  • 9. レイアウトの編集
  • 10. Android Studio
  • 11. Android Studio• 表示を切り替えるコントロール
  • 12. Android Studio• 表示を切り替えるコントロール自動でリソースを生成してくれるプレビュー表示をカスタマイズする
  • 13. Android Studio
  • 14. Android Studio
  • 15. Android Studio
  • 16. Android Studio• 表示を切り替えるコントロール
  • 17. Android Studio• 表示を切り替えるコントロール
  • 18. Android Studio• テーマ設定
  • 19. Android Studio• ロケール設定
  • 20. Android Studio• Fragment のレイアウトもプレビュー
  • 21. Android Studio• マウスオーバーでリソース名を表示• リソース ID のサジェストもパワフルに• フレームワークにアノテーションが付いている• int がどのリソース ID かが指定されるようになった
  • 22. Gradle
  • 23. Gradle• 新しいビルドシステム• Groovy で記述• ant にはない依存関係管理• プログラムも仕込めるbuildscript {repositories {maven { url http://repo1.maven.org/maven2 }}dependencies {classpath com.android.tools.build:gradle:0.4}}apply plugin: androiddependencies {compile files(libs/android-support-v4.jar)}android {compileSdkVersion 17buildToolsVersion "17.0.0"defaultConfig {minSdkVersion 8targetSdkVersion 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’)}}
  • 24. Gradle• 新しいビルドシステム• android 向けプラグイン完備• AndroidManifest が書き換え可• 有料版/無料版といったバージョンの振り分けもできるbuildscript {repositories {maven { url http://repo1.maven.org/maven2 }}dependencies {classpath com.android.tools.build:gradle:0.4}}apply plugin: androiddependencies {compile files(libs/android-support-v4.jar)}android {compileSdkVersion 17buildToolsVersion "17.0.0"defaultConfig {minSdkVersion 8targetSdkVersion 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’)}}
  • 25. Gradle• 新しいビルドシステム• sourceSets の設定で古いプロジェクトにも適用可buildscript {repositories {maven { url http://repo1.maven.org/maven2 }}dependencies {classpath com.android.tools.build:gradle:0.4}}apply plugin: androiddependencies {compile files(libs/android-support-v4.jar)}android {compileSdkVersion 17buildToolsVersion "17.0.0"defaultConfig {minSdkVersion 8targetSdkVersion 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’)}}
  • 26. Gradle• コマンド同封• ./gradlew buildbuildscript {repositories {maven { url http://repo1.maven.org/maven2 }}dependencies {classpath com.android.tools.build:gradle:0.4}}apply plugin: androiddependencies {compile files(libs/android-support-v4.jar)}android {compileSdkVersion 17buildToolsVersion "17.0.0"defaultConfig {minSdkVersion 8targetSdkVersion 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’)}}
  • 27. $  ./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:buildBUILD  SUCCESSFULTotal  time:  9.003  secs$  ls  HogeApp/build/apk/HogeApp-­‐debug-­‐unaligned.apkHogeApp-­‐release-­‐unsigned.apk
  • 28. Gradle for Android
  • 29. Gradle for Android• Android 用のタスクが一杯$  ./gradlew  tasks
  • 30. 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: androiddependencies {compile files(libs/android-support-v4.jar)}android {compileSdkVersion 17buildToolsVersion "17.0.0"defaultConfig {minSdkVersion 8targetSdkVersion 16versionCode 1versionName “1.0.0”}}AndroidManifestの修正コミットが不要に
  • 31. Gradle for Android• AndroidManifest をいじる• デバッグ用途の• デバッグ用のパッケージ名• デバッグ用のバージョン名buildscript {repositories {maven { url http://repo1.maven.org/maven2 }}dependencies {classpath com.android.tools.build:gradle:0.4}}apply plugin: androiddependencies {compile files(libs/android-support-v4.jar)}android {compileSdkVersion 17buildToolsVersion "17.0.0"defaultConfig {minSdkVersion 8targetSdkVersion 16versionCode 1versionName “1.0.0”}sourceSets {buildType {debug {packageNameSuffix “.debug”}}}}リリースビルドとの共存が可能に
  • 32. Android StudioGradle