GoogleのWebRTC Androidをビルドする機会があり、所々つまづいたので残しておきます。
参考URL
https://webrtc.googlesource.com/src/+/main/docs/native-code/android/index.md
1.Ubuntu Linux環境の構築
VirtualBoxにUbuntuを導入する手順はよく転がっているので、詳細は割愛します。
仮想環境の構築
ビルド環境はLinuxのみがサポートされているので、私の場合はMacにVirtualBoxをインストールしUbuntu Linuxの環境を構築しました。
注意点としては、まずストレージのサイズですがデフォルトの(確か)10GBだと小さすぎるので64GBのストーレジを割り当てたことと、ビルド速度に影響するCPUの個数も4個割り当てました。1個だとビルド時間がかなり長くなります。メインメモリも8GB割り当てました。
Ubuntu Linuxのインストール
Ubuntuは言語を日本語でインストールすると画面にウインドウが収まらなくてボタンが押せなかったので言語をEnglishで最小構成(Minimal installation)インストールしました。Englishならギリギリボタンが押せます。
800x600のサイズで画面が始まるので文字が小さいけど頑張ってインストール。
インストール後はSettings -> Display からいい感じの大きさに変更しました。
あとソースのダウンロードなど結構時間がかかるのでSettings -> Power SavingでBlank ScreenをNeverにして画面にロックがかからないようにしました。
2.Chromium depot toolsをインストールする
AppRTCをビルドする時に利用するコマンドが使えるようにUbuntu LinuxにChromium depot toolsをインストールします。
- UbuntuでTerminalを起動します
gitのインストール
gitが入っていなかったのでインストールします
$ sudo apt install git
Chromium depot toolsのソースを取得
適当なところにディレクトリを作って
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
パスを通す
$ export PATH=/home/atsuo/Source/depot_tools:$PATH
3. webrtc_androidのビルド
gccを使うのでインストールしておく
$ sudo apt install gcc
適当なところにディレクトリを作成して
$ fetch --nohooks webrtc_android
$ gclient sync
↑結構時間がかかります。
2012/10/14時点のソースだとdebugビルドすると通話切断時にクラッシュする問題があるのでreleaseビルドします
ビルド!!
$ cd src
$ gn gen out/Release --args='target_os="android" target_cpu="arm64" is_debug=false'
$ autoninja -C out/Release AppRTCMobile
out/Release/apks/AppRTCMobile.apk
↑
apkファイルができているのでスマホにインストールして
https://appr.tc/
→いつからかアクセスできなくなったので自身でホスティングしないといけない
とスマホとブラウザ間でビデオ通話できます。