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

    ...
}
相关推荐
00后程序员张17 小时前
对比 Ipa Guard 与 Swift Shield 在 iOS 应用安全处理中的使用差异
android·开发语言·ios·小程序·uni-app·iphone·swift
悠哉清闲19 小时前
不同车型drawable不同
android·开发语言
00后程序员张21 小时前
在 iOS 设备上同时监控 CPU、GPU 与内存的方法
android·ios·小程序·https·uni-app·iphone·webview
测试_AI_一辰21 小时前
项目实践笔记 9:打卡/日报Agent项目Bug 修改与稳定性收口(v1.0)
android·开发语言·人工智能·功能测试·ai编程·ab测试
马 孔 多 在下雨21 小时前
Kotlin协程进阶王炸之作-Kotlin的协程到底是什么
android·开发语言·kotlin
冬奇Lab21 小时前
【Kotlin系列15】多平台开发实战:一次编写,多端运行
android·开发语言·kotlin
Dxy12393102161 天前
告别默认排序:MySQL自定义排序的“炼金术”
android·数据库·mysql
请叫我大虾1 天前
发现一个jdk中ArrayList的小BUG
android·java·bug
一起养小猫1 天前
Flutter for OpenHarmony 实战:双控制系统实现(按钮+键盘)
android·flutter·计算机外设·harmonyos
_李小白1 天前
【Android 美颜相机】第十八天:GPUImageChromaKeyBlendFilter 解析
android·数码相机