つ部 Android Studio 勉強会 12/7

155
Android Studio 勉強会 @sugoi_wada 12/7

description

12/7に行われたつ部Android Studio勉強会の資料です。口語で説明しているスライドはあまり説明がありません。

Transcript of つ部 Android Studio 勉強会 12/7

Page 1: つ部 Android Studio 勉強会 12/7

Android Studio 勉強会

@sugoi_wada 12/7

Page 2: つ部 Android Studio 勉強会 12/7

自己紹介

Page 3: つ部 Android Studio 勉強会 12/7

@sugoi_wada• 和田 太陽(わだ ひかる)

• つ部副部長です

• 任期は今日まで!!

• 写真・年賀状販売してます

• Werckerサポートしてます

Page 4: つ部 Android Studio 勉強会 12/7

コミケ本

Page 5: つ部 Android Studio 勉強会 12/7

Android Studio

• About Android Studio

• Tips and Tricks

• Notice

• Build Variantsを覚えて懇親会に行こう

Page 6: つ部 Android Studio 勉強会 12/7

About Android Studio

Page 7: つ部 Android Studio 勉強会 12/7

• IntelliJ IDEAベースの新しいIDE

•Android公式

•Eclipse ADTより新しい機能がついて、改善されている

•Gradleベースのビルドシステム

•様々なテンプレートのサポート

•リッチなレイアウトエディタ

•Lintツールで使いやすさ、バージョン対応などの問題を解決

•proguard適用、署名可能

•複数のビルドタイプ・apk出力可能

•複数のモジュール(プロジェクト)対応

•Google Cloud Servicesとの連携

Page 8: つ部 Android Studio 勉強会 12/7

Gradleベースの ビルドシステム

Page 9: つ部 Android Studio 勉強会 12/7

Gradle• Groovyというスクリプト言語で記述

• 複数のapk出力・複数のアプリケーション(モジュール)管理ができる

• 依存関係を管理できる

• Android Studio 標準装備

• 新規プロジェクト生成時に一式ダウンロードしてくる

• ビルド操作などは、裏でGradleが走っている

Page 10: つ部 Android Studio 勉強会 12/7

様々なテンプレートのサポート

Page 11: つ部 Android Studio 勉強会 12/7
Page 12: つ部 Android Studio 勉強会 12/7
Page 13: つ部 Android Studio 勉強会 12/7

Revisions

Page 14: つ部 Android Studio 勉強会 12/7

•Android Studio v1.0 RC1 (November 2014)

•Android Studio v0.8.14 (October 2014)

•Android Studio v0.8.6 (August 2014)

•Android Studio v0.8.0 (June 2014)

•Android Studio v0.5.2 (May 2014)

•Android Studio v0.4.6 (March 2014)

•Android Studio v0.4.2 (Jan 2014)

•Android Studio v0.3.2 (Oct 2013)

•Android Studio v0.2.x (July 2013)

•Android Studio v0.1.x (May 2013)

Page 15: つ部 Android Studio 勉強会 12/7

•Android Studio v1.0 RC1 (November 2014)

•Android Studio v0.8.14 (October 2014)

•Android Studio v0.8.6 (August 2014)

•Android Studio v0.8.0 (June 2014)

•Android Studio v0.5.2 (May 2014)

•Android Studio v0.4.6 (March 2014)

•Android Studio v0.4.2 (Jan 2014)

•Android Studio v0.3.2 (Oct 2013)

•Android Studio v0.2.x (July 2013)

•Android Studio v0.1.x (May 2013)

Beta

Preview

Page 16: つ部 Android Studio 勉強会 12/7

Android Studio vs.

Eclipse ADT

Page 17: つ部 Android Studio 勉強会 12/7
Page 18: つ部 Android Studio 勉強会 12/7

Migrating from Eclipse

Page 19: つ部 Android Studio 勉強会 12/7

https://developer.android.com/

sdk/installing/migrate.html

Page 20: つ部 Android Studio 勉強会 12/7

画面の説明

Page 21: つ部 Android Studio 勉強会 12/7
Page 22: つ部 Android Studio 勉強会 12/7
Page 23: つ部 Android Studio 勉強会 12/7
Page 24: つ部 Android Studio 勉強会 12/7
Page 25: つ部 Android Studio 勉強会 12/7
Page 26: つ部 Android Studio 勉強会 12/7
Page 27: つ部 Android Studio 勉強会 12/7
Page 28: つ部 Android Studio 勉強会 12/7
Page 29: つ部 Android Studio 勉強会 12/7

Android SDK Manager

Page 30: つ部 Android Studio 勉強会 12/7

AVD Manager

Page 31: つ部 Android Studio 勉強会 12/7

Sync Project with Gradle Files

Page 32: つ部 Android Studio 勉強会 12/7

Run & Debug

Page 33: つ部 Android Studio 勉強会 12/7

プロジェクト構成

Page 34: つ部 Android Studio 勉強会 12/7
Page 35: つ部 Android Studio 勉強会 12/7

appモジュール (アプリ本体)

Page 36: つ部 Android Studio 勉強会 12/7
Page 37: つ部 Android Studio 勉強会 12/7
Page 38: つ部 Android Studio 勉強会 12/7
Page 39: つ部 Android Studio 勉強会 12/7
Page 40: つ部 Android Studio 勉強会 12/7
Page 41: つ部 Android Studio 勉強会 12/7
Page 42: つ部 Android Studio 勉強会 12/7
Page 43: つ部 Android Studio 勉強会 12/7
Page 44: つ部 Android Studio 勉強会 12/7

SDK Managerでインストール済みのものを 指定すること

Page 45: つ部 Android Studio 勉強会 12/7
Page 46: つ部 Android Studio 勉強会 12/7
Page 47: つ部 Android Studio 勉強会 12/7
Page 48: つ部 Android Studio 勉強会 12/7

これらは全て Project Stractureから

設定できる

※慣れた人は直接編集してOK

Page 49: つ部 Android Studio 勉強会 12/7

プロジェクトを右クリック→Open Module Settings

Page 50: つ部 Android Studio 勉強会 12/7

Notice

Page 51: つ部 Android Studio 勉強会 12/7

プラグインを使って 便利機能を追加する

Page 52: つ部 Android Studio 勉強会 12/7

Android Studio 1.0よりアイコンが変わった

Page 53: つ部 Android Studio 勉強会 12/7
Page 54: つ部 Android Studio 勉強会 12/7
Page 55: つ部 Android Studio 勉強会 12/7
Page 56: つ部 Android Studio 勉強会 12/7
Page 57: つ部 Android Studio 勉強会 12/7

APKファイルの場所

Page 58: つ部 Android Studio 勉強会 12/7

APKの生成方法

Build > Generate Signed APK…から署名付きAPKを作成するか、生成したいモジュールをRunする

Page 59: つ部 Android Studio 勉強会 12/7

HelloWorld/app/build/outputs/apk/

※ Android Studioからはこのディレクトリは見えない

Page 60: つ部 Android Studio 勉強会 12/7

Automatically Buildできない

Page 61: つ部 Android Studio 勉強会 12/7

できません

Page 62: つ部 Android Studio 勉強会 12/7

Build > Rebuild Project

Page 63: つ部 Android Studio 勉強会 12/7

Gradleファイルを編集したらSyncしなければならない

Page 64: つ部 Android Studio 勉強会 12/7

Sync Project with Gradle Files

Page 65: つ部 Android Studio 勉強会 12/7

Gradleファイルをいじると出てくるこいつのここを押す

Page 66: つ部 Android Studio 勉強会 12/7

今まで正常に動いていたプロジェクトが、Android Studioをアップデートしたらエラーを吐くようになった

Page 67: つ部 Android Studio 勉強会 12/7

よくあることです

Page 68: つ部 Android Studio 勉強会 12/7

最近は減りましたがCanary Channel だとあるかも

Page 69: つ部 Android Studio 勉強会 12/7

Channelを確認する

• 設定画面へ

• Android Studio > Preferences

• File > Settings…

• Updatesを確認

Page 70: つ部 Android Studio 勉強会 12/7

Stable Channel Beta Channel Dev Channel Canary Channel

自分に適したものを選ぶ

Page 71: つ部 Android Studio 勉強会 12/7

Build Variants

Page 72: つ部 Android Studio 勉強会 12/7

Build Variant = Build Type + Product Flavor

Page 73: つ部 Android Studio 勉強会 12/7

Build Variant = Build Type + Product Flavor

Page 74: つ部 Android Studio 勉強会 12/7

Build Type• デバッグ用・デモ用・リリース用など

• 用途に合わせたBuild Typeを設定できる

• ビルド時の設定を分けるのに使うと良い

• DebugとReleaseの2つがデフォルトで存在

• 手元でビルドするDebugとStoreに出すRelease

• 自由に増やすことができる

• Releaseビルドは署名をすることを強制するようになってた

Page 75: つ部 Android Studio 勉強会 12/7

Build Type• こんな時に使う(知らない間に使っている)

• デバッグ用はProguardかけたくないけど、リリース用にはかけたい

• デバッグ用には署名いらないけど、リリース用には署名しなきゃリリースできないな

• デバッグ用にはPackage名の語尾に.debugをつけたい

• デバッグ用はGoogleAnalyticsに情報を送信したくない

Page 76: つ部 Android Studio 勉強会 12/7

Build Type

Build Type Proguard Sign App suffix GA

Debug FALSE DEBUG .debug FALSE

Release TRUE OWN TRUE

Page 77: つ部 Android Studio 勉強会 12/7

Build Variant = Build Type + Product Flavor

Page 78: つ部 Android Studio 勉強会 12/7

Product Flavor• 用途に合わせて様々な味付けができる

• 無料/有料アプリ

• ステージング/プロダクション環境

• API LEVELの異なる2種類のアプリ

• を1つのプロジェクトで管理できる

Page 79: つ部 Android Studio 勉強会 12/7

Build Variant = Build Type + Product Flavor

Page 80: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Page 81: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses Dev Store Dev Store

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

テスト用のアプリと、Storeアプリが両方入れられる

Page 82: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses Dev Store Dev Store

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

テスト用のアプリと、Storeアプリが両方入れられる

FreeDebugビルド com.example.helloworld.debug.free FreeReleaseビルド com.example.helloworld.free ChargeReleaseビルド com.example.helloworld.debug ChargeReleaseビルド com.example.helloworld

Page 83: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses Dev Store Dev Store

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

テスト用のアプリと、Storeアプリが両方入れられる

未署名のアプリを入れたまま、Storeアプリを入れようとしてエラー吐かれることがなくなる

Page 84: つ部 Android Studio 勉強会 12/7

やってみよう

Page 85: つ部 Android Studio 勉強会 12/7

まずはDebugビルド特有の設定をする

Page 86: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Page 87: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Debugビルドのときは アプリケーションIDの語尾に.debugをつける

Page 88: つ部 Android Studio 勉強会 12/7

アプリケーションのgradleのビルドファイルを開く

Page 89: つ部 Android Studio 勉強会 12/7

app/build.gradleapply plugin: 'com.android.application' ... android { ... buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } }

Page 90: つ部 Android Studio 勉強会 12/7

app/build.gradleapply plugin: 'com.android.application' ... android { ... buildTypes { debug { applicationIdSuffix ".debug" } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } }

Page 91: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Debugビルドのときは アプリ名の語尾にDebugをつける

Page 92: つ部 Android Studio 勉強会 12/7

app/srcの上で右クリック→New→Directory debug という名前のディレクトリを作成する

Page 93: つ部 Android Studio 勉強会 12/7

app/src/debugの上で右クリック→New→Directory res という名前のディレクトリを作成する

app/src/debug/resの上で右クリック→New→Directory values という名前のディレクトリを作成する

Page 94: つ部 Android Studio 勉強会 12/7

app/src/main/res/values/strings.xml を

app/src/debug/res/values/ にコピー

Page 95: つ部 Android Studio 勉強会 12/7

app/src/debug/res/values/strings.xml

<?xml version="1.0" encoding="utf-8"?> <resources>

<string name="app_name">HelloWorldDebug</string> <string name="hello_world">Hello world!</string> <string name="action_settings">Settings</string>

</resources> 削除

挿入

Page 96: つ部 Android Studio 勉強会 12/7

DebugビルドとReleaseビルドの違いを確認してみる

まずはDebugビルドを確認

Page 97: つ部 Android Studio 勉強会 12/7

①Build Variants

②debugにする(なってる)

Page 98: つ部 Android Studio 勉強会 12/7

③実行

Page 99: つ部 Android Studio 勉強会 12/7

アプリ名がHelloWorldDebugになってる! (applicationIdはAndroid Studioからチェックできます)

Page 100: つ部 Android Studio 勉強会 12/7

①Build Variants

②releaseにする

③実行する

Page 101: つ部 Android Studio 勉強会 12/7

署名が無いので実行できない… (コマンドだとできるけど今回は省略)

急遽、Releaseビルドには署名をしよう

Page 102: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Sign FALSE TRUE FALSE TRUE

Page 103: つ部 Android Studio 勉強会 12/7

署名の準備

• キーストアとキーが必要

• Storeにアップデートする際には署名が必須

• 本題から逸れるのでサクッと作ってしまいます

Page 104: つ部 Android Studio 勉強会 12/7

キーストアとキー作成• Buildメニュー→Generate Signed APK…

Page 105: つ部 Android Studio 勉強会 12/7

Passwordは全て123456と打ってます 本当は各項目きちんと入力してください

の内容を覚えておく

OK押したら 先へは進まず ウィンドウを 閉じる

Page 106: つ部 Android Studio 勉強会 12/7

プロジェクトを右クリック→Open Module Settings

Page 107: つ部 Android Studio 勉強会 12/7

さっきの署名情報入力

Page 108: つ部 Android Studio 勉強会 12/7
Page 109: つ部 Android Studio 勉強会 12/7

署名完了! これでReleaseビルドが

できる

Page 110: つ部 Android Studio 勉強会 12/7

アプリ名がHelloWorldになってる! (applicationIdはAndroid Studioからチェックできます)

Page 111: つ部 Android Studio 勉強会 12/7
Page 112: つ部 Android Studio 勉強会 12/7

applicationIdが異なるため、DebugとReleaseが共存している

Page 113: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Sign FALSE TRUE FALSE TRUE

Page 114: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Sign FALSE TRUE FALSE TRUE

FreeとChargeのFlavorを作成する

Page 115: つ部 Android Studio 勉強会 12/7

プロジェクトを右クリック→Open Module Settings

Page 116: つ部 Android Studio 勉強会 12/7
Page 117: つ部 Android Studio 勉強会 12/7
Page 118: つ部 Android Studio 勉強会 12/7

Build Variantsを確認

4種類に増えた!

Page 119: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Sign FALSE TRUE FALSE TRUE

Page 120: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Sign FALSE TRUE FALSE TRUE

FreeReleaseビルドのときは ApplicationIdの末尾に.freeをつける アプリ名の末尾にLightをつける

Page 121: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Sign FALSE TRUE FALSE TRUEFreeReleaseビルドのときは ApplicationIdの末尾に.freeをつける

Page 122: つ部 Android Studio 勉強会 12/7

アプリケーションのgradleのビルドファイルを開く

Page 123: つ部 Android Studio 勉強会 12/7

app/build.gradle

apply plugin: 'com.android.application' ... android { ... productFlavors { free { } charge { } } }

Page 124: つ部 Android Studio 勉強会 12/7

app/build.gradleapply plugin: 'com.android.application' ... android { ... productFlavors { free { applicationId "com.example.helloworld.free" } charge { } } }

defaultConfigのapplicationIdを参照

※ProductFlavorはapplicationIdSuffixで  末尾だけ設定できない

Page 125: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Sign FALSE TRUE FALSE TRUEFreeReleaseビルドのときは アプリ名の末尾にLightをつける

Page 126: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Sign FALSE TRUE FALSE TRUEDebugのときってどうやったっけ…?

Page 127: つ部 Android Studio 勉強会 12/7

app/src/debugの上で右クリック→New→Directory res という名前のディレクトリを作成する

app/src/debug/resの上で右クリック→New→Directory values という名前のディレクトリを作成する

Page 128: つ部 Android Studio 勉強会 12/7

これや!

Page 129: つ部 Android Studio 勉強会 12/7

Debugディレクトリごとコピーして、貼り付け 名前をどうするか聞かれるので、freeとする

アプリ名の末尾を DebugからLightに変更

Page 130: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Sign FALSE TRUE FALSE TRUE

確認してみる

Page 131: つ部 Android Studio 勉強会 12/7

①Build Variants

②freeReleaseにする

③実行

Page 132: つ部 Android Studio 勉強会 12/7

アプリ名がHelloWorldFreeになってる! (applicationIdはAndroid Studioからチェックできます)

Page 133: つ部 Android Studio 勉強会 12/7

ここでひとつの疑問

Page 134: つ部 Android Studio 勉強会 12/7

FreeDebugビルドの場合はどうなるか? (やってみよう)

Page 135: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Sign FALSE TRUE FALSE TRUE

Page 136: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Sign FALSE TRUE FALSE TRUE

Freeのビルド時は広告をつける Chargeのビルド時は広告なしにする

Page 137: つ部 Android Studio 勉強会 12/7

今日は本物の広告は 使えないので…

Page 138: つ部 Android Studio 勉強会 12/7

Flavorごとにソースコードを書き分ける方法を伝授します

(2パターン)

Page 139: つ部 Android Studio 勉強会 12/7

パターン1 BuildConfigで書き分ける

Page 140: つ部 Android Studio 勉強会 12/7

BuildConfigとは?

Page 141: つ部 Android Studio 勉強会 12/7

app/build/generated/source/buildConfig/…/buildConfig.javapublic final class BuildConfig { public static final boolean DEBUG = false; public static final String APPLICATION_ID = "com.example.helloworld.free"; public static final String BUILD_TYPE = "release"; public static final String FLAVOR = "free"; public static final int VERSION_CODE = 1; public static final String VERSION_NAME = "1.0"; /** * @deprecated Use {@link #APPLICATION_ID} */ @Deprecated public static final String PACKAGE_NAME = "com.example.helloworld.free"; }

Page 142: つ部 Android Studio 勉強会 12/7

app/build/generated/source/buildConfig/…/buildConfig.javapublic final class BuildConfig { public static final boolean DEBUG = false; public static final String APPLICATION_ID = "com.example.helloworld.free"; public static final String BUILD_TYPE = "release"; public static final String FLAVOR = "free"; public static final int VERSION_CODE = 1; public static final String VERSION_NAME = "1.0"; /** * @deprecated Use {@link #APPLICATION_ID} */ @Deprecated public static final String PACKAGE_NAME = "com.example.helloworld.free"; }

これで書き分ける

Page 143: つ部 Android Studio 勉強会 12/7

試しにテキストビューの文字を置き換えてみる

Page 144: つ部 Android Studio 勉強会 12/7

app/src/main/res/layout/activity_main.xml

idを付与

Page 145: つ部 Android Studio 勉強会 12/7

app/src/main/java/com.xxx/MainActivity

Page 146: つ部 Android Studio 勉強会 12/7

freeDebugchargeDebug

Page 147: つ部 Android Studio 勉強会 12/7

パターン2 クラスをごっそり書き分ける

Page 148: つ部 Android Studio 勉強会 12/7

app/srcの上で右クリック→New→Directory charge という名前のディレクトリを作成する

Page 149: つ部 Android Studio 勉強会 12/7

mainのjavaディレクトリを chargeとfreeディレクトリにコピペ

Page 150: つ部 Android Studio 勉強会 12/7

mainの中のMainActivityは削除

Page 151: つ部 Android Studio 勉強会 12/7

こうすると、Chargeビルド時はcharge内のファイルのみコンパイルしてクラス化する

↑↓表示のされ方も違ってくる

Page 152: つ部 Android Studio 勉強会 12/7

Chargeの方のMainActivity

Page 153: つ部 Android Studio 勉強会 12/7

freeの方のMainActivity

Page 154: つ部 Android Studio 勉強会 12/7

freeDebugchargeDebug

Page 155: つ部 Android Studio 勉強会 12/7

Flavor Free Charge

Build Type Debug Release Debug Release

Uses 手元で デバッグ

Store (無料)

デバッグ・ 営業

Store (有料)

App Id suffix .free.debug .free .debug

App name ◯◯Debug ◯◯Light ◯◯Debug ◯◯

Ad TRUE TRUE FALSE FALSE

Sign FALSE TRUE FALSE TRUE