Androidの開発環境がEclipseからAndroidStudioに変わってしばらくたちました。
しかし、いっこうになじめないのがgradle…
build.gradleやらsettings.gradleやら、いぱいあるし、ベータの頃からプロパティもころころ変わる。
「もう嫌だ!自分が作りたいのはアプリでこんなのをやりたいんじゃないやい!」と誰もが思ったことでしょう。
でも気づきました、AndroidStudioのGUI操作だけで簡単にビルド構成が作れるし、いじれるんです。もちろん関連するgradleのファイルも全部自動生成されます。
むしろ何で今まで気づかなかったんだろう…?
Androidのビルドとかでググると、だいたいgradleの記述方法だったりするので、あんまり知られてないのかな?と思い。
今後も使えそうなので、まずは簡単なやつをまとめてみます。
環境
- AndroidSutudio 1.3.2
まずはアプリを新規作成
Welcome画面で普通に作ります。
この先は何を選んでもOKです。
今回はすべて初期値のまま「Next」で進めてます。
出来ました。
この状態で実行することも出来ます。
プロジェクトを作るだけで、gradleのビルド構成を自動生成してくれるんですね!
GradleScriptsの下を見てみると、build.gradle(Module:app)とかsettings.gradleとかありますね。
まあ、今回は中身までは追いかけませんし、直接いじることもありません。
手元で動かすだけなら、gradleなんかまったく知らなくても無問題ですね!
リリース用アプリをビルドしよう
前節でプロジェクトを生成するだけで実行することが出来ることは分かりました。
しかし、このままではGooglePlayにリリースするapkをビルドすることは出来ません。
ためしにreleaseビルドをしてみましょう。
AndroidStudioのウインドウ左下の「BuildVariants」をクリックして開きます。
「Build Variant」の列がdebugになっているので、releaseに変えて実行してみましょう。
実行に失敗して、エラーメッセージが表示されます。
「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」ウインドウを開きます。
開いたら、「Modules」から「app」を選択して「signing」タブを開きます。
ここでは、keystoreの登録をおこないます。
「+」をクリックして各入力項目に適切なものを入力してください。
今回は、みんな持ってるdebug.keystoreを使っています。
「Name」の項目は何でもOKです。分かりやすいものをつけましょう。
入力が完了したら、「Build Types」タブに移動します。
移動すると、「debug」と「release」の項目があるので、「release」を選択します。
「Signing Config」の項目が空欄になっているので、プルダウンをクリックすると先ほど「Signing」タブで作成したNameが出てくるので選択します。
ここまで入力できたらOKボタンをクリックします。
ウインドウが閉じるので、再度アプリを実行してみましょう。
これで、releseビルドもできるようになりました!
build.gradleをのぞいてい見ると中身が書き換わってたりしますが、気にしません!
releaseビルドのアプリと、debugビルドのアプリを共存させる
これでreleaseビルドはできるようになりましたが、気づいたでしょうか?
そうです!最初に実行したdebugビルドのアプリをreleaseビルドのアプリが上書きでインストールされてしまったのです!
このままでは、アプリ開発するためにreleaseビルドのアプリをアンインストールしなければなりません。
そんなことは面倒なので、releaseビルドのアプリとdebugビルドのアプリを共存できるようにしましょう。
端末内のアプリのユニーク製を決めているのは皆さんご存知「パッケージ名」ですね。
なので、ビルドごとにこのパッケージ名を変更する設定をおこないます。
先ほどと同じように、アイコンをクリックして「Project Structure」を開きます。
「Modules」で「app」を選択して、「Build Types」タブを選択します。
今回はdebugビルドのときのパッケージ名を変更するので、debugを選択します。
いくつか入力フォームがありますが、パッケージ名を変更するのは、「Application Id Suffix」です。
ここに入力しておくと、ビルドしたときのパッケージ名が「アプリのパッケージ名 + 入力した値」になります。
入力できたら、OKをクリックします。
ウインドウが閉じたら、「Build Variant」を「debug」に変更して実行してみましょう。
インストールできたら、端末のアプリリストを見てみましょう。
releaseビルドのアプリとは別アプリとしてインストールされています。
ここでも、gradleのコードが自動生成され変更されていますが、そんなことはどうでもいいですね!
こんな感じで、gradleなんてぜんぜん分からなくても、AndroidStudioのGUIだけでビルド構成をゴリゴリいじることが出来ます。
今回書いたのはほんのさわりでまだまだ出来ることはいっぱいあります。
Moduleを増して(WearとかLibとか)のビルドもgradleを直接触ることなく出来ますし、リソースファイルの差し替えなんかもらくらく出来ます。
今回の投稿の需要があったらこれらもまとめてみたいと思います。