type
status
date
slug
summary
tags
category
icon
password

设置页的处理逻辑

packages/apps/Settings/src/com/android/settings/development/ShowLayoutBoundsPreferenceController.java中有:
DisplayProperties是生成的类,看一下其中的debug_layout属性:
Android系统属性定义在.sysprop文件中,其本质上是一个protobuf文件.
看一下debug_layout属性(system/libsysprop/srcs/android/sysprop/DisplayProperties.sysprop中):
然后系统会自动生成一些中间类.比如上面的DisplayProperties.java.
总结一下,其实就是:
  1. 系统属性定义在.sysprop文件中,系统会自动生成一些中间类用于读写属性
  1. 设置页中用户打开/关闭开关,会改变属性值,然后通过Binder机制通知给各个服务;

debug.layout运行机制

在ViewRootImpl初始化的时候会执行下面的方法:
在View的draw中有下面这一句:
上面这些就是我们看到的那些红色框框的绘制逻辑了.

adb获取系统属性

  • 获取全部属性
    • 获取指定属性

      adb打开关闭“显示布局边界”

      执行完命令之后要重启APP才会看到效果.
      Activity启动流程分析使用VSCode阅读Android源码
      Loading...