安卓模拟器如何调整缩放/像素比以匹配非标准密度的物理手机
为什么模拟器像素比和实体机存在偏差
安卓AOSP原生系统默认启用密度对齐规则,会将非官方标准的像素比自动对齐到最近的官方档位,3.5x介于xxhdpi(3.0x)和xxxhdpi(4.0x)之间,原生逻辑会自动向下对齐到3.0x,这就是模拟器默认输出MediaQuery.devicePixelRatio为3.0的原因。而三星Galaxy S21 Ultra使用厂商定制ROM,单独适配了非标准3.5x像素比的渲染逻辑,所以可以正常输出3.5x的参数。
如何修改模拟器的devicePixelRatio为3.5x
你可以通过以下两种方式修改,任选其一即可:
- 模拟器内设置修改:启动目标模拟器,进入设置页面找到关于模拟设备,连续点击5次版本号开启开发者选项;返回设置主页面进入开发者选项,找到最小宽度项,通过公式「模拟器水平分辨率 ÷ 3.5」计算得到目标值,取整数填入即可。比如模拟器分辨率设为1440×3200的情况下,1440÷3.5≈411,把最小宽度改为411即可生效。
- ADB命令修改:电脑端连接模拟器后,执行命令
adb shell wm density 560即可,安卓系统密度基准为160dpi=1.0x,160×3.5=560,对应就是3.5x的像素比,执行后模拟器会自动重启生效。如果需要恢复默认配置,执行adb shell wm density reset即可。
内容的提问来源于stack exchange,提问作者gexicide
相关产品推荐
相关产品推荐

