【Unity】Android向けにビルドするときに見かけるGradle(グレイドル)って?
Unityで作ったゲームをAndroid向けにビルドする時にはGradleというオープンソースのビルドシステムを使います。
Androidビルドをしようとすると急に登場人物が増え始めるので、マラソンを走っていて後半に上り坂が続くような感覚になります。ゲームの作成が一通りできてきて、じゃあプラットフォーム向けにビルドしてみるか! とやってみたら知らないワードが飛び交ってるなんて、完成が見えてきたタイミングはただでさえ不安になるところで悩みがさらに増えてしまいます。
前もってビルドを試しておくことで心の準備ができるので、余裕のあるうちにこうした新出ワードを押さえておくとモチベーションを維持したまま完成まで進めるかもしれません。
というわけでこのページではAndroidビルドをする時に名前が出てくるGradle(グレイドル)について紹介します。
Android向けにビルドするときに見かけるGradle(グレイドル)って?
Gradleはオープンソースのビルド自動化システムで、いい感じにソフトウェアをビルドしてくれます。
どんな風に「いい感じ」なのかというと、
- 依存関係を管理
- ビルドの最適化
- ビルド設定をカスタマイズしやすい
といった面で利点があります。
UnityでAndroid向けにビルドする際はあまり意識しなくてもいい感じにビルドしてもらえますが、Gradleをカスタマイズして使う方法もあるので、自分好みに最適化したい! なんて時にはGradleについても調べてみるといいかもしれません。
Gradleそのものに加えて、Androidではどのように使うのかも知ると楽しいです。
依存関係を管理
ここでの依存関係とはパッケージやライブラリの依存関係を指しています。システムでは特定のパッケージやライブラリがないと動かないこともあるため、そのパッケージやライブラリをプロジェクトで使うようにしたいことも多々あります。
どのパッケージを使って、どのライブラリを使って、というのは自力で管理するのは大変だったりします。というのも、自分で別のプロジェクトで作ったライブラリなどを導入するならともかく、他の人が作ってくれたパッケージを使う場合は毎回自分でダウンロードしてインポートして……とやるのは大変です。
また、使用していたパッケージがバージョンアップしてさらに別のパッケージが必要になっていたりするかもしれません。ここまで自力で追うのは……地獄めいた作業になりそうです。パッケージ管理だけでアルバイトをお願いしたいレベル。
Gradleではこうした依存関係を解決するための方法が用意されていて、例えばパッケージの保存場所(リポジトリ)から指定した名前のパッケージを探してきてくれたりします。リモートだけではなくローカルからも探すことができるので、自分で作ったライブラリも他の人が作ってくれたパッケージもGradleで管理できます。
ビルドの最適化
「カスタマイズしやすい」という利点とも関連しますが、Gradleは設定を変えて最適化することができます。例えば開発用の構成とリリース用の構成を分けておいて、不要なタスクが発生しないようにすることもできます。多くの場合、開発中にはリリース用時に必要な設定は不要なので、ビルドする環境に応じて設定を分けておくことでビルドを高速化できます。
開発中にビルドで手が止まるのは結構痛いもので、ちょっとの修正のために3分とか5分待つのは辛いですもんね。
Unityだと設定ファイルに書くというよりは、Player SettingsやBuild Settingsの画面で設定するイメージかもしれません。速さの観点だけではなく、デバッグがしやすい設定で出力する、といったように切り替えられるのも便利な点です。
ビルド設定をカスタマイズしやすい
Gradleはビルド設定を柔軟にカスタマイズできることに強みを持っています。
プロジェクトに存在するアプリの駆動部分に関するスクリプトを変更することなくビルドの設定を変えることができるのは便利な点です。といってもUnityを使っていたりするとそれが当たり前のようにも感じますが、設定部分をファイル形式で保持することで再利用が容易になります。
設定を記載するのはbuild.gradleというファイルで、Android向けビルドをプロジェクトとしてエクスポートすると目にすることがあるかと思います。このファイルはgroovyというスクリプト言語を使って書かれたもので、設定を簡単に記載できるようになっています。
自分でカスタマイズする時にはgroovyの記法をある程度知っておくと便利です。Unityでビルドを行う場合は基本的にUnityに任せてしまうのが一番簡単ですが、カスタマイズしたいこともあるかもしれません。その場合はPlayer設定の下の方にあるPublishingの項目でカスタムのファイルを使うように設定できます。Gradle以外にも独自のファイルを追加することができます。
Unityの設定は自動的に書き込まれる
Player Settingsなどで設定した項目はUnityが自動的にbuild.gradleのファイルに書き込んでくれます。例えば以下のようにPlayer Settingsで指定するターゲットSDKのバージョンやアプリのパッケージ名、バージョン名などがファイルに書き込まれます。
なので、ユーザー側であまり意識しなくてもUnityがいい感じにやってくれます。アプリのapkファイルだけを出力する時にはGradleを意識することも少ないかもしれませんね。プロジェクトとして出力してAndroid Studioで中身を確認してみるとこうした設定を確認できるので、なんとなく気になったらチェックしてみると「なるほど、こうなっていたんだ!」とビルドプロセスの裏側が見えたりして楽しいです。
余談ですが、Unity2018.4あたりでビルドしたプロジェクトを開いたのでx86がまだいますが、Unity2019.3以降だとx86向けには出力できなくなっています。この辺りは以下の記事もご参照くださいな。
まとめ
Unityで作ったゲームをAndroid向けにビルドする時に名前を見かける(かもしれない)Gradleについて紹介しました。
ゲームを作るという観点ではそこまで意識することなくUnityがいい感じにやってくれます。これに加えてアプリをリリースするという観点ではどのようなプロセスでアプリがビルドされるのかを知ることは大切かもしれません。リリースする対象のプラットフォームにおける開発の仕組みを知っておけば、必要に応じてカスタマイズしてさらに最適な形でビルドできるようになりますからね。
必須ではなくできたらいいなくらいの感覚なので、プロジェクトの合間などに調べてみると楽しくなります。
ゲーム開発の攻略チャートを作りました!
-
前の記事
【Unity】Androidビルドで見かけるJDK、SDK、NDKのワードを解説 2020.12.19
-
次の記事
【Unity】Androidビルドで実は大事なマニフェストファイルの簡単な紹介 2020.12.21
コメントを書く