查询 DRM 的相关信息也可以试试专门的 DRM Info,而如果想进一步了解此类技术如何影响用户的多媒体体验,可以阅读少数派曾经分享过的文章《如何体验更棒的 Netflix 影音》。
必不可少的传感器
手机依托众多传感器变得更加聪明,但你知道手里的设备到底都有哪些传感器吗?如何判断他们是否还在正常工作?
如果某些依赖特定传感器的应用无法正常工作,你可能就需要对手机的传感器进行检测和排查了。
Android 设备中传感器有多种分类方式,例如物理传感器和虚拟传感器、基础传感器和复合传感器、唤醒传感器和非唤醒传感器,不同分类也影响着 Android 系统适配和应用开发的方式。不过对于测试传感器这件事情来说,我更愿意按照传感器的数据报告模式来分类:连续模式传感器和变化模式传感器。
测试连续模式传感器
传感器数据的报告模式一共有四种,但大部分都使用连续模式和变化模式。连续模式会持续输出数据,通常情况下这种传感器会具有三个坐标轴,想要知道这类传感器的工作状态,只需要在 DevCheck 或者 Castro 中分别测试三个轴的数据变化即可。
以重力传感器为例。使用 DevCheck 或 Castro 进入重力传感器详情,除了传感器基本信息外,我们会看到一个坐标轴曲线和数据。每一款工具对坐标轴的定义可能不太一样,上图仅仅是坐标轴示例;DevCheck 以垂直屏幕方向为 Y 轴、平行于屏幕纵向为 Z 轴、横向为 X 轴。所以我们分别将手机的 6 个「面」垂直于地面,观察坐标轴曲线变化。正常情况下,平行于地面的坐标轴曲线应处于「0」,垂直于地面的坐标轴曲线应为处于坐标轴两端最大值(一般是 10 和 -10)。
我们再来观察线性加速传感器(注意与加速传感器区分),线性加速传感器可以检测坐标轴上的加速度,因此我们分别在垂直于手机屏幕、平行于手机屏幕的横向和纵向分别移动手机,可以观察到坐标轴曲线有非常明显的变化。倘若你只看到其中一种或两种颜色的曲线波动,那么你就需要引起一些警觉了。
测试变化模式传感器
变化模式是只有当传感器检测到变化时才进行事件报告的模式,此类传感器一般只会报告单一数据或状态。例如光线传感器。
以光线传感器为例,该传感器详情页同样呈现一个坐标轴和照度数值显示(单位是 lx)。尝试使用手遮挡听筒旁边的光线传感器,或者用手电筒直接照射,坐标轴和照度数值应呈现剧烈变化(左图)。
同样类型的还有接近传感器。接近传感器通常只报告「远」或「近」的状态,也就是说,当你遮挡住接近传感器时,坐标曲线会直接降至 0 以报告有物体遮挡,手机可以根据事件报告做出关闭屏幕或防止误触解锁的动作。
写这篇文章的过程中,我还因此检测出 S10 这款手机存在的一个 Bug(或者是设计缺陷),就是口袋防误触功能几乎不起作用。使用 DevCheck 查看了 S10 接近传感器数据(中图)——不出所料,除了拨打电话时可以正常报告事件外,其他时间一律显示「远」,而另一台 Nokia 5 则会立即反馈遮挡信息(右图)。
想要进一步了解 Android 手机中的传感器,可以 前往 AOSP 项目页面 查看。