Android Studioに乗り換えて

こんばんは!

エンジニアのTです。

最近EclipseからAndroid Studioへ移行しました。

Gradleというビルドツールが便利で重宝しています!
見た目もEclipseよりは見やすいので好きです。

今更感もありますが、忘備録としてGradleで一つのプロジェクトから複数の異なるapkを出力する方法を紹介します。プロダクトフレーバーというもので、リソースをそれぞれ異なるものに差し替えたり、PackageNameを変更したりする事ができます。

1. まずは適当なプロジェクトを作成します

2. Flavorの設定


ここで、開発環境用、ステージング環境用、本番環境用など、振り分けたい単位でフレーバーを追加していきます。今回は「develop」、「statging」、「product」と3つ作ってみました。

3. Build Typeの設定


ビルドタイプを追加していきます。今回は「debug」、「release」の二つ作成しました。
debugにはApplication Id Suffixに「.debug」を付けてみました。これでdebugでビルドする時のPackageNameの最後に「.debug」が付加されるようになります。

4. リソースの振り分け



「無料版と有料版」、「広告付き版と広告無し版」など、一つのプロジェクトで複数のタイプのapkを出力する事ができます。
Flavor単位やBuild Type単位、またはFlavor+Build Type毎にリソースを差し替える事ができます。srcフォルダ配下のmainと同じ階層にFlavor名かBuild Type名、またはFlavor名+Build Type名をキャメルケースで作って、mainと同じ階層になるように差分ファイルを配置します。

例えば、strings.xmlの中身は全て持ってくる必要はありません。差し替えたい部分だけ記述すれば、元のmainにあるstrings.xmlに上書きされて出力されます。

develop/res/values/strings.xml
<string name="app_name">開発用プロジェクトなんだぜ</string>

staging/res/values/strings.xml
<string name="app_name">ステージング用プロジェクトですぞ</string>

product/res/values/strings.xml
<string name="app_name">本番用プロジェクトです</string>

こんな感じです。mainのres/values/strings.xmlには全てのビルドで共通のリソースを入れてあります。values-hdpi、values-xhdpi等と使い分けるのと似ていますね。

5. Build Variantsの選択


4.までの手順が終ると、Build Variantsウインドウのリストから、作成したFlavorとBuild Typeの組み合わせを選ぶ事ができるようになっています。

6. ビルド

後は開発の状況に合わせてBuild Variantsを選択し、Runするだけです!

app/build/outputs/apk/配下に出力されたapkがあります。

app-develop-debug.apk
app-product-release.apk

こんな感じに、app-[Flavor名]-[Build Type名].apkという形になっているので解りやすいですね。


ここまで用意ができてしまえば、最後にサーバーのアドレスを書き換えたり、ログを消すなどといった煩わしい作業から解放されるので、とても効率が上がります!

自分も使いたてなので、まだまだ知らない事がいっぱいありますが、便利に使いこなせるようにいろいろいじってみたいと思います。

トンガルマンWebサイト
https://tongullman.co.jp/index.php
facebook
https://www.facebook.com/Tongullman

0 件のコメント:

コメントを投稿