##################################################
目录
目录
使用 dumpsys gfxinfo 测试 fps 性能流畅度
通过 dumpsys SurfaceFlinger 获取 fps
通过 dumpsys window displays 查看 fps
settings 查看 system 和 global 相关的信息
##################################################
魔百盒视频分辨率以及刷新率问题
——————————
问题以及最好的解决方法
因为是老显示器了最高是 60 Hz 刷新率
一开始插入 HDMI 视频线的时候是最高刷新率 直接超频 显示器根本显示不了…… 无奈只好接上一台比较大的显示器
外接鼠标 将刷新率调整为最低:
%%%%%
通过 adb 配合截屏修改分辨率
如果你手边又没有大显示器 该怎么办?
这边教你一招 将 CM311-1A 盒子连接网线,插上 USB 键盘
然后按下 PrScrn 截屏键!自动保存路径为 sdcard/Pictures/Screenshots
电脑终端使用 adb 命令从盒子下载这些截屏:
adb pull "sdcard/Pictures/Screenshots"
方向键移动 空格键选择 回车确认
每走一步都要截屏下载一次!这是最最离谱的办法了 亲测可行!!!
%%%%%
通过命令进行截屏
截屏前准备:
cmcc_jiangsu:/ # pwd
/
cmcc_jiangsu:/ # cd /sdcard
cmcc_jiangsu:/sdcard # pwd
/sdcard
cmcc_jiangsu:/sdcard # ls
Alarms DCIM Notifications com.iflytek.xiri zm_wx_chuantu
Android Download Pictures msc
DBLauncher Movies Podcasts zm_pingbao
DBZM Music Ringtones zm_pingbao_local
cmcc_jiangsu:/sdcard # mkdir sc /* 先新建一个合适的目录 */
cmcc_jiangsu:/sdcard # ls
Alarms DCIM Notifications com.iflytek.xiri zm_pingbao_local
Android Download Pictures msc zm_wx_chuantu
DBLauncher Movies Podcasts sc
DBZM Music Ringtones zm_pingbao
cmcc_jiangsu:/sdcard #
使用 screencap 工具录屏 语法如下:
一般使用情况:
screencap -p 存储路径
介绍信息如下:
cmcc_jiangsu:/sdcard/sc # screencap -h
screencap 2
usage: screencap [-hp] [-d display-id] [FILENAME]
-h: this message /* 输出此信息 */
-p: save the file as a png. /* 存储为 .png 格式 */
-j: save the file as a jpg.(default) /* 默认存储为 .jpg 格式 */
-d: specify the display id to capture, default 0. /* 指定要捕获的显示 id 默认为 0 */
If FILENAME ends with .png it will be saved as a png. /* 如果文件名以 png 结尾将保存为 png 格式文件 */
If FILENAME is not given, the results will be printed to stdout. /* 如果没有给出文件名结果将打印到标准输出 */
1|cmcc_jiangsu:/sdcard/sc #
示例截屏:
cmcc_jiangsu:/sdcard # screencap -p /sdcard/sc/1.png /* 将截屏存储到 /sdcard/sc/ 命名为 1.png */
screencap 3
screencap start. screen_type: 1
file path: /sdcard/sc/1.png /* 显示了存储位置 */
new ScreenCatch ok
got video+osd data: 1280 x 720
SkEncodeImage success
screencap end
cmcc_jiangsu:/sdcard # cd sc /* 进入存储目录 */
cmcc_jiangsu:/sdcard/sc # ls -alh /* 查看确实存在文件 */
total 762K
drwxrwx--x 2 root sdcard_rw 4.0K 2022-07-20 18:58 .
drwxrwx--x 22 root sdcard_rw 4.0K 2022-07-20 18:56 ..
-rw-rw---- 1 root sdcard_rw 1.4M 2022-07-20 18:58 1.png
cmcc_jiangsu:/sdcard/sc #
下载到本地查看一下:
C:\Users\byme>adb pull /sdcard/sc
/sdcard/sc/: 1 file pulled, 0 skipped. 1.3 MB/s (1545243 bytes in 1.127s)
C:\Users\byme>dir sc
驱动器 C 中的卷是 System_8.1
卷的序列号是 B6F6-A064
C:\Users\byme\sc 的目录
2022/07/20 19:05 <DIR> .
2022/07/20 19:05 <DIR> ..
2022/07/20 19:05 1,545,243 1.png
1 个文件 1,545,243 字节
2 个目录 4,313,444,352 可用字节
C:\Users\byme>
如下:

因为锁屏了 所以截取的屏保……
%%%%%
编写一个截屏脚本
编写一个简单的脚本 命名为 .cmd 或者 .bat 以后就不用手动操作了!!!
adb shell screencap -p /sdcard/1.png /* 截屏存储 */
adb pull /sdcard/1.png /* 下载到当前目录 */
adb shell rm /sdcard/1.png /* 删除截屏 */
start 1.png /* 打开图像 */
del 1.png /* 删除图像 */
exit /* 退出 */
——————————
Xshell 5 进入 CM311-1A
用的是 Xshell 5 使用的是 adb
具体 adb 的安装配置移步:
Xshell 5 (Build 0964)
Copyright (c) 2002-2016 NetSarang Computer, Inc. All rights reserved.
Type `help' to learn how to use Xshell prompt.
[c:\~]$ cd /adb /* 进入 adb 目录 */
[C:\adb]$ adb devices /* 查看连接 */
List of devices attached
[C:\adb]$ adb connect 192.168.0.101 /* 根据 CM311-1A IP 连接 */
connected to 192.168.0.101:5555
[C:\adb]$ adb devices /* 再次查看连接 发现连接成功 */
List of devices attached
192.168.0.101:5555 device
[C:\adb]$ adb shell /* 已经进入 CM311-1A 系统 但是 Xshell 并没有显示提示符 */
pwd /* 我输入的命令 */
/ /* 返回的结果 */
注意 Xshell 并没有显示提示符号 如果不习惯可以使用 cmd :
Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有权利。
C:\Users\byme>adb shell /* 请求一个盒子终端 */
cmcc_jiangsu:/ # pwd /* 查看当前位置 */
/
cmcc_jiangsu:/ # exit /* 退出 */
C:\Users\byme>mkdir CM311-1A /* 新建一个测试目录 */
C:\Users\byme>cd CM311-1A /* 进入测试目录 */
C:\Users\byme\CM311-1A>adb shell /* 请求一个终端 以后在该目录下载文件 */
cmcc_jiangsu:/ # cd sdcard/Pictures/Screenshots
cmcc_jiangsu:/sdcard/Pictures/Screenshots # pwd
/sdcard/Pictures/Screenshots
cmcc_jiangsu:/sdcard/Pictures/Screenshots # ls
cmcc_jiangsu:/sdcard/Pictures/Screenshots #
%%%%%
查看机器型号
cmcc_jiangsu:/ # getprop ro.product.model
CM311-1a-YST
cmcc_jiangsu:/ #
%%%%%
查看安卓 ID
cmcc_jiangsu:/ # settings get secure android_id
c32cooxx52113149
cmcc_jiangsu:/ #
%%%%%
查看安卓系统版本
cmcc_jiangsu:/ # getprop ro.build.version.release
9
cmcc_jiangsu:/ #
——————————
使用命令调整分辨率以及 DPI
%%%%%
常用尺寸单位概念一览
Screen size/屏幕尺寸
指的是手机实际的物理尺寸
比方经常使用的 2.8 英寸、3.2 英寸、3.5 英寸、3.7 英寸
Aspect Ratio/宽高比率
指的是实际的物理尺寸宽高比率
分为 long 和 nolong
Resolution/分辨率
和电脑的分辨率概念一样
指手机屏幕纵、横方向像素个数
DPI/dot per inch
每英寸像素数
如 120 dpi、160 dpi 等
Density/密度
屏幕里像素值浓度
resolution/Screen size 能够反映出手机密度
dip/Density-independent pixel
指的是逻辑密度计算单位
dip 和详细像素值的相应公式是 dip/pixel = dpi 值 / 160 也就是 px = dp * (dpi / 160)
px/pixel/像素 屏幕上像素点单位
in/inch/英寸 长度单位
dpi/dpi 密度 屏幕单位面积内的像素数
dp/dip/device independent pixels/设备独立像素 基于屏幕密度的抽象单位 在每英寸 160 点的显示器上的话 1dp = 1px
sp/scaled pixels/缩放像素 主要用于字体显示与刻度无关的一种像素 可以根据用户的字体大小首选项进行缩放
单位换算:
px 和 dp 换算公式为 px = dp * (dpi / 160)
%%%%%
像素/xp 与像素密度和分辨率概念
像素是手机屏幕上可显示的最小单位 与物理设备有关
屏幕上显示的像素个数 单位是 像素/px
1 px = 1 像素点
单位尺寸内像素点越多分辨率越高 显示效果就越精细和细腻
像素密度:
一个 dpi 可以显示多少个像素
dp/dpi 直接来说就是一英寸多少个像素点 常见取值 120、160、240 一般称作像素密度 简称密度
density 直接翻译的话叫 密度
常见取值
1.5
1.0
和标准 dpi 的比例 160 px/inc
而分辨率是指横纵两个方向的像素点的数量
安卓手机设备常见取值 480x800、320x480
关于 APP 启动图标:
ldpi 120 dpi 图标大小为 36x36 px
mdpi 160 dpi 图标大小为 48x48 px
hdpi 240 dpi 图标大小为 72x72 px
xhdpi 320 dpi 图标大小为 96x96 px
xxhdpi 480 dpi 图标大小为 144x144 px
xxxhdpi 640 dpi 图标大小为 192x192 px
%%%%%
dpi 概念
常见的分辨率与 DPI 对应值:
常用分辨率 DPI 值
320x240 160
720x1280 320
1080x1920 480
2160x3084 640
DPI 是 Dots Per Inch 的缩写 中文为每英寸面积内的像素点数 是一个量度单位 常用于衡量打印机、鼠标等设备的分辨率
每英寸像素多少
即每一块空间有多少像素点
平常所说的 1920x1080 只是像素数量 也就是 1920 px * 1080 px
代表手机高度上有 1920 个像素点 宽度上有 1080 个像素点
densityDpi 就是我们常说的 dpi
DPI 又可细分为水平分辨率和垂直分辨率
例如一张
1 英寸 * 1 英寸
的图片 如果她的
水平分辨率是 100 DPI
垂直分辨率是 50 DPI
那么就是说她
水平每英寸分成 100 小段
垂直每英寸分成 50 小段
1 英寸等于 2.54 厘米
DPI 代表每英寸上存在的点数 她决定了显示器的清晰度和清晰度
这是由屏幕的大小及其分辨率决定的
DPI 越高 在显示器上可以识别的单个像素就越少
这也取决于观看屏幕的距离 在足够长的距离处人眼将无法辨别单个像素 不管 DPI 是多少看起来是一样的
要想判别手机屏幕的显示好坏 还要考虑屏幕的 宽高/英寸
也就是用 dpi
即每英寸多少像素来评价屏幕的显示效果
不然假如手机分辨率是 1920x1080 但是屏幕是几十寸的
那显示效果将不会很好 甚至你有可能看到小的像素块 那将更影响视觉效果
Android 不同分辨率对应不同密度适配表:
密度类型 分辨率 PX 密度范围 DPI 比例
ldpi 低密度 240x320 0~120 3
mdpi 中等密度 320x480 120~160 4
hdpi 高密度 480x800 160~240 6
xhdpi 超高密度 1080x1920 240~320 8
xxhdpi 超清密度 1080x1920 320~480 12
xxxhdpi 超高清密度 2160x3840 480~640 16
在 Android 中规定以 160 dpi 即屏幕分辨率为 320x480 为基准 1dp = 1px
px 和 dp的换算公式:
px = dp * (dpi / 160)
%%%%%
dp/dip 与 sp 解读
sp 用于设置字体大小 会跟随系统字体大小自动调节字体显示的大小
dp 是长度单位!是 Density-independent pixel 的缩写
dp 是 Android 开发上的基于屏幕密度的一种密度无关的像素单位
与物理设备无关 同样尺寸的屏幕 使用 dp 设置的尺寸一样!
Android 屏幕适配由来已久 关键在于屏幕尺寸与屏幕分辨率的变化巨大
在成千上百种机型面前 px 单位早已难以适应
如果使用多套 px 文件方案来适配,市面上少说上百种寸,需要的文件太多了
同样尺寸上不同分辨率不同 density 的设备每 1 dp 所代表的像素数量是不一样的
但是所表示的物理长度是一样的!!!
160 dp 等于 1 in 就是 1 英寸等于 2.54 厘米
至此 dp 单位的使用就意味着你在这些同样尺寸但是不同分辨率的设备上看到的大小一样
此时各设备上显示的比例也就一致了……
其实 dp 就是为了使得开发者设置的长度能够根据不同屏幕 分辨率/尺寸
也就是 dpi 获得不同的 像素/px 数量
比如我将一个控件设置长度为 1 dp
那么在 160 dpi 上该控件长度为 1 px
而在 240 dpi 的屏幕上该控件的长度为 1 * 240 / 160 为 1.5 个像素点
也就是 dp 会随着不同屏幕而改变控件长度的像素数量
关于 dp 的官方叙述为当屏幕每英寸有 160 个像素时
也就是 160 dpi 则 dp 是与 px 等价的
那如果每英寸 240 个像素呢?
1 dp 为
1 * 240 / 160 = 1.5 px
即 1 dp 与 1.5 px 等价了
其实记住一点:
dp 最终都要化为像素数量来衡量大小的
因为只有像素数量最直观!
通常来说我们写程序时几乎没用到计算 dp
就是直接凭着自己的感觉写的 如果想精确设置控件大小也可以研究一下怎么计算
dp 是最常用但也最难理解的尺寸单位 她与 像素密度 密切相关
什么是像素密度
假设有一部手机屏幕的物理尺寸为 1.5 英寸 x 2 英寸
屏幕分辨率为 240x320
则我们可以计算出在这部手机的屏幕上每英寸包含的像素点的数量为
横向 240 / 1.5 = 160 dpi
纵向 320 / 2 = 160 dpi
160 dpi 就是这部手机的像素密度
像素密度的单位 dpi 是 Dots Per Inch 的缩写 即每英寸像素数量
横向和纵向的这个值都是相同的 原因是大部分手机屏幕使用正方形的像素点
不同的 手机/平板 可能具有不同的像素密度
例如同为 4 寸手机 有 480x320 分辨率的也有 800x480 分辨率的
前者的像素密度就比较低
Android 系统定义了四种像素密度:
低 120 dpi
中 160 dpi
高 240 dpi
超高 320 dpi
她们对应的 dp 到 px 的系数分别为
0.75
1
1.5
2
这个系数乘以 dp 长度就是像素数
例如界面上有一个长度为 80 dp 的图片
那么她在 240 dpi 的手机上实际显示为 80 x 1.5 = 120 px
在 320 dpi 的手机上实际显示为 80 x 2 = 160 px
如果你拿这两部手机放在一起对比 会发现这个图片的物理尺寸差不多
这就是使用 dp 作为单位的效果
dip 与 dp 完全相同只是名字不同而已
在早期的 Android 版本里多使用 dip 后来为了与 sp 统一就建议使用 dp 这个名字了
dp/dip 和 sp 基本类似
如果设置表示长度、高度等属性时可以使用 dp 或 sp
但如果设置字体只能使用 sp
sp 是与缩放无关的抽象像素 Scale-independent Pixel
sp 和 dp 很类似但唯一的区别是 Android 系统允许用户自定义文字尺寸大小
小
正常
大
超大
等等
当文字尺寸是 正常 时 1 sp = 1 dp = 0.00625 英寸
而当文字尺寸是 大 或 超大 时 1 sp > 1 dp = 0.00625 英寸
类似我们在 windows 里调整字体尺寸以后的效果:
窗口大小不变
只有文字大小改变
还有几个用的比较少的单位:
mm 毫米
in 尺寸/英寸 1 英寸 = 2.54 厘米
pt 磅 1 pt = 1/72 英寸 = 0.035 厘米
dp 是与密度无关的
sp 除了与密度无关外还与 scale 无关
如果屏幕密度为 160 时 dp 和 sp 和 px 是一样的 此时 1 dp 是 1 sp 是 1 px
但如果使用 px 作单位
若屏幕大小不变 假设还是 3.2 寸
而屏幕密度变成了 320
那么原来 TextView 的宽度设成 160 px
在密度为 320 的 3.2 寸屏幕里看要比在密度为 160 的 3.2 寸屏幕上看短了一半
但如果设置成 160 dp 或 160 sp 的话 系统会自动将 width 属性值设置成 320 px 的
也就是 160 * 320 / 160
其中 320 / 160 可称为密度比例因子
也就是说如果使用 dp 和 sp 系统会根据屏幕密度的变化自动进行转换
dp 也可以理解成相对大小
文字的尺寸一律用 sp 单位
非文字的尺寸一律使用 dp 单位
%%%%%
介绍一下 wm 命令
输入 wm 会输出帮助信息:
cmcc_jiangsu:/sdcard/Pictures/Screenshots # wm
Window manager (window) commands:
help
Print this help text. /* 打印此帮助文本 */
size [reset|WxH|WdpxHdp]
Return or override display size. /* 返回或替代显示大小 */
width and height in pixels unless suffixed with 'dp'. /* 宽度和高度为像素 除非后缀为 'dp' */
density [reset|DENSITY]
Return or override display density. /* 返回或覆盖显示密度 */
overscan [reset|LEFT,TOP,RIGHT,BOTTOM]
Set overscan area for display. /* 设置显示的过扫描区域 */
scaling [off|auto]
Set display scaling mode. /* 设置显示缩放模式 */
dismiss-keyguard
Dismiss the keyguard, prompting user for auth if necessary. /* 关闭键盘,必要时提示用户进行身份验证 */
tracing (start | stop)
Start or stop window tracing. /* 启动或停止窗口跟踪 */
255|cmcc_jiangsu:/sdcard/Pictures/Screenshots #
%%%%%
wm size/分辨率 与 wm density/像素密度
最常用的两个选项当属 size 和 density 了!
wm size 查看设置显示分辨率:
wm size /* 查看当前分辨率 */
wm size 1920x1080 /* 设置分辨率为 1920x1080 注意是小写的 X 字母而不能用 * 符号 */
wm size reset /* 恢复缺省值 */
wm density 查看设置显示密度:
wm density /* 查看当前显示密度 */
wm density 80 /* 修改显示密度为 80 */
wm density reset /* 恢复默认值 */
示例:
cmcc_jiangsu:/sdcard/Pictures/Screenshots # wm size
Physical size: 1920x1080
cmcc_jiangsu:/sdcard/Pictures/Screenshots # wm density
Physical density: 240
cmcc_jiangsu:/sdcard/Pictures/Screenshots #
%%%%%
wm overscan 设置显示区域
wm overscan 设置显示区域
wm overscan 100,200,300,400 /* 设置显示区域边缘的像素数 顺序为左上右下 */
wm overscan reset /* 恢复显示区域 */
——————————
关于 FPS 帧率/刷新率
%%%%%
帧率概念
帧率就是一秒内屏幕刷新的次数
即一秒内显示了多少帧的图像
单位 Hz/赫兹
如常见的
60 Hz
90 Hz
120 Hz 高刷新率
刷新频率取决于硬件的固定参数 这个是不会变的
FPS 是图像领域中的定义 是指画面每秒传输帧数
通俗来讲就是指动画或视频的画面数
FPS 是测量用于保存、显示动态视频的信息数量
每秒钟帧数愈多 所显示的动作就会愈流畅
一般来说 Android 设备的屏幕刷新率为 60 帧/s
要保持画面流畅不卡顿 要求每一帧的时间不超过 1000 / 60 = 16.6 ms
这就是 16 ms 的黄金准则
如果中间的某些帧的渲染时间超过 16 ms 就会导致这段时间的画面发生了跳帧 因此原本流畅的画面变发生了卡顿
注意 下面只是如何查看帧率 怎么修改帧率暂时不知道
只能通过上面修改分辨率了……
%%%%%
使用 dumpsys gfxinfo 测试 fps 性能流畅度
使用命令
dumpsys gfxinfo [测试程序包名]
可以测试帧率
也可以将输出结果输出到一个文件中:
dumpsys gfxinfo > /tmp/1.log
之后打开 1.log 文件便会看到如下的信息:
每一行为每一帧的各个渲染阶段所耗时间
总时间即为每一帧所耗时间
超过 16 毫秒则说明不够流畅
因此能够考虑两个结果
一是平均 FPS
二卡顿率 超过 16 ms 的帧数/总帧数 clas
%%%%%
通过 dumpsys SurfaceFlinger 获取 fps
通过如下命令可以直接查看当前 FPS 帧率:
cmcc_jiangsu:/ # dumpsys SurfaceFlinger | grep -Ei "MaxBrightness|fps"
refresh-rate : 60.000002 fps
cmcc_jiangsu:/ #
或者:
cmcc_jiangsu:/ # dumpsys SurfaceFlinger | grep fps
refresh-rate : 60.000002 fps
cmcc_jiangsu:/ #
如果想查看更详细的信息请输出到指定文件:
dumpsys SurfaceFlinger > /tmp/1.txt
%%%%%
通过 dumpsys window displays 查看 fps
筛选 fps 信息:
cmcc_jiangsu:/ # dumpsys window displays | grep fps
mDisplayInfo=DisplayInfo{"内置屏幕", uniqueId "local:0", app 1920 x 1080, rea
l 1920 x 1080, largest app 1920 x 1884, smallest app 1080 x 1044, mode 1, defaul
tMode 1, modes [{id=1, width=1920, height=1080, fps=60.000004}], colorMode 0, su
pportedColorModes [0], hdrCapabilities android.view.Display$HdrCapabilities@4140
79f7, rotation 0, density 240 (79.0 x 70.0) dpi, layerStack 0, appVsyncOff 10000
00, presDeadline 16666666, type BUILT_IN, state ON, FLAG_SECURE, FLAG_SUPPORTS_P
ROTECTED_BUFFERS, removeMode 0}
cmcc_jiangsu:/ #
查看所有信息:
cmcc_jiangsu:/ # dumpsys window displays
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)
Display: mDisplayId=0
init=1920x1080 240dpi cur=1920x1080 app=1920x1080 rng=1080x1044-1920x1884
deferred=false mLayoutNeeded=false mTouchExcludeRegion=SkRegion((0,0,1920,10
80))
mLayoutSeq=38
Application tokens in top down Z order:
mStackId=0
mDeferRemoval=false
mBounds=[0,0][1920,1080]
taskId=72
mBounds=[0,0][1920,1080]
mdr=false
appTokens=[AppWindowToken{3ba4e1c token=Token{4e82b8f ActivityRecord{864
1aee u0 com.dangbei.tvlauncher/.IndexActivity t72}}}]
mTempInsetBounds=[0,0][0,0]
Activity #0 AppWindowToken{3ba4e1c token=Token{4e82b8f ActivityRecord{
8641aee u0 com.dangbei.tvlauncher/.IndexActivity t72}}}
windows=[Window{88f706e u0 com.dangbei.tvlauncher/com.dangbei.tvlaun
cher.IndexActivity}]
windowType=2 hidden=false hasVisible=true
app=true mVoiceInteraction=false
task={taskId=72 appTokens=[AppWindowToken{3ba4e1c token=Token{4e82b8
f ActivityRecord{8641aee u0 com.dangbei.tvlauncher/.IndexActivity t72}}}] mdr=fa
lse}
mFillsParent=true mOrientation=0
hiddenRequested=false mClientHidden=false reportedDrawn=true reporte
dVisible=true
mNumInterestingWindows=1 mNumDrawnWindows=1 inPendingTransaction=fal
se allDrawn=true lastAllDrawn=true)
startingData=null removed=false firstWindowDrawn=true mIsExiting=fal
se
controller=AppWindowContainerController{ token=Token{4e82b8f Activit
yRecord{8641aee u0 com.dangbei.tvlauncher/.IndexActivity t72}} mContainer=AppWin
dowToken{3ba4e1c token=Token{4e82b8f ActivityRecord{8641aee u0 com.dangbei.tvlau
ncher/.IndexActivity t72}}} mListener=ActivityRecord{8641aee u0 com.dangbei.tvla
uncher/.IndexActivity t72}}
homeStack=Stack=0
DockedStackDividerController
mLastVisibility=false
mMinimizedDock=false
mAdjustedForIme=false
mAdjustedForDivider=false
PinnedStackController
defaultBounds=[1455,808][1896,1056]
movementBounds=[24,60][1896,1056]
mIsImeShowing=false
mImeHeight=0
mIsShelfShowing=false
mShelfHeight=0
mReentrySnapFraction=-1.0
mIsMinimized=false
mActions=[]
mDisplayInfo=DisplayInfo{"内置屏幕", uniqueId "local:0", app 1920 x 1080, rea
l 1920 x 1080, largest app 1920 x 1884, smallest app 1080 x 1044, mode 1, defaul
tMode 1, modes [{id=1, width=1920, height=1080, fps=60.000004}], colorMode 0, su
pportedColorModes [0], hdrCapabilities android.view.Display$HdrCapabilities@4140
79f7, rotation 0, density 240 (79.0 x 70.0) dpi, layerStack 0, appVsyncOff 10000
00, presDeadline 16666666, type BUILT_IN, state ON, FLAG_SECURE, FLAG_SUPPORTS_P
ROTECTED_BUFFERS, removeMode 0}
DisplayFrames w=1920 h=1080 r=0
mStable=[0,0][1920,1080]
mStableFullscreen=[0,0][1920,1080]
mDock=[0,0][1920,1080]
mCurrent=[0,0][1920,1080]
mSystem=[0,0][1920,1080]
mContent=[0,0][1920,1080]
mVoiceContent=[0,0][1920,1080]
mOverscan=[0,0][1920,1080]
mRestrictedOverscan=[0,0][1920,1080]
mRestricted=[0,0][1920,1080]
mUnrestricted=[0,0][1920,1080]
mDisplayInfoOverscan=[0,0][0,0]
mRotatedDisplayInfoOverscan=[0,0][0,0]
mDisplayCutout=com.android.server.wm.utils.WmDisplayCutout@3c1
cmcc_jiangsu:/ #
%%%%%
settings 查看 system 和 global 相关的信息
在该命令下面看到 peak_refresh_rate/峰值刷新率
cmcc_jiangsu:/ # settings list system
/* … … */
peak_refresh_rate/=d
peak_refresh_rate=/d
/* … … */
并没有看到最小刷新率 min_refresh_rate
还看到了两个相关的:
cmcc_jiangsu:/ # settings get global window_animation_scale
1.0
cmcc_jiangsu:/ # settings get global transition_animation_scale
0.0