From 78f65b68552fcc690ff0c3e160aa2136b6e2593d Mon Sep 17 00:00:00 2001 From: Tej Singh Date: Thu, 18 Mar 2021 16:19:55 -0700 Subject: [PATCH] libandroid_runtime & libhwui: use libstats*_lazy Update libandroid_runtime and libhwui, both of which are dependencies of bootanimation, to use listatssocket_lazy and libstatspull_lazy, which are new static versions of libstatssocket and libstatspull. This means that bootanimation does not depend on these libraries, which are shipped from the statsd apex. The change enables removing the statsd apex from the bootstrap apexes. Test: m Test: boots Test: no fatal linker errors after removing statsd from the bootstrap apexes Bug: 178480419 Change-Id: I78f4abe71f4b3718bbd97522c16f1c5ab88f77ae --- core/jni/Android.bp | 4 +- libs/hwui/Android.bp | 92 +++++++++++++++------- libs/hwui/JankTracker.cpp | 1 - libs/hwui/jni/GraphicsStatsService.cpp | 10 +-- libs/hwui/service/GraphicsStatsService.cpp | 9 +-- 5 files changed, 73 insertions(+), 43 deletions(-) diff --git a/core/jni/Android.bp b/core/jni/Android.bp index 146863342f471..5b14334b3050b 100644 --- a/core/jni/Android.bp +++ b/core/jni/Android.bp @@ -233,6 +233,7 @@ cc_library_shared { "libseccomp_policy", "libgrallocusage", "libscrypt_static", + "libstatssocket_lazy", ], shared_libs: [ @@ -296,11 +297,8 @@ cc_library_shared { "libnativewindow", "libdl", "libdl_android", - "libstatslog", - "libstatssocket", "libtimeinstate", "server_configurable_flags", - "libstatspull", ], export_shared_lib_headers: [ // our headers include libnativewindow's public headers diff --git a/libs/hwui/Android.bp b/libs/hwui/Android.bp index d8715dbf76461..0a232d6272bde 100644 --- a/libs/hwui/Android.bp +++ b/libs/hwui/Android.bp @@ -87,8 +87,8 @@ cc_defaults { cflags: [ "-Wno-unused-variable", ], - } - } + }, + }, } cc_defaults { @@ -108,7 +108,6 @@ cc_defaults { shared_libs: [ "liblog", "libcutils", - "libstatslog", "libutils", "libEGL", "libGLESv1_CM", @@ -122,12 +121,13 @@ cc_defaults { "libandroidfw", "libcrypto", "libsync", - "libstatspull", - "libstatssocket", ], static_libs: [ "libEGL_blobCache", "libprotoutil", + "libstatslog_hwui", + "libstatspull_lazy", + "libstatssocket_lazy", ], }, host: { @@ -135,8 +135,8 @@ cc_defaults { "libandroidfw", "libutils", ], - } - } + }, + }, } cc_defaults { @@ -220,7 +220,7 @@ filegroup { srcs: [ "apex/java/**/*.java", ], - path: "apex/java" + path: "apex/java", } // ------------------------ @@ -238,7 +238,7 @@ cc_library_headers { windows: { enabled: true, }, - } + }, } cc_defaults { @@ -263,7 +263,7 @@ cc_defaults { "apex/android_region.cpp", ], - header_libs: [ "android_graphics_apex_headers" ], + header_libs: ["android_graphics_apex_headers"], target: { android: { @@ -278,7 +278,7 @@ cc_defaults { srcs: [ "apex/LayoutlibLoader.cpp", ], - } + }, }, } @@ -297,7 +297,7 @@ cc_library_headers { windows: { enabled: true, }, - } + }, } cc_defaults { @@ -370,7 +370,7 @@ cc_defaults { "jni/text/TextShaper.cpp", ], - header_libs: [ "android_graphics_jni_headers" ], + header_libs: ["android_graphics_jni_headers"], include_dirs: [ "external/skia/include/private", @@ -391,7 +391,10 @@ cc_defaults { "libjpeg", ], - static_libs: ["libnativehelper_lazy", "libziparchive_for_incfs"], + static_libs: [ + "libnativehelper_lazy", + "libziparchive_for_incfs", + ], target: { android: { @@ -417,13 +420,13 @@ cc_defaults { "libmediandk", "libnativedisplay", "libnativewindow", - "libstatspull", - "libstatssocket", "libpdfium", ], static_libs: [ "libgif", - "libstatslog", + "libstatslog_hwui", + "libstatspull_lazy", + "libstatssocket_lazy", ], }, host: { @@ -434,10 +437,41 @@ cc_defaults { static_libs: [ "libandroidfw", ], - } + }, }, } +cc_library_static { + name: "libstatslog_hwui", + generated_sources: ["statslog_hwui.cpp"], + generated_headers: ["statslog_hwui.h"], + export_generated_headers: ["statslog_hwui.h"], + static_libs: [ + "libstatssocket_lazy", + "libstatspull_lazy", + ], +} + +genrule { + name: "statslog_hwui.h", + tools: ["stats-log-api-gen"], + cmd: "$(location stats-log-api-gen) --header $(genDir)/statslog_hwui.h --module hwui" + + " --namespace android,uirenderer,stats", + out: [ + "statslog_hwui.h", + ], +} + +genrule { + name: "statslog_hwui.cpp", + tools: ["stats-log-api-gen"], + cmd: "$(location stats-log-api-gen) --cpp $(genDir)/statslog_hwui.cpp --module hwui" + + " --namespace android,uirenderer,stats --importHeader statslog_hwui.h", + out: [ + "statslog_hwui.cpp", + ], +} + // ------------------------ // library // ------------------------ @@ -449,8 +483,8 @@ cc_library_headers { export_include_dirs: [ ".", ], - header_libs: [ "android_graphics_jni_headers" ], - export_header_lib_headers: [ "android_graphics_jni_headers" ], + header_libs: ["android_graphics_jni_headers"], + export_header_lib_headers: ["android_graphics_jni_headers"], } cc_defaults { @@ -514,7 +548,7 @@ cc_defaults { target: { android: { - header_libs: ["libandroid_headers_private" ], + header_libs: ["libandroid_headers_private"], srcs: [ "hwui/AnimatedImageThread.cpp", @@ -572,8 +606,8 @@ cc_defaults { export_static_lib_headers: [ "libarect", ], - } - } + }, + }, } cc_library { @@ -589,7 +623,7 @@ cc_library { target: { android: { version_script: "libhwui.map.txt", - } + }, }, } @@ -608,10 +642,10 @@ cc_defaults { target: { android: { shared_libs: [ - "libgui", - "libui", - ], - } + "libgui", + "libui", + ], + }, }, srcs: [ "tests/common/scenes/*.cpp", @@ -732,5 +766,5 @@ phony { required: [ "hwuimicro", "hwuimacro", - ] + ], } diff --git a/libs/hwui/JankTracker.cpp b/libs/hwui/JankTracker.cpp index 7702f9bba0e45..dd977c32f5318 100644 --- a/libs/hwui/JankTracker.cpp +++ b/libs/hwui/JankTracker.cpp @@ -20,7 +20,6 @@ #include #include #include -#include #include #include diff --git a/libs/hwui/jni/GraphicsStatsService.cpp b/libs/hwui/jni/GraphicsStatsService.cpp index 1591ffabd26ac..e32c9115483c3 100644 --- a/libs/hwui/jni/GraphicsStatsService.cpp +++ b/libs/hwui/jni/GraphicsStatsService.cpp @@ -24,10 +24,10 @@ #include #include #include -#include +#include -#include "android/graphics/jni_runtime.h" #include "GraphicsJNI.h" +#include "android/graphics/jni_runtime.h" namespace android { @@ -161,14 +161,14 @@ static void nativeInit(JNIEnv* env, jobject javaObject) { AStatsManager_PullAtomMetadata_setCoolDownMillis(metadata, 10); // 10 milliseconds AStatsManager_PullAtomMetadata_setTimeoutMillis(metadata, 2 * MS_PER_SEC); // 2 seconds - AStatsManager_setPullAtomCallback(android::util::GRAPHICS_STATS, metadata, - &graphicsStatsPullCallback, nullptr); + AStatsManager_setPullAtomCallback(stats::GRAPHICS_STATS, metadata, &graphicsStatsPullCallback, + nullptr); AStatsManager_PullAtomMetadata_release(metadata); } static void nativeDestructor(JNIEnv* env, jobject javaObject) { - AStatsManager_clearPullAtomCallback(android::util::GRAPHICS_STATS); + AStatsManager_clearPullAtomCallback(stats::GRAPHICS_STATS); env->DeleteGlobalRef(gGraphicsStatsServiceObject); gGraphicsStatsServiceObject = nullptr; } diff --git a/libs/hwui/service/GraphicsStatsService.cpp b/libs/hwui/service/GraphicsStatsService.cpp index e4198017aee0d..ece59051dae73 100644 --- a/libs/hwui/service/GraphicsStatsService.cpp +++ b/libs/hwui/service/GraphicsStatsService.cpp @@ -16,20 +16,19 @@ #include "GraphicsStatsService.h" +#include #include #include #include #include #include +#include +#include #include #include #include #include -#include -#include -#include - #include "JankTracker.h" #include "protos/graphicsstats.pb.h" @@ -539,7 +538,7 @@ void GraphicsStatsService::finishDumpInMemory(Dump* dump, AStatsEventList* data, for (int stat_index = 0; stat_index < serviceDump.stats_size(); stat_index++) { auto& stat = serviceDump.stats(stat_index); AStatsEvent* event = AStatsEventList_addStatsEvent(data); - AStatsEvent_setAtomId(event, android::util::GRAPHICS_STATS); + AStatsEvent_setAtomId(event, stats::GRAPHICS_STATS); AStatsEvent_writeString(event, stat.package_name().c_str()); AStatsEvent_writeInt64(event, (int64_t)stat.version_code()); AStatsEvent_writeInt64(event, (int64_t)stat.stats_start());