MediaUtils: Use delayed / lazy library loading
Postpone loading libutilscallstack until needed
to save memory.
Test: atest library_tests
Test: adb shell 'showmap $(pgrep mediametrics)'
Bug: 227536784
Change-Id: I3d4c9e9b6d854b013185e18fc20d4bec320df14e
diff --git a/media/utils/Android.bp b/media/utils/Android.bp
index 1756e47..3b079c6 100644
--- a/media/utils/Android.bp
+++ b/media/utils/Android.bp
@@ -28,7 +28,9 @@
"AImageReaderUtils.cpp",
"BatteryNotifier.cpp",
"ISchedulingPolicyService.cpp",
+ "Library.cpp",
"LimitProcessMemory.cpp",
+ "MediaUtilsDelayed.cpp",
"MemoryLeakTrackUtil.cpp",
"MethodStatistics.cpp",
"ProcessInfo.cpp",
@@ -49,7 +51,6 @@
"libcutils",
"liblog",
"libutils",
- "libutilscallstack",
"libhidlbase",
"libpermission",
"android.hardware.graphics.bufferqueue@1.0",
@@ -77,6 +78,10 @@
"libpermission",
],
+ required: [
+ "libmediautils_delayed", // lazy loaded
+ ],
+
include_dirs: [
// For DEBUGGER_SIGNAL
"system/core/debuggerd/include",
@@ -86,6 +91,23 @@
}
cc_library {
+ name: "libmediautils_delayed", // match with MEDIAUTILS_DELAYED_LIBRARY_NAME
+ srcs: [
+ "MediaUtilsDelayedLibrary.cpp",
+ ],
+ cflags: [
+ "-Wall",
+ "-Werror",
+ "-Wextra",
+ ],
+ shared_libs: [
+ "liblog",
+ "libutils",
+ "libutilscallstack",
+ ],
+}
+
+cc_library {
name: "libmediautils_vendor",
vendor_available: true, // required for platform/hardware/interfaces
srcs: [