コード

Android Studioを使わないでアプリをビルドするCUI(Docker)環境構築

  • android studioが不要なandroidアプリのビルド環境を作りたい
  • 今の環境を残したままSDKやNDKバージョンが違う環境を作りたい
  • Android Studioを立ち上げると起動が遅いので嫌気がさしている

Dockerコンテナを使ってビルド環境を作ると、そういった課題を解決することができます。

ゴール

最終的にAndroidアプリがビルドできる以下の環境を構築します。

  • ホストOS: Windows 10 64bit
  • Docker for Windows:18.09.2
  • ゲストOS:Ubuntu16 16.04
  • Android SDK:24と28
  • Android NDK:リビジョン16b
  • CMake:3.6.411459
  • gcc/g++:4.9

NDKに関して、2019/5月時点でのNDKの最新の安定版はリビジョン19cですが、今回はリビジョン16bを使います。というのも、リビジョン18からgccが非サポートとなり、代わってclangが正式サポートとなっています。今回はCMakeとgccを使いたいため、リビジョン16bを利用します。

Dockerfile

先に結論を書きます。最終的に作成したDockerfileは以下のようになります。

解説

Open JDKのインストール

JavaをビルドするためにOpen JDKをインストールします。

インストールするライブラリのバージョン指定

sdk-tools、cmake、ndkのバージョンを指定します。この数値を変更すれば別のバージョンのものをインストールできます。

Android SDKのインストール

zipをwgetでダウンロードして解凍します。最後の2行はsdk-toolsを使ってインストールする際に必要となるファイルです。このタイミングで作っておきます。

ビルドツールのインストール

先ほどダウンロードしたsdk-toolsを使って各種ツールをダウンロードします。yes | sdkmanagerとすることでsdkmanagerを使うと求められる同意を承認しています。

build-toolsだけあればビルドできそうな気がしますが、adb等の各種ツールも一緒にダウンロードしています。

ターゲットとするAPIによって$ANDROID_COMPILE_SDKを指定する必要があります。

最後に

今回作成した環境を用いれば、Android Studioで作成したプロジェクトであればbuild.shを叩くとandroidアプリ(apk)が作成できると思います。またCMakeを用いることでc++向けのライブラリをビルドすることもできます。

今回はubuntuをベースに作成しましたが、少々容量が大きくなってしまいました。alpineを使うとより軽量なイメージが作れると思います。時間があれば挑戦してみたいと思います。

-コード
-,

Copyright© ドナちきブログ , 2020 All Rights Reserved Powered by AFFINGER5.