Android15 框架层Java代码中的各种打印接口

1.WindowManagerService相关

使用ProtoLog接口打印

ProtoLog是Android系统内部使用的一种高性能日志机制,通过编译时优化和运行时控制来减少日志开销,适用于需要高性能的代码路径。ProtoLog日志接口具有高性能、结构化、可动态控制的特点,主要用于系统级组件(特别是系统服务和框架层)的调试日志,是对传统android.util.Log的增强和替代。

ProtoLog接口定义

Android15源代码中ProtoLog定义于frameworks/base/core/java/com/android/internal/protolog/ProtoLog.java,包名为com.android.internal.protoLog

java 复制代码
//打印接口
ProtoLog.d(IProtoLogGroup group, String messageString, Object... args)
ProtoLog.v(IProtoLogGroup group, String messageString, Object... args)
ProtoLog.i(IProtoLogGroup group, String messageString, Object... args)
ProtoLog.w(IProtoLogGroup group, String messageString, Object... args)
ProtoLog.e(IProtoLogGroup group, String messageString, Object... args)
ProtoLog.wtf(IProtoLogGroup group, String messageString, Object... args)

//使能控制
static boolean isEnabled(IProtoLogGroup group, LogLevel level)

//(单例)对象及初始化
static IProtoLog getSingleInstance()
static void init(IProtoLogGroup... groups)

ProtoLog接口使用

例如frameworks/base/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java中,使用ProtoLog打印日志,

java 复制代码
boolean realStartActivityLocked(ActivityRecord r, WindowProcessController proc,
        boolean andResume, boolean checkConfig) throws RemoteException {
    if (!mRootWindowContainer.allPausedActivitiesComplete()) {
        // While there are activities pausing we skipping starting any new activities until
        // pauses are complete. NOTE: that we also do this for activities that are starting
        // in the paused state because they will first be resumed then paused on the client
        // side.
        ProtoLog.v(WM_DEBUG_STATES,
            "realStartActivityLocked: Skipping start of r=%s some activities pausing...",
            r);
        return false;
    }

    ...
}
相关推荐
白云LDC4 小时前
Android Studio新建Vecter asset一直显示Loading icons(转圈圈)的解决办法
android·ide·android studio
Rytter7 小时前
某气骑士 libtprt.so 反 Frida 机制分析与绕过
android·安全·网络安全
alexhilton8 小时前
揭密:Compose应用如何做到启动提升34%
android·kotlin·android jetpack
沐言人生9 小时前
React Native 源码分析1——HybridData 机制深度分析
android·react native
程序员陆业聪10 小时前
跨平台框架全景图:Flutter/KMP/KuiKly/RN的2026年格局
android
码云数智-园园11 小时前
Fibers(纤程)来了:打破阻塞,实现纯PHP下的异步非阻塞IO
android
shaoming377614 小时前
检查系统硬件配置是否满足PyCharm最低要求
android·spring boot·mysql
一起搞IT吧14 小时前
高通Camx功能feature分析之十五:insensor zoom介绍及实现
android·智能手机·相机
aqi0015 小时前
一文读懂 HarmonyOS 6.1 带来的十大重要升级
android·华为·harmonyos·鸿蒙·harmony
秋917 小时前
MySQL 9.7.0 使用详解:新特性、实战与避坑指南
android·数据库·mysql