Help us understand the problem. What is going on with this article?

gradle?ナニそれ美味しいの? -gradleを知らなくても出来るAndroidStudioで簡単ビルド構成-

More than 3 years have passed since last update.

Androidの開発環境がEclipseからAndroidStudioに変わってしばらくたちました。
しかし、いっこうになじめないのがgradle…
build.gradleやらsettings.gradleやら、いぱいあるし、ベータの頃からプロパティもころころ変わる。
「もう嫌だ!自分が作りたいのはアプリでこんなのをやりたいんじゃないやい!」と誰もが思ったことでしょう。
でも気づきました、AndroidStudioのGUI操作だけで簡単にビルド構成が作れるし、いじれるんです。もちろん関連するgradleのファイルも全部自動生成されます。
むしろ何で今まで気づかなかったんだろう…?
Androidのビルドとかでググると、だいたいgradleの記述方法だったりするので、あんまり知られてないのかな?と思い。
今後も使えそうなので、まずは簡単なやつをまとめてみます。

環境

  • AndroidSutudio 1.3.2

まずはアプリを新規作成

NewProject.png
Welcome画面で普通に作ります。
この先は何を選んでもOKです。
今回はすべて初期値のまま「Next」で進めてます。

NewProject2.png
出来ました。
この状態で実行することも出来ます。
プロジェクトを作るだけで、gradleのビルド構成を自動生成してくれるんですね!
GradleScriptsの下を見てみると、build.gradle(Module:app)とかsettings.gradleとかありますね。
まあ、今回は中身までは追いかけませんし、直接いじることもありません。
手元で動かすだけなら、gradleなんかまったく知らなくても無問題ですね!

リリース用アプリをビルドしよう

前節でプロジェクトを生成するだけで実行することが出来ることは分かりました。
しかし、このままではGooglePlayにリリースするapkをビルドすることは出来ません。
ためしにreleaseビルドをしてみましょう。
AndroidStudioのウインドウ左下の「BuildVariants」をクリックして開きます。
「Build Variant」の列がdebugになっているので、releaseに変えて実行してみましょう。
release.png
実行に失敗して、エラーメッセージが表示されます。
「app-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.」
署名が出来ていないといわれています。
releaseビルドではkeystoreを明示してあげる必要があるため、その設定をおこないます。
先ほどのエラーメッセージについているリンク、もしくは「Project Structure」のアイコンをクリックして「Project Structure」ウインドウを開きます。
release2.png
開いたら、「Modules」から「app」を選択して「signing」タブを開きます。
release3.png
ここでは、keystoreの登録をおこないます。
「+」をクリックして各入力項目に適切なものを入力してください。
release4.png
今回は、みんな持ってるdebug.keystoreを使っています。
「Name」の項目は何でもOKです。分かりやすいものをつけましょう。
入力が完了したら、「Build Types」タブに移動します。
移動すると、「debug」と「release」の項目があるので、「release」を選択します。
「Signing Config」の項目が空欄になっているので、プルダウンをクリックすると先ほど「Signing」タブで作成したNameが出てくるので選択します。
release5.png
ここまで入力できたらOKボタンをクリックします。
ウインドウが閉じるので、再度アプリを実行してみましょう。
これで、releseビルドもできるようになりました!
build.gradleをのぞいてい見ると中身が書き換わってたりしますが、気にしません!

releaseビルドのアプリと、debugビルドのアプリを共存させる

これでreleaseビルドはできるようになりましたが、気づいたでしょうか?
そうです!最初に実行したdebugビルドのアプリをreleaseビルドのアプリが上書きでインストールされてしまったのです!
このままでは、アプリ開発するためにreleaseビルドのアプリをアンインストールしなければなりません。
そんなことは面倒なので、releaseビルドのアプリとdebugビルドのアプリを共存できるようにしましょう。
端末内のアプリのユニーク製を決めているのは皆さんご存知「パッケージ名」ですね。
なので、ビルドごとにこのパッケージ名を変更する設定をおこないます。
先ほどと同じように、アイコンをクリックして「Project Structure」を開きます。
unizon.png
「Modules」で「app」を選択して、「Build Types」タブを選択します。
今回はdebugビルドのときのパッケージ名を変更するので、debugを選択します。
いくつか入力フォームがありますが、パッケージ名を変更するのは、「Application Id Suffix」です。
ここに入力しておくと、ビルドしたときのパッケージ名が「アプリのパッケージ名 + 入力した値」になります。
unizon2.png
入力できたら、OKをクリックします。
ウインドウが閉じたら、「Build Variant」を「debug」に変更して実行してみましょう。
unizon3.png
インストールできたら、端末のアプリリストを見てみましょう。
releaseビルドのアプリとは別アプリとしてインストールされています。
Screenshot_2015-09-17-01-20-43.png
ここでも、gradleのコードが自動生成され変更されていますが、そんなことはどうでもいいですね!

こんな感じで、gradleなんてぜんぜん分からなくても、AndroidStudioのGUIだけでビルド構成をゴリゴリいじることが出来ます。
今回書いたのはほんのさわりでまだまだ出来ることはいっぱいあります。
Moduleを増して(WearとかLibとか)のビルドもgradleを直接触ることなく出来ますし、リソースファイルの差し替えなんかもらくらく出来ます。
今回の投稿の需要があったらこれらもまとめてみたいと思います。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away