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;
    }

    ...
}
相关推荐
心中有国也有家2 小时前
AtomGit Flutter 鸿蒙客户端:ModalBottomSheet 实战
android·javascript·学习·flutter·华为·harmonyos
YSoup4 小时前
Android Stuidio中下载TRAE插件依赖的JCEF后打不开
android
2401_894915534 小时前
Geo搜索优化排名源码部署搭建全流程详解
android·开发语言·flask·php·精选
星释5 小时前
鸿蒙智能体开发实战:34.鸿蒙壁纸大师 - 提示词工程与优化
android·华为·harmonyos·鸿蒙
blanks20206 小时前
android 编译问题记录
android
bobuddy6 小时前
平台总线(platform bus)
android
plainGeekDev7 小时前
libs 目录 → Gradle 依赖管理
android·java·kotlin
帅次8 小时前
Android 高级工程师面试:Flutter Widget 体系 近1年高频追问 20 题
android·flutter·面试·element·widget·setstate·renderobject
帅次8 小时前
Android 高级工程师面试:Jetpack 核心 近1年高频追问 20 题
android·面试·协程·jetpack·stateflow·lifecycle
爱笑鱼9 小时前
Handler(四):Handler 卡顿怎么定位?从 Slow delivery 到 Slow dispatch
android