AOSP SurfaceFlinger 在哪里启动?

问题描述

SurfaceFlinger 在 Android 图形渲染中是必不可少的。我研究并发现了一些关于surfaceflinger的代码。这是它的主要内容https://android.googlesource.com/platform/frameworks/native/+/refs/tags/android-11.0.0_r28/services/surfaceflinger/main_surfaceflinger.cpp

我找不到与在 surfaceflinger 上启动 init.rc 相关的任何内容https://android.googlesource.com/platform/system/core/+/refs/tags/android-11.0.0_r28/rootdir/init.rc

在这里发现:https://proandroiddev.com/how-android-boot-up-9864376d911c 那个surfaceflinger 是由SystemServer 启动的。所以我在这里找到了 SystemServer代码https://android.googlesource.com/platform/frameworks/base/+/refs/tags/android-11.0.0_r28/services/java/com/android/server/SystemServer.java 但我没有看到提到 SurfaceFlinger/surfaceflingerSurface Flinger

Surface Flinger 目录中有一个 surfaceflinger.rc 文件,但我找不到任何包含它的文件https://android.googlesource.com/platform/frameworks/native/+/refs/tags/android-11.0.0_r28/services/surfaceflinger/surfaceflinger.rc

Android 中的 surfaceflinger 服务在哪里启动?

解决方法

Surface Flinger 目录中有一个surfaceflinger.rc 文件,但我找不到任何包含它的文件:https://android.googlesource.com/platform/frameworks/native/+/refs/tags/android-11.0.0_r28/services/surfaceflinger/surfaceflinger.rc

它在这里:https://android.googlesource.com/platform/frameworks/native/+/refs/tags/android-11.0.0_r28/services/surfaceflinger/Android.bp#253 init_rc:["surfaceflinger.rc"]

cc_binary {
    name: "surfaceflinger",defaults: ["libsurfaceflinger_binary"],init_rc: ["surfaceflinger.rc"],srcs: [":surfaceflinger_binary_sources"],shared_libs: [
        "libsurfaceflinger","libSurfaceFlingerProp",],}