Add an example app for Android native API.
The app is a simple loopback demo demonstrating the usage of Android
native API. This is an initial version and I will add support for
HW codecs etc. in the future.
Bug: webrtc:8769
Change-Id: Ifb6209769dabeb8ca3185b969a1ef8afd6d84390
Reviewed-on: https://webrtc-review.googlesource.com/60540
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#22385}
diff --git a/examples/androidnativeapi/BUILD.gn b/examples/androidnativeapi/BUILD.gn
new file mode 100644
index 0000000..a98d63d
--- /dev/null
+++ b/examples/androidnativeapi/BUILD.gn
@@ -0,0 +1,76 @@
+import("//webrtc.gni")
+
+rtc_android_apk("androidnativeapi") {
+ testonly = true
+ apk_name = "androidnativeapi"
+ android_manifest = "AndroidManifest.xml"
+
+ java_files = [
+ "java/org/webrtc/examples/androidnativeapi/MainActivity.java",
+ "java/org/webrtc/examples/androidnativeapi/CallClient.java",
+ ]
+
+ deps = [
+ ":resources",
+ "//sdk/android:libjingle_peerconnection_java",
+ ]
+
+ shared_libraries = [ ":examples_androidnativeapi_jni" ]
+}
+
+generate_jni("generated_jni") {
+ testonly = true
+ sources = [
+ "java/org/webrtc/examples/androidnativeapi/CallClient.java",
+ ]
+ jni_package = ""
+ jni_generator_include = "//sdk/android/src/jni/jni_generator_helper.h"
+}
+
+rtc_shared_library("examples_androidnativeapi_jni") {
+ testonly = true
+ sources = [
+ "jni/androidcallclient.cc",
+ "jni/androidcallclient.h",
+ "jni/onload.cc",
+ ]
+
+ suppressed_configs += [ "//build/config/android:hide_all_but_jni_onload" ]
+ configs += [ "//build/config/android:hide_all_but_jni" ]
+
+ if (is_clang) {
+ # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
+ suppressed_configs += [
+ "//build/config/clang:extra_warnings",
+ "//build/config/clang:find_bad_constructs",
+ ]
+ }
+
+ deps = [
+ ":generated_jni",
+ "//api:libjingle_peerconnection_api",
+ "//api/audio_codecs:builtin_audio_decoder_factory",
+ "//api/audio_codecs:builtin_audio_encoder_factory",
+ "//logging:rtc_event_log_impl_base",
+ "//media:rtc_audio_video",
+ "//media:rtc_internal_video_codecs",
+ "//modules/audio_processing",
+ "//modules/utility:utility",
+ "//pc:libjingle_peerconnection",
+ "//pc:pc_test_utils",
+ "//rtc_base:rtc_base",
+ "//rtc_base:rtc_base_approved",
+ "//sdk/android:native_api_base",
+ "//sdk/android:native_api_jni",
+ "//sdk/android:native_api_video",
+ "//system_wrappers:field_trial_default",
+ "//system_wrappers:metrics_default",
+ "//system_wrappers:runtime_enabled_features_default",
+ ]
+}
+
+android_resources("resources") {
+ testonly = true
+ resource_dirs = [ "res" ]
+ custom_package = "org.webrtc.examples.androidnativeapi"
+}