从viewport发现小米手机参数不一致

  想要在移动web领域有所深造的小伙伴,第一关要过的就是逻辑像素与设备像素之间的关系。

  初入移动web,一定要搞懂的几个单位(DPI、PPI、DP、PX 的详细计算方法及算法来源是什么?):

  • dip(dp): device independent pixels(设备独立像素),是安卓开发用的单位,1dp表示在屏幕点密度为160ppi时1px长度。
  • dpi:dot per inch,dpi是dot per inch,每英寸多少点,ppi是 Pixel per inch,每英寸像素数,针对显示器的设计时,dpi=ppi。
  • ppi:pixels per inch,ppi表示显示设备的点密度,dpi表示印刷品点密度。
  • px:pixel,这个就是我们常说的css像素
  • dpr:代表设备缩放比

  由设备像素到逻辑像素的变换公式为:

    1px = 1dp * dpr;

  dpr = ppi / 160;

  ppi = sqrt(w*w + h * h) / 屏幕尺寸;

  其中w、h的单位为dp,屏幕尺寸通常指的是对角线长度,单位为英寸(之所以要用对角线来计算,是因为屏幕对角线长度(屏幕尺寸)是厂商制造时就定好的精确数值。而宽和高都需要计算才能得到)。

  我们先用i以上公式来计算phone6的css像素:

  iphone6参数为:4.7英寸,分辨率:1334 * 750

  iphone6的ppi为:sqrt(1334 * 1334 + 750 * 750) / 4.7 = 325.612.....

  iphone6的dpr为:325.612 / 160 = 2.03...

  所以iphone6的css像素为:667 * 375

  然后利用手头小米4c手机计算一下:

  

  根据官网数据,441ppi得dpr为2.75625,而后得小米4c的css像素为:696 * 391。

  接下来我们要通过viewport来验证一下我们的结果是否正确。

  首先设置meta标签来控制viewport:

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">

  对viewport有疑问的同学请看这篇文章:移动前端开发之viewport的深入理解

  然后设置image的宽度:

  iphone6:

<img src="https://ss0.baidu.com/73F1bjeh1BF3odCf/it/u=4076061544,2828946912&fm=73" style="width:375px"/>

  小米4c:

<img src="https://ss0.baidu.com/73F1bjeh1BF3odCf/it/u=4076061544,2828946912&fm=73" style="width:390px"/>

  试验运行结果为:

  iphone6完全符合预期: 然而小米4得到的结果是

  上图可以看到小米手机出现了滚动条,也就是说根据官方数据我们得到的结果是错误的。问了一下在小米工作的哥们,得知他们的设计都是以720为标准的,但是css像素肯定不是720px,是否有可能是360呢,将图片宽度设为360px发现完美符合。

  根据360这个结果,假设小米官方中441ppi是准确的,我们反推屏幕分辨率发现根本达不到1920 * 1080.  

  那就让人纳闷了,然后我读取了一下window.devicePixelRadio,发现小米手机中chrome浏览器得到的结果是3.

alert(window.devicePixelRatio)

  根据devicePixelRadio的到的结果,发现1080p的屏幕分辨率完全符合,这样一来ppi的数据肯定是错误的。

  这尼玛可太坑了,记得当年雷军信誓旦旦的说过,小米要在10年之内超过苹果。然并卵,单单从这件事的结果来看,雷布斯更需要率领公司踏踏实实的做事情才能对得起自己当年夸下的海口。

时间: 2024-08-29 14:42:21

从viewport发现小米手机参数不一致的相关文章

小米手机连接mac后Ecplise不能调试的问题

大家会发现我们的小米手机即时开启了调试模式,usb连接到mac pro后Eclipse还是无法显示 设备!这给我们在mac下开发android的同学带来了很大的不便解决办法:   1.把小米手机开启调试模式,然后连接在我们的mac pro上.   2.选择mac 的 关于本机->更多信息-> 系统报告->找到usb选项,右边会出现一系列和usb相关的设备我们找到小米设备并选中   3.选中后找到 供应商ID,我小米手机显示的供应商ID是:0x2717  4.打开mac终端 输入: ech

小米手机MIUI远程代码执行漏洞分析

7月我在研究webview漏洞时专门挑小米手机的MIUI测试了下,发现了非常明显的安全漏洞.通过该漏洞可以远程获取本地APP的权限,突破本地漏洞和远程漏洞的界限,使本地app的漏洞远程也能被利用,达到隔山打牛的效果.在漏洞发现的第一时间,我已经将漏洞细节报告给了小米安全响应中心,目前漏洞已经修复. 测试环境:手机型号:MI 3 Android版本:4.2.1 JOP40D MIUI版本:MIUI-JXCCNBE21 内核版本:3.4.35-ga656ab9 一.   小米MIUI原生浏览器存在意

小米手机测试Ubuntu笔记本上的PHP网页

Ubuntu笔记本和小米手机都连上小米路由. ifconfig wlan0 查看Ubuntu的IP为 192.168.31.156 php -S 192.168.31.156:8080 -t ./ 如果没有无线路由,可以在Ubuntu笔记本上用hostapd建立无线网络: http://my.oschina.net/eechen/blog/227230 开发8080端口: sudo ufw allow 8080/tcp && sudo ufw status 禁用8080端口: sudo u

小米手机与魅族的PK战结果 说明了什么

我国电子商务面临的问题,淘宝退出百度无疑是一个遗憾.当在网上购物时,用户面临的一个很大的问题就是如何在众多的网站找到自己想要的物品,并以最低的价格买到.自从淘宝退出百度,建立自己的搜索引擎后,广大消费者再也不能再百度里面直接搜索有关淘宝的商品了,这无疑是一个遗憾. 现在又出 现了微商城,还没有被太多人所熟知,但是微信营销已经以非常快的速度在吞噬这整个市场,微商城.商家入驻,微门店,微餐饮,微酒店,微教育,微物业,微医疗,微信墙,微花店,微美容,微生活等很多功能,微酷WeiKuCMS网站是多功能微

检测是否是小米手机

最近升级了MIUI系统,新系统中,蓝牙功能不能正常使用,分析原因后发现是由于没有开启定位权限,但是又不能获取定位权限是否开启的正确的值,不管是是否授权了,都返回了授权,所以没法判断, 所以针对小米手机加了一些特殊的处理,刚好用到下面的判断. 作者:Mariotaku链接:https://www.zhihu.com/question/22102139/answer/24834510来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. // 检测MIUIimport jav

解决小米手机不能运行Android Studio程序的问题

转载自:解决小米手机不能运行Android Studio程序的问题 问题描述 Android Studio升级到2.3版本之后,小米手机MIUI8不能运行Android Studio程序,报如下错误: Installation failed with message Failed to establish session. It is possible that this issue is resolved by uninstalling an existing version of apk i

Android 编程下短信监听在小米手机中失效的解决办法

相信很多人写的短信监听应用在小米手机上是拦截不到短信的,这是因为小米对短信的处置权优先分给了系统.我们可以在短信的[设置]→[高级设置]→[系统短信优先]中发现短信的优先处理权默认是分给系统的,只要关闭这个系统优先权,短信监听应用就可以正常的拦截到短信了.   

小米手机正在走向没落吗?

否,而且恰恰相反,排名第一的答案已经谈得很好.我从另一个角度谈.大家应该发现了前两个月开始,雷军微博文风大变,开始卖萌,米4发布会风格也大变,开始搞笑和调侃有商.为毛?学罗玉龙的情怀?可能有点,但不是主要的,主要的是雷军已经心里踏实了. 前三年小米面临的是生存问题,必须撒丫子奔,否则就会死.现在小米骑上了马,可以玩玩盛装舞步了.我这里说的马是什么?就是小米用真金白银咋出来的供应链关系.有钱有量,供应链才愿意拿最好的技术给你. 之前雷军微博晒检查富士康,赫比,英业达,胜华,欧菲光等公司自动化生产的

小米手机会不会更好

小米手机会不会更好 会,一定会.原因为: 系统MIUI ,但不只是这个东西.而是综合的条件影响,如小米公司的良性发展 随着其公司规模的发展壮大资源越来越多,有开发系统级产品的条件了.再也不是以前 只能修改系统了.如果只在安卓系统的基础上开发的MIUI 是不会有大发展的. 而只有有足够的资源做系统的开发了,才可以有更好的发展. 示例: 参考的可类比的案例有三星公司,其公司重点不在于手机系统,但不是不投入,只是比例不大而已.他们更多的是基础性,硬件的投入与成果更好.如显示屏的开发,芯片,呵呵,还有广