问题描述
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/surfaceflinger
或 Surface 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",],}