解决 Android 的疑难杂症,从看懂设备参数开始
2019-08-08 17:05:23 Author: sspai.com(查看原文) 阅读量:236 收藏

同样手持 Android 设备,有的人使用 Netflix 无法观看高清剧集,有的人使用 GCam 无法享受完整功能,有的人待机耗电速度堪比重度使用,也有的人后台频频被「杀」、每次点开微信都能看见地球……

除了软件层面上的兼容问题,如果我们能够读懂一些基本的 Android 设备硬件参数,其实也能对上述问题进行基本排查,甚至能在选择手机时合理避坑。今天这篇文章我们就来分享一下 Android 手机的常见参数以及隐藏在这些参数背后的秘密。

用什么工具看参数

大多数手机都会在系统设置中自带一项「关于本机」,在那里我们已经能够了解一些关于这台设备的参数细节。但如果想挖掘到更深一层的信息,那我们可能要借助一些专门的工具。

类似的工具有许多,本文推荐使用 DevCheck 或 Castro 这两款工具查看。DevCheck 与 EXKM 内核管理器师出同门,都由开发者 flar2 开发,应用设计简洁直观,参数覆盖面较广;Castro 则颜值更高,部分参数说明更加详细。

两款工具均无需 Root 权限。

事关「流畅」的关键数据

硬件承载系统,已经是每一场发布会都要着重介绍的内容。相信少数派读者对熟悉的设备所搭载硬件已经了然于胸,但不免也会遇到「飞来横机」这种没做功课的意外情况。

如果你不仅仅只是想了解一个简单的「骁龙8x5」这样的型号,那么不妨打开上述介绍工具中的一款来看看它的各种奇妙参数。

CPU & GPU

大家常说的「骁龙 835」「骁龙 855」其实是一套包含 CPU、GPU 在内的完整芯片系统。在这套芯片系统中,我们主要还是关注大部件 CPU、GPU。以我手中三星 S10 的高通骁龙 855 为例,略过老生常谈的核心数与制程工艺,需要关注的参数有:

  • CPU 的最高主频:这个最高主频往往决定了 CPU 的峰值性能,对于游戏体验也至关重要。检查此项往往也是查看厂商是否为了续航和发热采取了降频措施。
  • 调频器:从去年开始,各家厂商新出的芯片基本都转用更为先进的能源感知调度(EAS)来调节 CPU 核心,体现在调频器上主要就是采用了 schedutil 算法,而与过去传统 HMP 调度的 interactive 算法区别开来。EAS 调度的能效比更高,同等功耗下能使系统运行更为流畅,自然是我们的上佳之选。
  • GPU 型号:GPU 决定了手机的大部分图形性能,判断此 GPU 的大致性能其实看型号的后两位便已足够。
  • OpenGL 的驱动版本:游戏用户们可能需要额外关注一下这个参数,较新的驱动版本往往能够带来更多优化,增强游戏中的 OpenGL 图形性能。Vulkan 是另一种更为高效的图形 API,但近年来的芯片均已支持,暂且不表。

更多有关 SoC 的信息,其实可以查看 高通骁龙 / 三星 / 华为 对于旗下 SoC 的介绍,想挖掘 SoC 更多实际性能、底层参数也可以去相关 测评网站 自行研究。

ZRAM

如果把 SoC 比作是大脑,那我们也许能把内存(RAM)比作是血管。不过在 DevCheck 中我们会发现,内存方面还会出现一个 ZRAM,这又是什么呢?

在电脑上,如果 RAM 不够用,我们熟知的 SWAP 交换技术会将存储空间当作内存使用,来缓解内存吃紧的窘境,是一种「以算力换空间」的应急办法;而 ZRAM 则是一种虚拟的 SAWP 技术,是在内存中再划分出一个区域用来充当「内存」,当物理内存不够用时,系统则会根据算法将部分数据压缩后存放到这部分「内存」。这样一来既提高了内存的使用率,保证了用户的多任务体验,同时也使得付出的算力代价不那么明显。

厂商会在出厂时给设备预设一个 ZRAM 大小,从而有效提升用户的多任务体验。以 Pixel 2 为例,Android O 出厂时的 ZRAM 设置为 0.5G,而到了 Android Q Beta 5 中,这个数值变成了 2G,极大地提升了多任务性能🌚。

在物理内存非常充裕的情况下,自然不需要 ZRAM;而对于大部分设备来说,留出约三分之一左右的内存作为 ZRAM 是合理的选择。不过想要手动调控 ZRAM 大小,需要获取 Root 权限。

与存储相关的更多信息,也可以使用这款 DiskInfo 。

手机续航与系统更新

对于用户来说,系统的运行状态应当是透明而不可感知的。但在真正使用的过程中,很多因素都会影响系统正常工作,进而降低使用体验,因此我们需要了解部分 Android 系统的参数信息,以便掌握手机的「灵魂」。

深度休眠 Deep Sleep

理想状态下,我们的 CPU 应该是「动若脱兔,静若处子」,而「静」就主要体现在「深度休眠」这一项指标上。

当手机息屏待机执行完所有任务后,系统会进入到 Deep Sleep 「深度休眠」状态,此时 Soc 将会进入挂起状态,耗电量非常小,可以极大延长手机的待机续航。

一般来说如果手机在待机阶段遇到了异常耗电,很可能是因为无法进入「深度休眠」,需要用户 手动查看唤醒原因 。

在 DevCheck 信息面板,我们可以看到手机当前大概的运行状态,其中就包括了「运行时间」和「深度休眠」这两种时间信息,点击「CPU 频率」的柱状图也可以查看 CPU 频率分布和深度休眠的时间统计。在理想状态下,除去亮屏和充电状态以外的运行时间内,深度休眠的占比应该是越高越好。

感谢 @路中南 提供截图

有关 SoC 挂起和休眠相关的内容,可以查看 AOSP 项目中对 挂起模式 和 电耗管理 的介绍。

安全补丁级别

Android 系统会在每月月初推出安全补丁更新,各家厂商还会在此基础上附加一些系统的其他修复、优化才推送。对于用户来说,及时收到月度安全补丁是一件值得在意的事:安全补丁越新,手机上的 Android 系统越安全。

通过 Castro 我们可以看到,我手上的这一台 S10 安全补丁级别为「01-六月-2019」。不难发现,所谓「安全补丁级别」实际是一个日期,每个月的安全补丁都分有当月 1 号和 5 号两个级别,后者包含了前者。如果你在月初的 1 号收到了来自 5 号的补丁更新,请不要感到惊讶。

Google 每个月都会在 Android 安全性公告 页面发布安全性公告,少数派也曾针对 Android 安全补丁做过 简要介绍 。

Project Treble 与无缝升级

Project Treble 与 Android 8.0 一同推出,旨在分离系统与硬件驱动、方便厂商更新系统。依托于 Project Treble(下简称 PT),你的设备也可以在解锁后通过 刷入 GSI 快速切换系统 。

根据政策,出厂自带 8.0 以上版本的系统时一定是支持 Project Treble 的,就比如我手上的这台三星 S10。不过除了基础的 Treble 支持以外,对于 Treble 的支持程度也是我们需要关注的。

Treble 支持分为单双分区,双分区方案也就是我们常说的 AB 分区(slot),采用这种方案的手机可以支持「重启即更新」的无缝系统更新体验:当前处在 A 分区的系统将会把 OTA 升级安装在 B 分区,安装完毕后只要经过一次重启即可在下次开机时切换到 B 分区,即更新后的系统。

对于普通用户来说,这就免去了升级时与厂商 Logo 相看两不厌的尴尬。而对于安装 Magisk 的玩机用户来说,AB 分区的这种更新特性也让 Magisk 得以 在更新后保留下来 ,省去再刷一遍的繁琐。

然而非常遗憾的是,在使用 Castro 和 Treble Check 查询后发现,我手上这台三星 S10 并不支持 AB 分区,无法体验无缝更新。

需要注意的是,Castro 在上图「Root:Unavailable」在中文语言环境下会被显示成「Root:已用」,属于翻译错误而不是真的检测到手机获取 Root 权限,如果不放心可以切换到英文语言环境确认。

想要进一步了解 Project Treble 可以查看我们之前的 文章 。

影音与多媒体体验

Camera2 API

Android 中调用相机的应用编程接口叫做 Camera API,并在 Android 5.0 发布时升级了全新设计后的 Camera2 API ,提供了更多相机相关功能。

如果设备出厂便开启了 Camera2 API ,则为我们直接安装使用 定制版 Google Camera 提供了便利。五年前被披露曝光的 HDR+ 到现在早已经迭代过好几次算法,成为了 Google Camera 的招牌功能,也拯救了无数手机的成像质量。可以这么说,支持 Camera2 API 的手机经过 HDR+ 算法加持后,成像效果都不会太差。

DevCheck 还能够检测到你的设备对 Camera2 API 的支持等级,也就是说,每一个 Camera2 API 等级都对相机功能有不同程度的支持。如果是配备了多摄的手机,那每一颗摄像头对 Camera2 API 的支持程度可能都不同。在 S10 中,主摄像头的 Camera2 API 支持等级是 Level 3,最直观的感受就是 允许拍摄 RAW 格式照片 ,而只支持到 Limited 等级的前置摄像头和广角镜头并不支持此项功能,只支持一些基本相机功能和受到限制的高级功能

更多关于 Camera2 API 的信息可以下载 Camera2 Probe 进行查看。 

DRM 安全等级与多媒体

经常在手机上观看 Netflix 这类版权保护严格的视频流媒体用户,请预先在购买新设备前做好功课,检查设备的 DRM 安全等级,好在这两款应用都支持检视 DRM 的相关信息。

DRM 全称「Digital Rights Management」即数字版权管理,目的是为了防止带有版权的多媒体内容不被非法访问的访问控制技术。Netfilx、Hulu 等服务商也会在打开内容前先检查设备的 Widevine DRM Level 等级,依据级别来决定客户端所能提供的清晰度。这个安全级别 L1 为最高,L3 为最低。如果设备的 DRM 安全等级只有 L3,那么观看时的最高画质将被限制在 540P。

国产厂商大多不太注重 DRM 安全等级,小米 POCO F1 甚至因为这个问题在海外招致骂名后连忙 通过 OTA 更新 及时补上到 L1 。另外需要注意的是,除了 Google Pixel 系列以及少量其余机型之外,大部分的手机在解开 Bootloader 锁之后都会将 DRM 安全等级降低到 L3。

查询 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 项目页面 查看。

关联阅读:

© 本文著作权归作者所有,并授权少数派独家使用,未经少数派许可,不得转载使用。


4

Noah_Choi


文章来源: https://sspai.com/post/56107
如有侵权请联系:admin#unsafe.sh