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

    ...
}
相关推荐
夜雪一千1 小时前
MySQL 全局锁是什么?原理、风险、备份踩坑完整实战
android·mysql·adb
又见情义7 小时前
RK3568 Android 13 驱动适配实战:从零开始让SDK在自己的板子上跑起来
android·arm开发·驱动开发
霸道流氓气质8 小时前
MySQL 大表 DDL 变更 — 原理、方案与实践
android·数据库·mysql
明雨-开发9 小时前
Android打包时候Execution failed for task ‘:launcher:lintVitalAnalyzeRelease‘.
android
游戏开发爱好者89 小时前
开心上架是什么,一站式 Apple 开发者工作台总览
android·小程序·https·uni-app·iphone·webview
Android-Flutter9 小时前
android kotlin launch 源码分析
android·kotlin
Android-Flutter10 小时前
android kotlin 状态机 Continuation 详解
android·kotlin
Zha0Zhun11 小时前
Jetpack Compose 实现 iOS 风格 3D WheelPicker
android
深念Y12 小时前
RIO-UL00(EMUI 4.1 / Android 6.0.1 / arm64)开机自启动 sshd
android·linux·华为·安卓·chroot·sshd·emui
爱和冰阔落12 小时前
【MySQL 慢查询排查实战】列表接口逐渐变慢时,怎样从请求链路定位原因
android·数据库·mysql