- Getting the Code
- Using the Bundled Android SDK/NDK
- Running the AppRTCMobile App
- Running WebRTC Native Tests on an Android Device
- Running WebRTC Instrumentation Tests on an Android Device
Getting the Code
Android development is only supported on Linux.
Install prerequisite software
Set the target OS in your environment:
Create a working directory, enter it, and run:
fetch --nohooks webrtc_android gclient sync
This will fetch a regular WebRTC checkout with the Android-specific parts
added. The same checkout can be used for both Linux and Android development,
depending on the OS you set in
GYP_DEFINES (see above).
See Development for instructions on how to update the code, building etc.
NOTICE: We’re in the middle of migrating from GYP to GN for generating project files, so right now both GYP_DEFINES needs to be set and a GN command line needs to be invoked to generate the project files.
Generate projects using GN.
Make sure your current working directory is src/ of your workspace. Then run:
gn gen out/Default --args='target_os="android" target_cpu="arm"'
You can specify a directory of your own choice instead of
out/Default, to enable managing multiple configurations in parallel.
- To build for ARM64: use
- To build for 32-bit x86:
- To build for 64-bit x64:
- To build for ARM64: use
ninja -C out/Default
Using the Bundled Android SDK/NDK
In order to use the Android SDK and NDK that is bundled in
third_party/android_tools, run this to get it included in your
Then you’ll have
adb and all the other Android tools in your
Running the AppRTCMobile App
AppRTCMobile is an Android application using WebRTC Native APIs via JNI (JNI wrapper is documented here).
For instructions on how to build and run, see webrtc/examples/androidapp/README.
Running WebRTC Native Tests on an Android Device
To build APKs with the WebRTC native tests, follow these instructions.
Ensure you have an Android device set in Developer mode connected via USB.
Compile as described in the section above.
To see which tests are available: look in
Run a test on your device:
If you want to limit to a subset of tests, use the
--gtest_filter flag, e.g.
out/Debug/bin/run_modules_unittests \ --gtest_filter=RtpRtcpAPITest.SSRC:RtpRtcpRtcpTest.*
NOTICE: The first time you run a test, you must accept a dialog on the device!
If want to run Release builds instead; build
out/Release and use the scripts
Running WebRTC Instrumentation Tests on an Android Device
The instrumentation tests (like AppRTCMobileTest and libjingle_peerconnection_android_unittest) gets scripts generated in the same location as the native tests described in the previous section.