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

    ...
}
相关推荐
mygljx1 天前
MySQL 数据库连接池爆满问题排查与解决
android·数据库·mysql
xinhuanjieyi1 天前
ruoyimate导入sql\antflow\bpm_init_db.sql报错
android·数据库·sql
闲猫1 天前
基于RABC的权限控制设计
android
星霜笔记1 天前
GitMob — 手机端 GitHub 管理工具
android·kotlin·github·android jetpack
LiuYaoheng1 天前
问题记录:Android Studio Low memory
android·ide·android studio
独隅1 天前
Python 标准库 (Standard Library) 全面使用指南
android·开发语言·python
always_TT1 天前
strlen、strcpy、strcat等常用字符串函数
android
qqty12171 天前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
2401_895521341 天前
MySQL中between and的基本用法
android·数据库·mysql
云云鬼才1 天前
CoCo编辑器、图形化编程怎么调用Scheme(跳转应用)
android