Remove static library loading from WebRTC Android SDK.
Bug: webrtc:7474
Change-Id: Ie75a5c12638be82d7bd91073744946ac21c48155
Reviewed-on: https://webrtc-review.googlesource.com/22962
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#20865}
diff --git a/examples/androidapp/src/org/appspot/apprtc/CallActivity.java b/examples/androidapp/src/org/appspot/apprtc/CallActivity.java
index 8da9dc7..dabff97 100644
--- a/examples/androidapp/src/org/appspot/apprtc/CallActivity.java
+++ b/examples/androidapp/src/org/appspot/apprtc/CallActivity.java
@@ -69,18 +69,6 @@
CallFragment.OnCallEvents {
private static final String TAG = "CallRTCClient";
- // Fix for devices running old Android versions not finding the libraries.
- // https://bugs.chromium.org/p/webrtc/issues/detail?id=6751
- static {
- try {
- System.loadLibrary("c++_shared");
- System.loadLibrary("boringssl.cr");
- System.loadLibrary("protobuf_lite.cr");
- } catch (UnsatisfiedLinkError e) {
- Logging.w(TAG, "Failed to load native dependencies: ", e);
- }
- }
-
public static final String EXTRA_ROOMID = "org.appspot.apprtc.ROOMID";
public static final String EXTRA_URLPARAMETERS = "org.appspot.apprtc.URLPARAMETERS";
public static final String EXTRA_LOOPBACK = "org.appspot.apprtc.LOOPBACK";
diff --git a/rtc_base/java/src/org/webrtc/Logging.java b/rtc_base/java/src/org/webrtc/Logging.java
index 1e1b3d8..f143d2f 100644
--- a/rtc_base/java/src/org/webrtc/Logging.java
+++ b/rtc_base/java/src/org/webrtc/Logging.java
@@ -30,8 +30,6 @@
public class Logging {
private static final Logger fallbackLogger = createFallbackLogger();
private static volatile boolean loggingEnabled;
- private static enum NativeLibStatus { UNINITIALIZED, LOADED, FAILED }
- private static volatile NativeLibStatus nativeLibStatus = NativeLibStatus.UNINITIALIZED;
private static Logger createFallbackLogger() {
final Logger fallbackLogger = Logger.getLogger("org.webrtc.Logging");
@@ -39,19 +37,6 @@
return fallbackLogger;
}
- private static boolean loadNativeLibrary() {
- if (nativeLibStatus == NativeLibStatus.UNINITIALIZED) {
- try {
- System.loadLibrary("jingle_peerconnection_so");
- nativeLibStatus = NativeLibStatus.LOADED;
- } catch (UnsatisfiedLinkError t) {
- nativeLibStatus = NativeLibStatus.FAILED;
- fallbackLogger.log(Level.WARNING, "Failed to load jingle_peerconnection_so: ", t);
- }
- }
- return nativeLibStatus == NativeLibStatus.LOADED;
- }
-
// TODO(solenberg): Remove once dependent projects updated.
@Deprecated
public enum TraceLevel {
@@ -81,19 +66,10 @@
public enum Severity { LS_SENSITIVE, LS_VERBOSE, LS_INFO, LS_WARNING, LS_ERROR, LS_NONE }
public static void enableLogThreads() {
- if (!loadNativeLibrary()) {
- fallbackLogger.log(Level.WARNING, "Cannot enable log thread because native lib not loaded.");
- return;
- }
nativeEnableLogThreads();
}
public static void enableLogTimeStamps() {
- if (!loadNativeLibrary()) {
- fallbackLogger.log(
- Level.WARNING, "Cannot enable log timestamps because native lib not loaded.");
- return;
- }
nativeEnableLogTimeStamps();
}
@@ -107,10 +83,6 @@
// TODO(bugs.webrtc.org/8491): Remove NoSynchronizedMethodCheck suppression.
@SuppressWarnings("NoSynchronizedMethodCheck")
public static synchronized void enableLogToDebugOutput(Severity severity) {
- if (!loadNativeLibrary()) {
- fallbackLogger.log(Level.WARNING, "Cannot enable logging because native lib not loaded.");
- return;
- }
nativeEnableLogToDebugOutput(severity.ordinal());
loggingEnabled = true;
}
diff --git a/sdk/android/api/org/webrtc/CallSessionFileRotatingLogSink.java b/sdk/android/api/org/webrtc/CallSessionFileRotatingLogSink.java
index 9b53ce4..1322487 100644
--- a/sdk/android/api/org/webrtc/CallSessionFileRotatingLogSink.java
+++ b/sdk/android/api/org/webrtc/CallSessionFileRotatingLogSink.java
@@ -11,10 +11,6 @@
package org.webrtc;
public class CallSessionFileRotatingLogSink {
- static {
- System.loadLibrary("jingle_peerconnection_so");
- }
-
private long nativeSink;
public static byte[] getLogData(String dirPath) {
diff --git a/sdk/android/api/org/webrtc/FileVideoCapturer.java b/sdk/android/api/org/webrtc/FileVideoCapturer.java
index 6b1fe6f..331f9a7 100644
--- a/sdk/android/api/org/webrtc/FileVideoCapturer.java
+++ b/sdk/android/api/org/webrtc/FileVideoCapturer.java
@@ -21,10 +21,6 @@
import java.util.concurrent.TimeUnit;
public class FileVideoCapturer implements VideoCapturer {
- static {
- System.loadLibrary("jingle_peerconnection_so");
- }
-
private interface VideoReader {
VideoFrame getNextFrame();
void close();
diff --git a/sdk/android/api/org/webrtc/Metrics.java b/sdk/android/api/org/webrtc/Metrics.java
index fac41ed..010e839 100644
--- a/sdk/android/api/org/webrtc/Metrics.java
+++ b/sdk/android/api/org/webrtc/Metrics.java
@@ -32,9 +32,6 @@
public class Metrics {
private static final String TAG = "Metrics";
- static {
- System.loadLibrary("jingle_peerconnection_so");
- }
public final Map<String, HistogramInfo> map =
new HashMap<String, HistogramInfo>(); // <name, HistogramInfo>
diff --git a/sdk/android/api/org/webrtc/PeerConnection.java b/sdk/android/api/org/webrtc/PeerConnection.java
index b6beea0..9bc4ebf 100644
--- a/sdk/android/api/org/webrtc/PeerConnection.java
+++ b/sdk/android/api/org/webrtc/PeerConnection.java
@@ -10,8 +10,8 @@
package org.webrtc;
-import java.util.Collections;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
/**
@@ -21,10 +21,6 @@
* http://www.w3.org/TR/mediacapture-streams/
*/
public class PeerConnection {
- static {
- System.loadLibrary("jingle_peerconnection_so");
- }
-
/** Tracks PeerConnectionInterface::IceGatheringState */
public enum IceGatheringState { NEW, GATHERING, COMPLETE }
diff --git a/sdk/android/api/org/webrtc/PeerConnectionFactory.java b/sdk/android/api/org/webrtc/PeerConnectionFactory.java
index d911504..cc1d83f 100644
--- a/sdk/android/api/org/webrtc/PeerConnectionFactory.java
+++ b/sdk/android/api/org/webrtc/PeerConnectionFactory.java
@@ -18,12 +18,6 @@
* the PeerConnection API for clients.
*/
public class PeerConnectionFactory {
- static {
- // TODO(sakal): Remove once all dependencies have started using
- // PeerConnectionFactory.initialize.
- NativeLibrary.initialize(new NativeLibrary.DefaultLoader());
- }
-
public static final String TRIAL_ENABLED = "Enabled";
public static final String VIDEO_FRAME_EMIT_TRIAL = "VideoFrameEmit";
@@ -140,24 +134,7 @@
private static native void nativeInitializeAndroidGlobals(
Context context, boolean videoHwAcceleration);
- // Deprecated, use PeerConnectionFactory.initialize instead.
- @Deprecated
- public static void initializeAndroidGlobals(Context context, boolean videoHwAcceleration) {
- ContextUtils.initialize(context);
- nativeInitializeAndroidGlobals(context, videoHwAcceleration);
- }
-
- // Older signature of initializeAndroidGlobals. The extra parameters are now meaningless.
- // Deprecated, use PeerConnectionFactory.initialize instead.
- @Deprecated
- public static boolean initializeAndroidGlobals(Object context, boolean initializeAudio,
- boolean initializeVideo, boolean videoHwAcceleration) {
- initializeAndroidGlobals((Context) context, videoHwAcceleration);
- return true;
- }
-
- @Deprecated
- public static void initializeInternalTracer() {
+ private static void initializeInternalTracer() {
internalTracerInitialized = true;
nativeInitializeInternalTracer();
}
diff --git a/sdk/android/api/org/webrtc/VideoFileRenderer.java b/sdk/android/api/org/webrtc/VideoFileRenderer.java
index 2f2e422..06b433c 100644
--- a/sdk/android/api/org/webrtc/VideoFileRenderer.java
+++ b/sdk/android/api/org/webrtc/VideoFileRenderer.java
@@ -23,10 +23,6 @@
* Can be used to save the video frames to file.
*/
public class VideoFileRenderer implements VideoRenderer.Callbacks {
- static {
- System.loadLibrary("jingle_peerconnection_so");
- }
-
private static final String TAG = "VideoFileRenderer";
private final HandlerThread renderThread;
diff --git a/sdk/android/instrumentationtests/src/org/webrtc/VideoFileRendererTest.java b/sdk/android/instrumentationtests/src/org/webrtc/VideoFileRendererTest.java
index 08b8e22..cfcdd65 100644
--- a/sdk/android/instrumentationtests/src/org/webrtc/VideoFileRendererTest.java
+++ b/sdk/android/instrumentationtests/src/org/webrtc/VideoFileRendererTest.java
@@ -23,11 +23,17 @@
import java.util.ArrayList;
import java.util.Random;
import org.chromium.base.test.BaseJUnit4ClassRunner;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(BaseJUnit4ClassRunner.class)
public class VideoFileRendererTest {
+ @Before
+ public void setUp() {
+ NativeLibrary.initialize(new NativeLibrary.DefaultLoader());
+ }
+
@Test
@SmallTest
public void testYuvRenderingToFile() throws InterruptedException, IOException {