特色

唯快不破 —— 索尼(Sony)Xperia 1 III 使用感想

Covid-19 仍未消散。和去年一样的是,受各种因素影响,Xperia 1 III 在发布后数月,直到夏天才开始逐渐在各个市场上市;和去年不同的是,这次大陆行货全球最先上市,6月初便投入市场,而港版则在7月末才发货,完全逆转了 Xperia 1 II 上市时的情况。首发港版 Xperia 1 III 至今大半个月,考虑到它和去年的产品没有明显区别,聊聊使用感想已经足够。

正如去年的 Xperia 1 II 由 Xperia 1 拍摄,今年的 Xperia 1 III 由 Xperia 1 II 拍摄

本文基于在香港地区销售的 Xperia 1 III 写成,型号 XQ-BC-72。本机支持 n1, n3, n5, n7, n8, n28, n38, n40, n41, n77, n78, n79 这些 5G 频段。在大陆地区,中国联通和中国电信采用国际通用的 n78 频段,中国移动则选择了 n41 和速率高穿透力弱的 n79 频段。另外,今年开始广电在计划和推广 n28 作为补充。不过,个人观点和去年一样,截至2021年三季度,5G 网络所带来的性能提升依然不足以抵消额外增加的耗电与费用。尤其是今年高通骁龙 888 芯片组在功耗控制上表现不佳,启用 5G 网络会大幅损害使用体验。据称,这次 Xperia 1 III 的大陆版本可以和港台地区的版本通刷系统,因此即使在意网络频段支持,在购买时也不用纠结地区版本。

截至写作时,Xperia 1 III 运行于2021年8月提供的软件版本 61.0.A.11.23。延续去年,这次也会着眼主观,从 Xperia 系列长期用户的角度来谈个人的使用感想。其中部分引用了 Xperia 1 II 使用感想中的表述,及 Xperia 1 III 开发者访谈中的内容,以便新读者也能尽可能了解全貌。

同样地,Xperia 1 III 的官方产品名发音为 Xperia One Mark Three。大陆地区的营销部门没有像去年一样创造和推广类似于“马克兔”(Mark Two)的昵称,而是用了自家单镜头无反相机在大陆地区的注册商标“微单”,在官网商品标题上就着重强调 Xperia 1 III 是微单手机,也不知道最终会对产品的口碑和销量起到正面还是反面作用(笑)。

Speed and Beyond

智能手机市场的发展继续延续去年的趋势。市场规模增长放缓,智能手机厂商从单纯的规格军备竞赛,逐渐转向了差异化竞争。一方面,已经可以应对基本通信和工具需求的入门和中端机型占据销量主力,另一方面,高性能多功能的高端机型仍在不断探寻新的卖点。总体而言,Android 阵营由于厂商数量较多,呈现出更丰富的前进方向和噱头功能。

在此背景下,索尼仍然维持了聚焦发烧友和品牌粉丝的策略。今年的 Xperia 也面向喜欢索尼、喜欢 Xperia,指定要买 Xperia 的人设计。和之前相同,让用户能拍出更好的照片、听音质更好的音乐、看更高画质的视频、玩竞技游戏更发挥水准,是 Xperia 的目标。对高端智能手机有追求,对摄影、音视频、电子竞技等领域充满兴趣的人,是 Xperia 的目标用户。

Xperia 1 – Xperia 1 II – Xperia 1 III,手头三台设备的合影。可以看到相机模块的尺寸逐渐增大

上一代产品 Xperia 1 II 的理念是 Built for speed,这次 Xperia 1 III 则是 Speed and beyond,在继承了 speed 的同时,更进一步。这里的 speed 不止是从 Xperia 1 II 开始支持的 5G 通信速度,还包括相机的高速自动对焦、屏幕的高刷新率等性能和体验。

从结果上来看,Xperia 1 III 做到了 beyond Xperia 1 II,它几乎补齐了去年产品上相对较为显著的一些短板。然而,它尴尬地遇到了发热巨大的骁龙 888 芯片组。没有为 Xperia 树立新的标杆,反而存在切实的体验问题,纵然产品性能和功能本身可圈可点,但也很难称为系列的新高峰。言必称其他同 SoC 产品也发热巨大,或是 iPhone 12 也发热明显,终究像是一种话术,无法掩饰在一些使用场景下 Xperia 1 III 规格升级体验下降的尴尬现状。

当然,撇开 SoC 带来的可谓“不可抗力”的问题,Xperia 1 III 确实在各个方面有扎实的改进。如果对续航要求不高,对机身发热不那么介意,或者日常生活所处的环境温度不会太高,集成了索尼最新移动影像影音技术的 Xperia 1 III 仍然是目前最先进的 Xperia。

Photography Pro

相机是 Xperia 1 III 最重要的升级之一。

荣获 TIPA World Awards 2021 最佳拍照智能手机奖项的 Xperia 1 III 名至实归。它不但从硬件上补齐了上一代在超广角和长焦端的短板,创新地加入了世界首创可变长焦镜头,还继续改进了 Photography Pro(下称 Photo Pro),同时提升了拍照的画质和易用性。

与 α 的工程师共同开发,继承 α 技术的 Xperia 1 III。当然,就像 α 并不等同于微单,Xperia 1 III 的性能也没法和 α 9 相提并论
世界权威摄影奖 TIPA World Awards 2021 最佳拍照智能手机奖。这些年和 DXOMARK 话不投机的索尼去年还在访谈中表示并不需要 DXOMARK 这类测评机构告诉它们什么是好相机,今年却在显眼位置宣传在 TIPA 侥幸获得的殊荣

Xperia 1 III 总体延续了 Xperia 1 II 的三镜头相机系统+3D iToF 传感器,并以受到好评的高速自动对焦为轴做了功能强化。主摄像头是24mm的广角镜头、还搭配了16mm的超广角和70/105mm的长焦镜头,三块传感器有效像素皆为1220万,分别为尺寸 1/1.7”、1/2.5” 和 1/2.9” 的索尼 Exmor RS™ for mobile 传感器。

Xperia 1 III 维持了原有的摄像头布局,ZEISS T* 商标低调印在镜头之间

Xperia 1 III 世界首创的潜望镜式可变长焦镜头通过改变内部的镜头组位置,以不到微米的单位调节镜片,来切换 70mm 和 105mm 两种焦段(约2.9倍和4.4倍光学变焦)。超广角和广角镜头则保留了之前的 16mm 和 24mm,最终实实现了 16mm/24mm/70mm/105mm 三摄四焦段影像系统,和摄影爱好者常说的大三元配置相当。

潜望镜式镜头通过棱镜折射光线,允许长焦镜头在横向布置的两个不同焦段镜头间切换
一般的定焦相机模块内部的镜头群是一个整体,通过前后移动对焦。但可变式长焦镜头为了能够对焦,每个镜片必须各自独自移动。因此,和传统相机模块相比,零件的设计精度和组装精度必须更高

3D iToF 测距传感器能在43200点分别测量与被摄物体的距离,辅助对焦。覆盖率70%的247点相位对焦,和 Xperia 1 II 相同。

3D iToF 传感器可以实时计算相机与拍摄对象之间的距离,
在复杂的光线环境(尤其是暗光)下快速准确对焦

这次,Xperia 1 III 搭载的所有镜头都为蔡司(ZEISS)镜头,并施加了减少光线反射的 T* 镀膜,忠实再现蔡司风格的色彩与虚化风格,及其独特的透明感和立体感。这些镜头还都搭配了双 PD 索尼传感器(新增于长焦镜头),能够连续自动对焦移动物体。

和去年一样,不同市场对蔡司镜头的宣传文案不同。日本官网明确宣称采用蔡司镜头及 T* 镀膜;英文官网含糊地称为 Xperia 拥有蔡司杰出水准,经过蔡司光学校准,T* 镀膜减少反射;中文官网则大字体强调蔡司 T* 镀膜

Xperia 1 III 上 24mm 广角主摄像头和上代规格一致,为 1/1.7” 大尺寸,相比 Xperia 1 的 1/2.6” 大幅提升。其像素尺寸高达1.8μm(Xperia 1 为 1.4μm)。除了华为去年在 P40 系列上使用的惊人的 1/1.28” 50MP Ultra Vision 主摄传感器,能够在4像素合一时提供2.44μm 的像素尺寸(单像素则仅1.22μm),Xperia 1 III 的主摄传感器今年依然保持了同级领先。F1.7 的明亮镜头也小幅领先同级对手的 F1.9 或 F1.8,入光量更大。不知不觉,像素尺寸和镜头光圈居然成为了 Xperia 的优势项目。

BIONZ™ X for mobile 让 Xperia 1 III 同样具备了相比 Xperia 1 约1.5倍的感光性能,在弱光环境下也能通过降噪和锐化处理,维持一定的清晰度

以上是 Xperia 1 III 相机系统的硬件规格与提升。和去年的预测一样,超广角和长焦镜头是今年的重点提升方向。

另一方面,Xperia 1 III 相机的软件功能也做了改进。最明显的一点,是将此前延续发展了数年的相机应用与 Photo Pro 融合,新生为 BASIC 模式,相机的整体体验更为统一,默认画质和功能也有增强。

出于不可知的原因,BASIC 模式这一重大改变在索尼中国的宣传文案里被彻底忽略。或许只是因为没能想好要给 BASIC 模式起什么中文译名吧(笑)

BASIC 模式的用法和界面与过去差别并不大,集成了基本的拍摄功能,包括前摄和视频拍摄,提供了变焦、虚化、连拍等一些基本设置。该模式是典型的智能手机相机风格。

AUTO/P/S/M/MR 模式则和之前一样,采用了源于 α 相机的界面,可以调节快门速度、ISO 感光度、白平衡等高级设置,也能选择以 RAW、RAW+JPEG 或 JPEG 格式保存照片。

在通过手机右侧的实体相机快门键启动相机时,可以选择始终进入 BASIC 模式,或是最近一次退出时的选择。

Xperia 1 III 的 Photo Pro 在前代基础上做了增强,继续提供一系列被称为 Technology from α 的相机技术。新增的实时追踪对焦功能,可以通过点击屏幕并锁定对焦目标,借助 AI 算法,以颜色、图案、距离、人脸、眼睛等为依据,持续自动对焦。实际使用中,Xperia 1 III 的实时追焦性能十分优秀,对焦迅速准确,即使目标离开取景画面,也能在再次回到画面中后继续对焦。在公园拍摄奔跑的儿童等场景时,抓拍成功率大幅提高。即使被摄物体自身不动,实时追踪也能发挥功效。比如要拍摄料理上传 SNS 时,只要触摸对象启动追踪对焦,就能在移动并改变构图的同时持续对焦。Xperia 1 III 的实时追焦功能不易用语言描述,只有实际体验才能感受到它的便捷。

除了所有镜头都支持的眼部对焦,Xperia 1 III 的广角镜头(主摄)还支持实时眼部对焦。半按相机快门键后, Photo Pro (含 BASIC 模式)就会开始持续检测画面中的人或动物的眼部并追踪对焦,便于随时捕获被摄对象的瞬间表情。

Xperia 1 III 支持在 AUTO/P/S/M/MR 模式下最高20帧每秒的 AF/AE 高速连拍,并新增了逐帧降噪,提高暗光环境下的连拍画质。其中超广角和长焦镜头仅支持10帧每秒。Xperia 1 III 还继续支持每秒60帧 AF/AE 计算,帮助在持续对焦过程中得到准确的拍摄参数。类似地,超广角和长焦镜头仅支持30帧每秒。实际使用中,Proto Pro 的连拍能力令人印象深刻,连续拍摄上百张也毫无压力,还能通过 Google Photo 等软件轻松制作成动图视频,别有乐趣。

最后,为了应对潮流和竞品,索尼这次把 AI 字样加入了 Xperia 1 III 的数码变焦技术名称中,称之为 AI 超解析变焦,号称和传统数码变焦不同,通过索尼的 AI 技术修复图片,实现丰富细节和更高的清晰度。另外,Xperia 1 III 虽然并没有专门的夜景模式,也很尴尬地小幅宣称,仅靠其广角镜头的 1/1.7” 大尺寸传感器就能实现纯净夜拍。

主观来讲,Xperia 1 III 的相机系统表现出色。 Photo Pro 也提供了相比传统智能手机更有趣的专业摄影体验。不过 Photo Pro 略显生搬硬套的操作界面,不一定能获得所有人的好评。索尼显然也意识到了在还原 α 的同时,也要考虑到手机本身的操作特性,但诸如专业模式下无法连续切换焦段、切换焦段需要的操作步骤较多、一些特性和设置有镜头、模式的限制,甚至可能和其他功能互斥等,都给人一种软件设计理念缺乏打磨,易用性还有改进空间的感觉。有个比较微妙的一个问题是,相机拍照时的快门音会有约半秒的延迟。希望这些可以在今后的产品中被不断完善。当然,Photo Pro 在相机启动和保存速度等基本性能上做的还不错,维持了从 Xperia 1 II 就实现的水准。如有兴趣,可以参考去年的文章了解 Photo Pro 提供的主要功能选项。

最后回到画质。Xperia 1 III 在日常随拍中就体现出了高画质。24mm 的主摄总体来讲维持了与前代相当的水准,因此这里首先谈谈超广角和长焦。

受限于网络和带宽等条件制约,和以往一样,本文样片都经过了分辨率压缩(短边1080像素)并以 JPEG 格式再次以90%压缩率保存。

首先是同一时刻同一位置不同焦段的对比。时间为傍晚五点后,阳光开始变暗的开始。这套虽然没有定量比较,但肉眼可见广角和长焦镜头的画质较 Xperia 1 II 明显改进。不过不难想象105mm长焦端的表现还是落后于主摄,且不出所料地,AI 超解析变焦效果有限,在等效300mm焦段变焦下,画质勉强能在手机的小屏幕上观看。

ISO50 – 1/400 超广角
ISO64 – 1/640 广角
ISO50 1/160 105mm长焦
ISO50 1/200 105mm长焦加 AI 超解析变焦

时间关系,还没有专门用 Xperia 1 III 在不同场景下拍摄更多样片,今后不定时补充。

Cinematography Pro

Cinematography Pro(下称 Cinema Pro)在 Xperia 1 III 上健在,日常风景也能如电影般记录。开发索尼电影摄影机的团队作为顾问参与开发 Cinema Pro ,允许用户以 CineAlta 独有的 Look(滤镜)录制 4K HDR 10bit 视频。Look 和以往一样,提供了 VENICE CS ・Opaque/Blue60Yellow60 ・Bright/Blue20Yellow60 ・Warm/Yellow80 ・Strong/Blue100 ・Cool/Blue60・Soft/Yellow40 ・Soft Monochrome 这些方案,模拟电影色调与风格。在 Cinema Pro 的操作界面上,对焦、白平衡、ISO、快门速度等都能手动设置,并可以在录制过程中手动调整焦距。Cinema Pro 以 21:9 画面比例录制的视频可以在 Xperia 1 III 上全屏回放。

Cinema Pro 效果示意图,支持在录制过程中调整焦距实现电影化的拍摄效果

相比上代,Xperia 1 III 新支持 4K HDR 120帧高帧率慢动作视频,同时提供了水准仪、手动对焦、风噪抑制等多种高级功能。其中,4K HDR 120帧模式的慢动作在 Project FPS 24/25/30/60 下分别支持5/4.8/4/2倍慢速录制与播放。

Xperia 1 III 新增的105mm长焦扩展了录制场景,能提供更多的创作可能。在录制视频时,广角和长焦镜头支持 Optical SteadyShot 光学+电子混合防抖,广角镜头还额外支持 FlawlessEye 技术,提供稳定的视频拍摄质量。

顺便一提,CineAlta 是索尼的数码电影摄影机,以还原35mm胶片相机的叙事感与表现力著称。2000年乔治卢卡斯导演在拍摄《星球大战2克隆人的进攻》时采用了首款 CineAlta HDW-F900,推动了电影拍摄全数字化的普及。

alta 在意大利语中意为顶级

个人并没有拍摄电影的兴趣,一直对有多少人会为 CineAlta 和 Cinema Pro 的这些功能心动表示怀疑。尤其是 Cinema Pro 必须有一定的相关知识才能拍出正常效果的视频,否则可能只会得到一片虚焦和模糊,使它完全失去了快速记录日常片段的便捷性。不过偶尔在需要有意识地录制视频时,独特的滤镜效果和 21:9 的电影比例,倒也确实增加了一些趣味。索尼目前还在每年改良 Cinema Pro 的功能和性能,或许是因为它仍是 Xperia 当前产品理念的一种象征吧。

不过,一个令人疑惑之处在于,上文提到的 FlawlessEye 技术尽管甚至注册了商标,却无法在网络上找到哪怕简单的介绍信息。这恐怕也反映出索尼移动内部对于把电影拍摄体验作为卖点是否有效的迷茫态度。至于为何这次用了相比 Xperia 1 II 时翻倍的篇幅介绍 Cinema Pro,可能只能借用李安导演最近在访谈中的一句话来解释 —— 我看不懂,但我大受震撼。

4K 120Hz HDR OLED

Xperia 1 III 最重要的升级之一,便是这块世界首创的 4K 120Hz HDR OLED 屏幕。尽管在发布前和发布后外界都有对骁龙 888 能否支持 4K 120Hz HDR 显示持怀疑态度,索尼还是最终在 Xperia 1 III 上实现了这一性能。

难能可贵的非异形非打孔完整屏幕,甚至还有一流的画质

Xperia 1 III 是市面上第六款采用了 4K 屏幕的智能手机,前五款分别是索尼 Xperia Z5 PremiumXperia XZ Premium、Xperia XZ2 Premium、Xperia 1Xperia 1 II。自然,Xperia 1 III 也是目前唯一一款支持 4K 120Hz 刷新率的智能手机。为了让 4K/120Hz 驱动可以稳定工作,Xperia 1 III 屏幕的电源电路和驱动电路等基础设计花费了很多精力。此外,适合观影的 21:9 CinemaWide 屏幕比例、业界最高分辨率的 4K HDR OLED(3840×1644像素)、X1™ for mobile 图像处理引擎、4K SDR 内容升格都是传统功能,不再赘述。

21:9 的屏幕比例可以完美适配宽屏电影画面而无黑边,获得更大的实际画面显示面积
©khara, inc.

虽说对刷新率的敏感度因人而异,但相比 Xperia 1 II 聊胜于无的软件模拟90Hz刷新,Xperia 1 III 的120Hz刷新的区别显著,短短几天,模拟90Hz的 Xperia 1 II 和单纯60Hz刷新的 Xperia 1 就显得扎眼,在菜单、网页滚动时残影严重。差距如此之大,以至于尽管120Hz明显增加了耗电,加剧了发热,对此敏感而能明显感知区别的自己还是决定始终启用120Hz模式。Xperia 或许可以在今后学习其他厂商提供可变分辨率或智能刷新率调节,获得在显示效果和功耗上的平衡。

和之前一样,号称搭载了能忠实还原制作者意图的创作家模式在 Xperia 1 III 上继续延续。在应用支持时,Xperia 1 III 能够以 HDR 高动态亮度范围、部分覆盖高清电视和蓝光影碟采用的 ITU-BT.2020 色域、100%覆盖数字电影 DCI-P3 色域、D65 白平衡点、10bit 色深(软件模拟 8bit 硬件至近似 10bit 效果)的规格播放内容,还原电影导演在拍摄影片时的原始视觉效果,直接感受创作者想要传递的情感。对于优秀的作品,每一个场景都融入了创作者有意识的设计,强行用算法调整画面效果绝非最佳做法,甚至可能损害作品的完整性。Xperia 的创作家模式则为解决这一问题而生。在 Xperia 1 III 上,创作家模式默认在 Netflex、Photo Pro、Cinema Pro、Google Photo 等应用中自动启用,用户也可手动更改设置。

对于 2019 年 10 月发售的 Xperia 1 Professional Edition 和 2021 年 2 月发售的支持 5G 毫米波的 Xperia PRO 等专业器材,每一台机器都在出货时做了屏幕偏色校准。Xperia 1 III 沿用了当时的经验,也在生产线上增加了校准工序,使其成为索尼第一款出厂时逐台校准屏幕的面向普通用户的民用智能手机,以满足对画质有着很强执念的 Xperia 用户。因此,在作为 α 相机等设备的外部监视器使用时,Xperia 能够提供更准确的显示质量。

每一台 Xperia 1 III 在出厂时都经过了 D65 白点校准

从纸面回到实际。根据一些网络投稿,个别 Xperia 1 III 的屏幕在低亮度或斜视状态下存在局部偏红或偏绿的症状。自己手头的这台机器并没有明显的问题,在显示正常内容时不会觉得有任何异常,但在显示大面积纯色画面时,自己观察可以发现画面两端由于角度不同会有轻微的色调差异,略微偏红。在较大角度从侧面观看屏幕时,也会因为可视角度问题产生一些色差。此外,在完全相同的画质设置下,Xperia 1 III 色温明显较 Xperia 1 II 暖。或许是个人偏好冷色,Xperia 1 III 第一眼的感观并不惊艳,甚至不如 Xperia 1 II 讨喜。不过在没有对比时,Xperia 1 III 的屏幕效果令人满意,和前代同一水准。最高亮度下,Xperia 1 III 的亮度略高于 Xperia 1 II,但在室外阳光下可视性依然平庸。如果明年的 Xperia 1 IV 依然会个别校准屏幕,会再做比较。

总之,尽管不完美,也有功耗上的妥协,但这都不妨碍 4K 120Hz HDR OLED 屏幕的 Xperia 1 III 提供了令人满意的目前第一流的智能手机显示水准。此外,Xperia 1 III 的屏幕圆角比前两代都小,屏幕形状更加接近矩形,也是一个可喜的改变。没有刘海和挖孔,不会在观看宽屏电影或各种内容时不可避免地缺失一块画面,也继续是 Xperia 的一贯优势。

Full-stage Stereo Speaker

作为老牌音频设备厂商,索尼每年孜孜不倦地改良 Xperia 的音频性能。Xperia 1 III 最大的改进是重新设计的被称为 Full-stage Stereo Speaker 的环绕式立体声扬声器,大幅提升了外放音效的立体感和临场感。

结构对称的正面双扬声器可谓 Xperia 这些年来在外放音效上的最大改进

Xperia 1 II 将下方扬声器从手机底部移动到正面,并重新开发驱动单元以增加低音表现力。但由于通话需要,又受限于内部空间,下方扬声器没有提供用于增强低音的盒状 enclosurer 结构,而是让整个机身一起震动。虽然那样也能提供一定的低音,但机身震动也会对音质造成影响。这次 Xperia 1 III 给两个扬声器都设计了相似的盒状结构,可以实现更清晰的音质,响度提升约40%。

新设计的扬声器结构使之前被诟病的机身背面在外放时共振的情况减小了很多

尽管自己不常使用外放,对过去每年对扬声器的改进不以为然。但 Xperia 1 III 的改进较以往都要显著,音量增加,声音也更加饱满,自己一个人在家使用外放的机会也比过去增加了一些。

另外,由索尼音乐娱乐和索尼影业屡获大奖的专家共同开发的音频调校与 Dolby Atmos 立体声音响技术、基于 AI 的数字音频升格技术 DSEE Ultimate、如今不多见的 3.5mm 有线耳机插孔、LDAC 高解析度蓝牙音频,为 Xperia 1 III 的音质提供了保证。其中对于有线耳机,响度继续较上代提升40%/3dB,并抑制中高音量失真,Dolby Atmos 关闭时,最大音量在 1KHz 附近时的失真仅为 Xperia 1 II 的1/8。

索尼是这些年 HiRes 的主要推动者之一,Xperia 1 III 也全面支持 HiRes 回放

至于另一个卖点 360 Reality Audio,由于音源较少,虽然索尼这两年在各类音频产品上推广,但目前还没有太多实际意义,评价起来较为尴尬,不多展开。

极为罕见而先进的 3.5mm 耳机插孔

Game Enhancer

游戏优化也是 Xperia 1 III 坚持发展的一个领域。去年索尼联手堡垒之夜与 Call of Duty: Mobile 为 21:9 屏幕比例优化,显示更宽游戏场景,今年则让 Xperia 1 III 成为了首款支持 Asphalt 9: Legends 的120Hz显示的设备,甚至在一些地区预装该游戏并只能禁用而无法彻底卸载,颇有些弱弱联手破罐破摔的味道。

游戏增强器除了已有的性能优化、游戏录制、免干扰、防误触区域设置、降低发热的 HS 直接供电,还增加了若干新功能。120Hz画面刷新呈现更清晰运动目标。240Hz软件插帧帮助减少画面残影。240Hz 触控采样率减少触控延迟(采样率较 Xperia 1 II 提升4倍,触控响应速度较 Xperia 1 II 缩短35%)。低伽玛提升器能够针对性地提亮暗部画面便于发现隐藏的对手。音频均衡器可以在 10band+-10db 的尺度微调音质,增强或减弱游戏中指定特征的声音,在玩第一人称射击游戏时能放大周围的脚步声,更容易发现敌人接近。Inline mic 和 boom mic 这两种游戏中常用的耳机得到音质优化,语音更加清晰。120帧高码率录屏和30秒提前预录、30秒600张游戏截图,都更便于分享游戏内容。

尽管先前高通中国的发布会幻灯片上罗列了一众手机却没有 Xperia 1 III 的位置,索尼移动作为高通的长期合作伙伴,Xperia 1 III 确实是支持 Qualcomm® Snapdragon Elite Gaming 游戏优化的设备之一。尽管前年大陆行货的 Xperia 1 不兼容 Play 商店中的 PS4 Remote Play 应用,Xperia 1 III 确实仍然支持蓝牙连接 DUALSHOCK 4 操作 Android 游戏或遥控游玩 PS4/PS5。

最后,对于不用手机玩游戏的人来说,用直接供电模式运行大型程序可以降低发热,减少电池损耗。将通话功能加入游戏增强器甚至可以曲线救国实现通话录音。

Xperia 1 Mark III

Xperia 1 III 的硬件符合今年的旗舰标准。

外形设计方面,Xperia 1 III 与 Xperia 1 II 一脉相承。除了上边框进一步收窄,上下基本等宽,以及背面摄像头模块面积加大外,没有明显差别。71mm×165mm×8.2mm 约188g的机身在6.5寸设备中仍属轻便,长度相比前代略减数毫米。

索尼中国为 Xperia 1 III 的雾黑、雾灰、雾紫这三种配色配上了暮笙紫、沙月灰、夜烟黑的文艺名称

Xperia 1 III 正面采用了最新耐划的 Corning® Gorilla® Glass Victus 钢化玻璃,背面则为高强度的 Corning® Gorilla® Glass 6。防滑质感的金属边框及磨砂玻璃后盖加工,不易留下指纹。相比背面光滑的前两代,Xperia 1 III 放置在斜面或腿上时不易打滑摔落,握持手机时的触感也更加高级。因此,Xperia 1 III 的手感与 Xperia 1 II 有微妙的不同,虽然重量差别不大,但却更加扎实稳重。

综上,虽说和前代相比缺少变化,Xperia 1 III 依然充满了 Xperia 个性的设计风格,Xperia 的爱好者拿在手中必能满心欢喜。对于新用户,Xperia 1 III 在外形质感上做的努力,在上手的那一刻应该就很容易感知。

克制的摄像头模块设计,没有喧宾夺主地强调四颗镜头和四块传感器的存在感

这次 Xperia 1 III 的独立相机快门键采用了立体纹理设计,寻找和操作手感更佳。新增 Google Assistant 快捷键,可以通过第三方软件映射为其他功能。侧面指纹识别电源键的反应速度和识别准确度比 Xperia 1 II 明显提升,从拿起手机到屏幕解锁点亮,一瞬之间一气呵成。这些都是细节上的稳健改良。不过,更灵敏的指纹识别也增加了误触解锁的概率,可能需要一段时间适应并习惯不按到指纹解锁键的持机位置。IP65/68 防尘防滴(USB 无盖防水+湿手触控优化)则是 Xperia 系列近十年的标配,减少了日常使用时的进水担忧。

侧面从上至下依次为音量键、指纹识别电源键、Google Assistant 键、两段式相机快门键

值得一提的是,晚了整整几年,Xperia 终于改用了时下流行的震动触感风格,发挥出了去年搭载却没有应用的大体积线性马达的性能。无论是解锁还是手势返回,Xperia 1 III 都会反馈短促有力的震动。这虽然并非必须,但也总算是填补了一项长期的遗憾。

规格性能方面,高通骁龙 888 芯片组、12GB内存、256/512GB UFS 存储及最高1TB microSDXC 扩展存储、Wi-Fi 6 高性能无线网络和蓝牙 5.2、4G/5G/Wi-Fi 智能切换、双 SIM 卡与扩展存储3选2。

阻碍 Xperia 1 III 成为系列一代名机的高通骁龙 888 芯片组

据测试,Geekbench 单核性能 1130,多核性能3635,OpenCL 性能 4659。Google Octane 2.0 性能分 45,800。符合骁龙 888 的水平。作为参考,Xperia 1 II 的 Geekbench 单核性能 866,多核性能 3017,OpenCL 3159。Google Octane 2.0 性能分 33837。骁龙 888 的纸面性能提升明显。

Xperia 1 III 拥有 4500mAh 的系列高端机型最大电池容量,并支持 30W USB PD 快充,能在30分钟内充电50% 。它还支持 15W 快速无线充电及 Qi 反向无线充电。系列传统的电池长寿技术能智能学习用户的充电习惯,避免过充,让电池性能在三年内不会显著衰减。

这样的硬件规格本该是理所应当的正常升级,却被发热严重耗电增加的骁龙 888 拖累。尽管对骁龙 888 已有心理准备,但实际使用后,还是忍不住对使用体验的下降感到可惜和无奈。基于同样的软件配置和使用习惯,相比搭载了骁龙 865 的 Xperia 1 II,电池增量500mAh 的 Xperia 1 III 轻度使用下的续航大约只有前者的八成。这还没有考虑 Xperia 1 II 已经使用了超过一年。而如果亮屏时间较长,开启120Hz屏幕刷新会明显加剧续航问题。Xperia 系列十余年首次摆脱了续航焦虑,还没有坚持到一年,就又改了回去。

续航还不是最大的问题。平心而论,拥有4500mAh大容量电池的 Xperia 1 III 打了折扣的续航依然满足自己的个人需求。从早到晚工作一天后,Xperia 1 II 的剩余电量通常在50%以上,Xperia 1 III 也能有35%左右,没有明显的电池续航焦虑。最大的问题是发热。在同一场所,在约30度的室内,即使屏幕关闭,Xperia 1 III 的背面仍可能有一定的热度。室温约28度时,诸如浏览网页和信息收发等 Xperia 1 和 Xperia 1 II 几乎完全不会发热,或至多勉强能被感知到微热的场景,Xperia 1 III 会有较明显的温热。在大型应用或使用相机等对处理器负荷较重的场景,Xperia 1 II 会在一段时间后才开始逐渐升温,Xperia 1 III 则是在数分钟后开始迅速升温,后盖上半部分处理器附近和边框上部甚至不适合长时间接触,恐有烫伤的可能。温度降低,在室温不到25度时,Xperia 1 III 的发热问题能得到明显缓解,浏览网页或收发消息等低负荷任务下没有明显热度,但 Xperia 1 II 此时则能往往后盖冰凉。以上还都是没有启用 5G 的情况。而即使同样室温显示25度,是否位于空调送风位置,也会影响机身的体感温度。因此,尽管还没有实际尝试,也能合理推测 Xperia 1 III 不太可能在30度以上的室外长时间工作,而这对于手机这种需要在广泛场景下使用的随身设备来说是严重的问题。有鉴于此,在索尼没有提供软件更新限制处理器性能来降低发热之前,很难向一般用户推荐 Xperia 1 III。

不过,虽然对比条件不完全相同,骁龙 888 日常使用的高发热量确实也换来了整体响应速度的加快。无论是屏幕解锁,浏览网页,还是打字聊天,在绝大多数场合,安装了完全相同的应用的 Xperia 1 III 都比 Xperia 1 II 可感知地更快。单手持机时,手指也不太会接触到上方发热部位。Xperia 1 III 发热而不立即降频,总算至少避免了日常使用又热又卡顿的悲剧结局。事实上,Xperia 1 III 发热与否还有一些不可预测。例如,在用 Amazon Prime 最高画质在线观看电影时,又或者单纯阅读电子书时,发热情况远低于预期,完全在合理范围。另一方面,日版 Xperia 1 III 在上市后很快被发现是运营商 Docomo 的预装应用 my daiz 的设计缺陷引发了无端发热,在禁用后很多用户表示发热大幅下降,可以接受。另据称,Xperia 1 III 的行货系统也在最近的系统更新中通过默认限制应用后台运行来改善发热问题。甚至还有网络传言称今后的系统升级会通过锁频限制处理器性能来避免过热。

综上,Xperia 1 III 的发热问题虽然严重,但根据环境温度、使用场景、软件设置不同,可能发生一定的变化。这里将以个人的使用习惯为基准,在今后继续更新 Xperia 1 III 发热问题的后续发展。无论如何,至少在今天,日常使用手机时的温度较高,极大影响了对这款手机使用体验的评价。

软件系统方面,当前基于 Android 11 系统版本的 Xperia 1 III 仍是系列一贯的轻量简洁系统,仅在 Android 的基础上增加了画质设定、音质设定、电池设定等若干特色功能,以及一些面向摄影摄像影音娱乐的独占应用。和以往一样,撇开个别预装应用和游戏增强器中可以立即关闭的推广位,整个系统不存在广告。总的来说,Xperia 系统一直有较好的稳定性,且对各类继承了 Google 服务框架的 Android 应用兼容性良好,不会出现一些国产手机厂商因为不当或有意修改 Android 系统,致使部分海外常用的应用无法正常工作的情况。不过,当前版本的 Xperia 1 III 系统比去年同期的 Xperia 1 II 小问题稍多,极偶尔会遇到诸如震动失效需要重启恢复的问题,推测是某些系统自带应用的 bug,期望在今后的系统更新中修复。

2021/09/05 更新

实际使用一个月有余,作为日常主力也超过半个月,更新一些关于系统稳定性和发热耗电方面的体验。

关于系统,遇到过一次死机,在连接车载蓝牙系统时整个界面失去响应,在长按电源键重启后恢复。Photo Pro 拍摄时的快门音在有些场合会有约0.5秒的延迟。偶尔会出现 LED 消息灯在通知被清除后依然常亮的问题,可能和应用本身有关。因此维持正文的评价,系统总体稳定,但相比去年,可感知的小问题稍多,希望之后的更新可以改善。

关于发热,结论不变,环境温度高于25度开始发热会从可感知到难以接受。据称国行系统会在不久后的新版本系统更新中进一步激进地通过降频和啥后台等方式来抑制发热,港版系统尚不明确。

关于耗电,实际的表现高于预期,增加的耗电一定程度上被 Xperia 1 III 较去年增大了12.5%的电池容量抵消,较大的发热在不太高强度使用时,似乎没有想象中明显增加耗电。

实际使用中,在家中全程接入 WiFi,即使亮屏时间超过6小时19分钟(由 Android 系统自带的数字健康功能统计),Xperia 1 III 在充满电后也能从早上七八点坚持到夜里十一二点,剩余电量4%。

在一个常规的工作日,Xperia 1 III 可以在早上六点十五从无线充电器上取下,通勤来回2小时蓝牙音频,大部分时间接入 WiFi 网络,短暂的使用若干次相机记录信息或扫码,白天亮屏使用时间约2小时的情况下,仍在晚上七点时剩余30-40%左右的电量,回到家后再继续约1-2小时的亮屏使用时间,最终剩余电量通常也在10-20%之间。

在外出没有 WiFi,气温32度但七成时间在地铁和有冷气的建筑物内时,全程蓝牙 LDAC 连接播放 HiRes 音频,亮屏69分钟(阅读书籍、浏览网页、微信收发消息和扫码付款等),电池从12点24分的82%下降到14点25分的58%(2小时消耗24%)。

以上三种情况,都是基于港版系统禁用 5G 网络、全程代理上网并自动同步所有 Google 和 Microsoft 服务,使用 Google Fit 记录运动数据,且未特意限制后台操作,的条件,仅供参考。于是,尽管发热耗电都不够理想,但 Xperia 1 III 的续航依然可以满足自己的使用习惯。可以推测,在非高强度使用时,Xperia 1 III 的亮屏时间大概也能保持6-7小时。如果较多地使用相机或玩游戏,续航必然会大幅缩短,如果室温较高发热巨大,恐怕会更严重。

2021/09/11 更新

三天前,Xperia 1 III 收到了 61.0.A.11.92 系统版本更新的推送,据称修复了一些游戏兼容性问题并改善了发热现象。实际使用三天,非游戏等重度使用场景下,发热有可以感知的下降,但性能却没有明显受损,续航也提升了一些。不精确地估计,Xperia 1 III 平时的发热情况已经接近去年 Xperia 1 II 的水平。最近 Xperia 1 II 作为副机使用,在习惯了 Xperia 1 III 之后,无论是系统响应速度还是网页渲染速度,都能感觉到性能上确实存在差距。如果之后的系统更新可以继续保持性能和发热的平衡,Xperia 1 III 最大的体验短板也能在一定程度上被弥补。之后会继续观察和更新与发热有关的情况,并提供一些实际的数字。

Xperia and Beyond

如果说 Xperia 1 是放弃了错误路线的背水一战,Xperia 1 II 明确了更具体的设计思路和目标,Xperia 1 III 则是继续沿着前代的轨迹发展,把索尼目前能够提供的全都集成到了这一台移动设备。考虑到骁龙 888 的发热问题,Xperia 1 III 并不能成为前代 Xperia 1 II 毫无疑问的替代。如果对相机的超广角和长焦镜头画质有要求,对120Hz屏幕刷新率敏感,经常使用扬声器外放,又不需要经常在高温环境或室外使用手机,Xperia 1 III 能提供目前最佳的性能和体验。如果不满足以上条件,去年上市的 Xperia 1 II 则是具有更高性价比的能提供几乎所有 Xperia 风格的明智选择。更何况,Xperia 1 II 也几乎肯定能够得到最新 Android 12 系统的版本升级。

哪怕索尼移动最近通过削减开支实现了整体盈利,少许远离了被放弃的境地,随着销量的逐年递减,索尼集团还是在2021年第一季度的财报中不再单独列出 Xperia 的销量数字。这或许是索尼移动与索尼电子部门调整进一步加深,也可能是 Xperia 如所有人预想的那样销量越发边缘,不值一提。无论如何,作为已经发展了十余年的品牌,希望它能继续带来令人兴奋的集成索尼独家技术的产品。在索尼自家 Cyber-shot 便携相机和 Walkman 播放器产品线不断收缩,逐步退出历史舞台的今天,Xperia 如果可以获得那些对摄影对音乐有追求的手机用户的支持,或许能找到新的增长点。

毕竟,最好的 Xperia 永远是下一部(笑)。

【图文内容不定期更新】

本文相关图片版权属于各版权所有人

基于 Kubernetes 的自动扩展(auto scaling)引

Kubernetes (略记为 k8s)作为开源的容器编排系统,近年来快速流行,正在成为云原生分布式系统架构中的事实标准。可扩展性(scalability)是分布式系统设计的一项重要主题,而 Kubernetes 提供了丰富的自动可扩展性支持。本文以 Kubernetes 内建特性为基础,结合 Azure Kubernetes Service (AKS)的部分专有特性,介绍 Kubernetes 为实现自动扩展提供的一些基本方法。面对不同系统更为复杂的实际生产环境,仍有必要评估是否需要更加复杂的架构来满足具体的可扩展性需求。本文不涉及扩展方案的具体设计细节。

考虑到 Kubernetes 依然是相对较新的系统,很多术语的中文翻译尚未被广泛接受,且考虑到易读性,本文会根据情况使用中文翻译或保留英文原文。建议将本文作为能了解概况的介绍,在快速阅读后搜索相关文档获取更详细的信息。

衡量标准(Metrics)

在设计自动扩展时,首要问题便是,何时扩展。为了回答这一问题,首先需要确定需要被监控的衡量标准,来判断是否需要扩展系统。

对于 Kubernetes,常见的衡量标准包括 CPU 和内存等 pod 自身的资源利用情况,也可以是 Kubernests 之外的某些队列的长度等其他外部指标。

扩展形式

根据水平(horizontal)还是垂直(vertical),基于 pod 还是基于 node,Kubernetes 的扩展大致可以分为四种类型。水平扩展指增加或减少资源,如改变 pod 或 node 的数量。垂直扩展指提高或降低资源的属性,如改变 pod 请求的和最大允许的资源上限,或改变 node 的性能。

在这四种扩展形式的组合中,node 的垂直扩展不常见。下面将简述剩余三种,以及两种 AKS 支持的额外方案。

水平 Pod 自动扩展

根据需要增减 pod 副本(replica)是应对负载变动的常用手段。Kubernetes 提供了水平 Pod 自动扩展器(Horizontal Pod Autoscaler,HPA)来自动管理 pod 的扩展。

HPA 适用于无状态应用,但也支持有状态应用(stateful set)。HPA 可以与集群自动扩展器(cluster autoscaler)结合,在满足扩展需求的同时节省开销。

HPA 控制器通过监控内部和外部衡量标准,来判断 pod 是否需要扩展。衡量标准支持以下三类:

  • pod 自身属性,如 CPU 利用率
  • 自定义衡量标准,如网络流量或其他与 pod 相关的数值
  • 外部衡量标准,与 pod 无关。如外部队列中等待处理的任务数量

HPA 控制器默认作为标准的 kube-controller-manager 运行,因此仅能监控由副本控制器创建的 pod,如 deployment、replica set,或 statful set。HPA 还需要一个衡量标准源,如 metrics-server 来监控 pod 的 CPU 使用,或者是实现了 custom.metrics.k8s.is 或 external.metrics.k8s.io 的服务来分别监控自定义或外部衡量标准。

集群自动扩展器

集群自动扩展器(Cluster Autoscaler,CA)能够根据集群使用率增减 node 的数量,帮助优化成本。

CA 持续运行两种任务来监视未被安排的 pod,并计算是否能在满足当前负载的前提下减少 node 数量。

pod 未被安排可能有以下原因:

  • CPU 或内存资源不足
  • 没有匹配 pod 的亲和性(affinity)规则,或污点(taint)和容忍度(toleration)的 node

如发现未被安排的 pod,CA 将检查 node 池,并增加新 node 来解决该问题。如果条件允许,CA 也会移动 pod 至其他 node 来优化使用。CA 在增加 node 时也会试图保持不同区域(zone)之间的平衡,但在减少 node 时则不会有额外处理。

CA 仅受如 AKS 等云端 Kubernetes 支持。这些 Kubernetes 服务往往也会处理好 CA 带来的安全问题。

水平 Pod 自动扩展器

水平 Pod 自动扩展器(Vertical Pod Autoscaler,VPA)能够改变 pod 容器所需的 CPU 和内存资源请求,来更好地分配集群资源。VPA 根据实际使用情况而非最初指定的资源请求上限预估来请求资源,因此更接近现实环境。

如果负载激增而又无法分散至不同 node,VPA 也能临时增加 pod 的资源来应对突发情况。

Kubernetes 不支持动态更改正在运行的 pod 的资源,因此,VPA 通过以下方式来实现扩展:

  • 一个用于监控使用情况并计算相应数值的 recommender,recommender 仅能用于获取负载状态而不实际创建新的 pod
  • 一个用于追回(evict)pod 使之可以按新的资源请求重建的 updater
  • 一个用于在新建 pod 时使用新的资源请求的 admission controller

VPA 也依赖 metrics-server。

一般情况下,如果衡量标准是 CPU 或内存利用率,VPA 不能与 HPA 同时使用。VPA 的性能也没有在大规模集群中经过验证,还有一些其他限制条件

借助 Azure Container Instance 快速扩展 AKS

Azure Container Instance(ACI)可与 AKS 集成实现快速扩展,来应对突发流量激增。ACI 实例是一种安全的隔离的逻辑计算资源,并以低延迟实现扩展。

Kubernetes Event-driven Autoscaling

Kubernetes Event-driven Autoscaling(KEDA)是由 Microsoft 和 Red Hat 开发的开源组件,它允许 Kubernetes 以事件驱动的架构模型来处理负载问题。KEDA 是 CNCF 官方项目,目前处于沙盒阶段。

KEDA 可以水平扩展 deployment 或 job。它构筑于 Kubernetes 的 HPA 之上,并提供了接口以便用户利用外部衡量标准来决定是否扩展。Kafka topic lag、Azure Queue 的长度、Prometheus 查询语句的返回结果等都能被 KEDA 用作衡量标准。

KEDA 有助于减少开发成本,更方便地使用外部衡量标准。不过,如果要同时使用 CA,仍需具体设计扩展方案,以免 KEDA 和 CA 行为发生冲突。

_

以上是 Kubernetes 自动扩展的一些基本形式和概念,可以根据关键字或相关链接进一步了解详情。关于 AKS 的扩展选择可以阅读官方文档

基于 Azure Bot Service 的 Microsoft Teams Bot 开发上手指南

这篇文章本不必要,可惜无论是 Teams Developer platform 还是 Azure Bot Service 的官方文档都不够清晰易懂,容易走弯路。因此无奈在这里做简单小结,帮助读者更快上手。

Bot 的主要目的是接收并理解用户输入的文字信息或指令,并采取行动给予回应。在一些场景下,Bot 能够节省时间,提高效率,或提供更好的使用体验。在 Bot 不擅长的场景,开发并应用 Bot 则可能得不偿失。如非出于学习与研究目的,最好首先全面考察开发维护 Bot 的成本及相应的收益。

Azure Bot Service

Azure Bot Service 是 Microsoft Azure 提供的通用 Bot 服务。它不与特定消息平台频道(Channel)绑定,提供了包括语义理解、图像识别、知识库文档和通用搜索等功能。借助 Azure Bot Service 开发的 Bot 可以介入 Teams、Telegram、Line、WeChat、Facebook 等各种频道。

Microsoft Teams 是一款可扩展的通信平台,支持安装第三方应用。一款 Teams App 可以提供 tabs、bots、connector 和 messaging extension 这四大类功能。这里仅涉及 bot 部分。

两者的文档都提供了大量说明和范例,然而文章组织混乱,不少细节描述不够清晰,快速上手指南也在本地测试后戛然而止,而未作后续说明,对新手反而可能造成误导。这里简单整理。

用 Azure Bot Service 创建一个 Bot,往往意味着创建包含包括 App Service Plan、App Service、Bot Channels Registration/ App Bot 等在内的一系列资源。这些资源会被 Azure Bot Service 一同创建。如果选择 Bot 模板,则 App Service 创建之初就能提供模板描述的 Bot 功能,可以在 Bot Channels Registration/ App Bot 的 Test in Web Chat 菜单中实际体验。例如,选择 Echo Bot 模板,则数分钟后就能在 Test in Web Chat 中与该 Bot 对话并得到复述回答。

Azure Bot Framework ComposorAzure Bot Framework SDK 用于为 Azure Bot Service 开发复杂的 Bot 逻辑并发布。可惜的是 Azure Bot Framework Composor 无论是文档还是工具本身的易用性还都有待改善。创建完成的 Bot 将被发布至相应的 App Service 中。开发者也可以手动发布。如果是基于 NodeJs 的 Bot,直接通过 App Service 的 Editor 编辑 .js 文件,同样可以更改 Bot 的逻辑。基于 .NET 的 Bot 则需要在更改代码后进行编译。

Bot Channels Registration/ App Bot 之所以能够连接到 App Service 并与 Bot 交互,是因为它的配置菜单中提供了 App Service 的 messages API。要运行 Teams 连接至该 Bot,只要在其 Channels 菜单中添加 Teams 频道即可。

此外,除了上述由 Azure Bot Service 创建的 Bot Channels Registration/ App Bot,Azure Bot Framework 也提供了功能相似的替代品,能够创建 Bot 定义、连接频道,并访问由 messages API URL 指定的 Bot 服务。

以上是 Azure Bot Service 的部分。

Microsoft Teams Bot

另一方面,Teams App Bot 这边不提供实际的 Bot 逻辑。从 Teams 的角度来看,只有 App 这个概念,App 可以提供 Bot 功能。因此在 Teams 这边需要做的只有定义 App,更确切地说,准备一个包含了 manifest.json 、 color.png、outline.png 这三个文件的 Zip 文档。该文档可以被用于提交至 Teams 公开 App Store组织内部的 App Center,或者用户自己在自己的 Teams 客户端中上传安装(需要得到 IT 管理员许可才能使用该功能)。上述两个不同用途的图标文件按下不表,在 manifest 文档中会定义该 Teams App 的 Id、名称、描述、Bot 的 Id、范围和支持的命令等信息。

名为 App Studio 的 Teams App 和 Visual Studio Code 扩展 Microsoft Teams Toolkit能够帮助开发者快速创建和准备 Teams App 所需的信息(如 manifest 等)并打包或发布。

Teams Toolkit 能快速创建 Bot 的定义并生成基本的 Bot 模板。被创建的 Bot 模板可以在之后发布到服务器作为 Bot 的实际逻辑。同时,Teams Toolkit 还能直接访问 Azure Bot Framework,读取已创建的 Bot 定义,并更新 messages API 的 URL。

即使没有 App Studio,根据文档手动创建 App 的 manifest 也并不麻烦。但 App Studio 提供了更方便的管理功能,推荐使用。

即使没有 Teams Toolkit,也可以直接访问 Azure Bot Framework 站点并登录,在网站上创建 Bot 定义,并更新各类信息,或添加频道支持。Toolkit 自动生成的 Bot 逻辑也可以通过 Azure Bot Service 自动创建。

小结

综上,为了让 Teams 能够安装一个提供了 Bot 功能的 App,需要完成以下工作:

  • 准备 manifest.json 、 color.png、outline.png 并打包成 Zip 文档(可借助 App Studio )
  • 创建 Bot 定义(经有 Azure Bot Service 或者 Azure Bot Framework),并将 Bot Id 填入 App manifest (可借助 Teams Toolkit)。Bot 定义中的 messaging api 需要指向一个实际可用的服务,如本文介绍的 Azure Bot Service 提供 App Service 的 messages API 接口

需要注意,Teams Bot 和 Azure Bot Service 的 Bot 功能有若干差异,在阅读文档时需要注意辨别。Bot Serivce 中的功能有时不一定能在 Teams 中正常工作。

以上便是基于 Azure Bot Service 的 Microsoft Teams Bot 开发上手指南。想必还没有实际开始,就能感受到这套框架的设计有多么地复杂与含糊。愿本文可以帮助对 Bot 开发感兴趣地读者节省一些时间,更愉快地开发出自己的第一个 Bot。

Die Seltene

No. 18

构图为左手拿着手机按快门,右手比 V 字手势自拍的模样。屏幕界面是 Xperia 1 II 特色的 Photo Pro 相机应用

_

这次的主题是使用手机后置摄像头自拍的瞬间。如今会用后置摄像头自拍的人恐怕已经绝迹,大多数人都使用前置摄像头,以便在屏幕上实时确认位置与动作,再加上或强或弱的美颜效果。然而在十多年前,手机前置摄像头还不那么先进的时代,用后置摄像头自拍才是主流。摆好姿势和表情,不断拍摄、确认、重试,最后得到满意的照片。当时不少手机的后盖都有直径数毫米的反光金属片作为自拍镜,帮助自拍者确定自己是否在摄像头的取景范围之内。索尼爱立信的手机侧面大多都配备有独立的实体快门键,不用看到手机屏幕依然可以准确按下快门拍照,因此用后置摄像头自拍一直不是一件难事。现代的智能手机已经看不到后盖自拍镜的设计,不过 Xperia 1 II 后盖本来就是镜面设计,硬件上传承了两段式自动对焦快门,软件上有人脸识别与人眼对焦确保自拍效果,F1.7 的大光圈蔡司镜头搭配成像素质佳的摄像头传感器,让这种世纪初流行的自拍方式再次成为可能。每次画自己手边爱用的设备,总是别有乐趣。

2020 年是不寻常的一年,如同所有人都知道的那样。

然而,相对来说,大部分人依然是幸运的。对自己而言,在过去半年,人生已被彻底改变。前所未有的,罕见至极的,未曾料想的,难以避免的打击迎面而来,把二十多年的人生观碾得粉碎。心力憔悴。整个人仿佛落入深渊,至今仍未从中爬出。

迷茫、彷徨、绝望、无助,数不清的日与夜,被看不见希望的昏暗的未来图景笼罩,被不知从什么角落源源不断散发出的悲伤与苦楚包围。即使确实得到了一些支持,收到了一些慰藉,却依旧感到孤立无援。能够提供帮助的人其实并不多,而且也终究只能是言语上的精神支持。它们都很宝贵,只是相比自己的处境,再多的援助都好似只会是杯水车薪,也许能解一时燃眉之急,却无法真正解决问题。这点自己当然也是知道的。自己显然也做不到无休无止地向身边的人传播消极与悲观,甚至时常担心或许总有一天这会超过一般人能承受的限度,而让他们不得不选择退避三舍,以维持乐观心境。

人生的意义,活着的意义,这些本就没有正确答案的问题,在这几个月里被翻来覆去地思考。很多时候,答案都不令人满意。有时就会进入死胡同,感到一切仿佛都并没有什么意义。已经记不清每次都是怎样逃离那种危险的状态,或许是幸好自己还有树洞,尽管总觉得它有珍贵的使用次数限制而舍不得轻易使用。或许是想到有人曾为自己加油鼓励,就算那更多也许只是社交辞令,出于善意。但这些对原本就会记得各种细节琐事的自己来说,无疑是一种救赎,提醒自己人生依然还有值得。也许,自己也要比想象中更加勇敢和坚强。

即便如此,也很难说自己已经走出了最黑暗的时期。在可见的未来,困难只会越来越明显、越来越接近、越来越真实。那些罕见的事。

_

Keep thinking about life, of which the meaning I feel
Keep questioning to myself, is that the fate to thank
So weary my soul, drifting in the mist without you
Though day and night, the sun and moon rise in the east
Just lost in searching you, and wait there in the silence

Until awhile with me, you come and sit
The moutains I can stand on, as I up raised by you
The stormy seas to walk on, as I up raised by you
The way I would pass through, as I up raised by you
To more than I can be, as I up raised by you

搜索正在耳边播放的曲子,即兴改写几句歌词,释放了一些胸口难以名状的沉重,似乎人生也变得轻松一些。然而这不会是结束。可以预料,未来还会有更多的不确定性。怎样应对,现在还是一个问号。

啊。所以说。

如何才能继续前进。

Viel Glück, hast gesagt du.

_

_

And, again…

Ver. Disneyland

Java 运行时发生 NoClassDefFoundError: Could not initialize class 的解决方法

最近遇到了如下问题:

在编译时没有异常的程序,在运行时抛出异常称 NoClassDefFoundError: Could not initialize class {类名}

根据 Java 官方文档,NoClassDefFoundError 是由于 JVM 或 ClassLoader 实例为了调用某个类的方法或 new 类的新的实例,而试图加载该类的定义时,却无法找到其定义,而抛出的异常。需要注意,对于抛出该异常的情况,试图找到的类的定义在编译时存在,只是在运行时不知所踪。

NoClassDefFoundError 总的来讲有两种情况,类文件不存在,或是类初始化错误。它们的错误信息不同。

  • 如果无法找到类文件,错误信息为 java.lang.NoClassDefFoundError: com/example/Foo
  • 如果类文件初始化错误,错误信息则如前文所提,为 NoClassDefFoundError: Could not initialize class {类名}。这通常由类的静态成员或静态初始化语句块引起。诸如 private static final MyClass val = new MyClass(); 或直接执行于 static {} 代码块中的语句抛出异常,都可能会引发 NoClassDefFoundError。针对第二种这种情况,可以在类的 static initializer 中增加 try catch 语句来捕获异常并输出日志,来了解具体错误内容。

此外还有一种相似但不同的错误,ClassNotFoundException。它通常由 Java 运行时在无法找到仅在运行过程中才需要加载的类时抛出。

可以从 Wikipedia 的 Java Classloader 条目进一步了解 classloader 的行为。

致爱好者 —— 索尼(Sony)Xperia 1 II 简单使用感想

受 Covid-19 疫情影响,今年很多事情都不同以往。在2月底发布之后三个多月,Xperia 1 II 才终于在部分市场以软件未完成的形式上市,大陆行货则至今仍遥遥无期。从6月首发入手港版 Xperia 1 II 至今也有近两个月,在此简单聊聊使用感想。

时隔多年,再次选择了白色机身的 Xperia

本文基于在香港地区销售的 Xperia 1 II 写成,型号 XQ-AT52。本机支持中国移动联通电信的 4G 网络。理论上仅能完美支持中国联通的 5G 网络。这两年 5G 是一个热点话题,Xperia 1 II 又是索尼的第一台 5G 智能手机,在此多讲几句。个人认为目前 5G 网络能提供的性能提升还不能抵消额外的费用与耗电问题,尤其是自己日常生活中99%的场景不是不需要高速移动网络(如开车时),就是有更加稳定高速的 WLAN 环境,因此对港版型号不支持 5G 并不在意。事实上,因为不用手机打游戏,也不需要高速下载大量文件,LTE+ 上百兆比特的速率对自己的需求来讲已经绰绰有余。即使没有费用因素,5G 以更高能耗换来的性能提升对自己也不是必须。即使在一线城市,5G 信号要达到目前 4G 的水准恐怕也还需要时日,费用问题和芯片功耗也不见得会在短时间改善。再考虑到手机升级换代的频率不会太低,忽略 Xperia 1 II 在大陆的 5G 网络问题符合自己的实际情况。据称由于网络制式问题,这次行货型号可能会在硬件上有改动,无法通过软件通刷港版硬件。如果 5G 网络是刚需,或担心之后几年 4G 网络的通信质量被限制,建议等待几个月后上市能更完整支持国内 5G 网络的行货型号。

本文内容基于2020年8月提供的软件版本 58.0.A.3.88。出于兴趣写了近十年的业余“测评”,如今网络上专业的不专业的,客观的不客观的测评越来越多,更重要的是智能手机在十多年飞速发展后已经彻底进入了瓶颈期,每年写的文字越来越公式化,乐趣越来越少。于是从这次开始,更多会分享主观的使用感受,站在一个见证 Xperia 10年发展衰弱,试行错误的爱好者的角度,提供一些个人的看法和评论。

顺便一提,官方产品名发音为 Xperia One Mark Two。虽说符合相机部门的命名传统,如 Alpha Seven Mark Two 或 RX-100 Mark Five,但距离大众接受流行渐行渐远。就算这次中文用户能省略 Xperia 1 这一品牌与型号名,单独施以爱称“马克兔”,明年的 Mark Three 又会如何呢(估计会和相机一样,被称为 X1M3 或 1M3 吧,笑)。

2020/10/17 更新

Xperia 1 II 和 Xperia 5 II 的大陆行货版本在比其他地区晚了5个月后终于姗姗来迟。型号为 XQ-AT72 的新版 Xperia 1 II 硬件上内存从8GB增加至12GB,新增镜面绿色。网络上国行 Xpeira 1 II 完整支持中国大陆三大运营商的 5G 网络并支持 5G/4G 双待(Xperia 5 II 支持除了中移动 NSA 外的其他 5G 网络)。系统上,国行新增了对微信指纹支付的支持。虽然从生态上来看这不是一件好事,但确实可以增加一些潜在的国内销量吧。港台版本的 Xperia 1 II 也同时新增了 12GB 内存的高性能版和镜面绿色配色。

致爱好者

智能手机已经进入了发展瓶颈。一边,价格亲民的中低端机型已经能很好的满足普通人基本的通信与娱乐需求,Andriod 发展初期低端机性能明显不足的问题已经改善。另一边,在屏幕与相机等方面积极采用高规格硬件的高端型号价格不断攀升,与中低端机型拉开更大差距。由于多种原因,在全球销量一路断崖式下跌的索尼移动,在几次失败的尝试后,最终从去年开始选择了主打高端型号,以满足小众发烧友和品牌粉丝的发展路线,推出 Xperia 1。今年的 Xperia 1 II 是该路线的延续,不但彻底解决前代大量体验问题,更进一步加大力度讨好目标用户。

先说结论。作为目标用户,不得不说,Xperia 1 II 深得我意。Xperia 1 II 是迄今为止 Xperia 系列最高峰,历代体验标杆。

致静态摄影爱好者——源于 Alpha 相机团队的多项软硬件技术,搭配蔡司镜头与 T* 镀膜,提供独一无二的拍摄性能和体验,以及系列传统二段式独立相机快门键

致电影录制爱好者——增强的 Cinema Pro 软件提供更好的电影拍摄与剪辑体验

致电影鉴赏爱好者——显示效果业界一流的 21:9 4K HDR OLED 显示屏,且支持创作家模式以呈现作品原本风格

致音乐欣赏爱好者——LDAC 高解析度蓝牙音频技术,以及业界少见的 3.5mm 耳机接口(笑)

致手机游戏爱好者——游戏模式增加包括电力直供模式等多项新功能,提高重度玩家的游戏体验

致 Xperia 爱好者——最新型旗舰处理器与高速闪存、识别迅速准确的侧面指纹、在高端机型中高于平均的续航能力、支持电池寿命保护与无线充电、精致的做工与外形设计、相近规格产品中轻薄的尺寸与重量、稳定无广告且少有海外软件兼容问题的系统、完整 Google 服务支持

Xperia 1 II 并非完美无缺,但对于能够接受 Xperia 系列一贯的精简系统,不依赖很多国产手机厂商额外定制的本土化软件功能的老用户来说,Xperia 1 II 出色地实现了设计目标,提供了综合水准很高的使用体验。

致静态摄影爱好者

在一些市场,Xperia 1 II 最大的产品亮点是“口袋中的 Alpha 相机”。Xperia 1 II 最具代表性且不可替代的特长确实在这套软硬结合的相机系统上。

Xperia 1 II 与 Alpha 系列旗舰型号 Alpha 9 的合成照片是相机功能的官方宣传亮点——即使两者性能有天壤之别

硬件上,Xperia 1 II 延续了去年 Xperia 1 才姗姗来迟的三摄像头组合,提供了三颗12.2MP的摄像头和一颗帮助对焦的 3D iToF 红外测距传感器。与一些厂商为了背景虚化而采用 ToF 传感器不同,Xperia 1 II 的 ToF 传感器为对焦而设计,以实现弱光场景下0.03秒的高速对焦性能。这是 Xperia 1 II 为了对焦性能而作的独特设计。

标准镜头比 Xperia 1 更广角,长焦镜头则更望远。除超广角镜头外,另两颗都支持光学数字混合防抖

传感器方面,和 Xperia 1 不同,参照35mm下大三元的焦段,这次三颗镜头的焦段分别为 16mm(F2.2)、24mm(F1.7) 和 70mm(F2.4)。镜头则首次采用了蔡司(ZEISS)镜头和蔡司减少光线反射的 T* 镀膜,以提供有蔡司风格的色彩与虚化风格。其中标准镜头和长焦镜头支持光学与电子混合防抖。

首次采用来自 ZEISS 的高性能镜头与 T* 镀膜,看来索尼自己也认为 Z 系列时自家的 G 镜头并没有宣传效果

这次 24mm 主摄传感器为 1/1.7” 大尺寸,相比 Xperia 1 的 1/2.6” 大幅提升,像素尺寸高达1.8μm(Xperia 1 为 1.4μm)。除了华为在 P40 系列上使用的惊人的 1/1.28” 50MP Ultra Vision 主摄传感器,能够在4像素合一时提供2.44μm 的像素尺寸(单像素1.22μm),Xperia 1 II 的主摄像素尺寸与三星 Galaxy S20 系列的一致,并高于 iPhone 11 Pro 系列的1.4μm。此外,主摄 F1.7 的明亮镜头则小幅领先同级对手的 F1.9 或 F1.8,入光量更大。尽管像素尺寸和镜头光圈并非一切,Xperia 1 II 这次至少在规格上没有明显短板。

配合 BIONZ™ X for mobile,Xperia 1 II 最终实现了相比 Xperia 1 约1.5倍的感光性能。Exmor™ RS 或许因为不再有独特优势,宣传上被弱化

Xperia 1 II 在相机软件方面也积极引入源自 Alpha 的技术。

  • 运用 AI 技术,世界首创每秒60帧的 AF/AE 自动对焦/自动曝光计算,并实现最终每秒20张的 AF/AE 连拍,为拍摄运动物体提供了业界顶级的对焦与连拍能力。实际使用中,Xperia 1 II 的连续对焦连拍效果非常震撼,使抓拍精彩瞬间有了更多可能(顺便,连快门音都和 Alpha 相近,笑)
  • 高精度实时人眼/动物眼 AF,帮助时刻准确对焦拍摄对象(仅支持 24mm 主摄)
眼部对焦相当于是人脸对焦的更精准版本,但似乎并没有概念上的突破,一直以来都觉得更像是以趣味性而非功能性为卖点
  • 双重相片二极管对焦
  • 覆盖率70%的247点相位对焦。为 Xperia 1 的4倍
  • 增强的摄影后期工作流程:通过 Imaging Edge Mobile 软件遥控相机,以 5G 或 WiFi 6 传输作品、并以 D50 / D55 照片印刷色彩标准在 Xperia 1 II 的 4K HDR OLED 屏幕上回放
Alpha 在屏幕方面规格不激进的原因找到了

不过, Xperia 1 II 最让自己心动的软件功能当属 Photography Pro(下称 Photo Pro)。

Xperia 摄影新乐趣,兼具专业手动设置,以及,仪式感

简言之,PhotoPro 提供了与 Alpha 或 RX-100 相机类似的手动设置界面,以及专为触摸屏优化的设置菜单。近期发布的首次搭载触摸屏的 Alpha 7s III 也使用了这套新菜单。

Photo Pro 允许用户在不离开取景界面的同时修改各类拍摄参数,还支持 Alpha 相机上的 AF-ON 与 AEL 等高级功能,让摄影师和摄影爱好者能最大程度发挥自己的创作灵感。

Photo Pro 大体提供了以下功能:

  • 拍摄模式
    • Auto 自动模式(全自动调节参数)
    • P 编程自动模式(自动设定快门速度与 ISO)
    • S 快门速度优先模式(手动设置快门速度,自动设置 ISO)
    • M 手动曝光模式(手动设置快门速度与 ISO 以控制曝光,用于烟火或星空等特殊场景
  • 对焦功能
    • AF-C/S
    • 手动对焦
    • AF-ON
    • 人脸/眼部 AF ON / OFF
    • 对焦提示音
    • 对焦区域可视化
  • 白平衡
    • 自定义白平衡
    • 白平衡微调
    • AEL
    • DRO/ HDR
  • 其他
    • 低速/高速连拍与延迟拍摄
    • 3:2 照片比例
    • RAW 格式保存(单张照片约24MB,无法与连拍/HDR 同时启用)
    • 界面显示选项
    • 直方图
    • 水准仪等

熟悉索尼相机的用户相比可以很快上手,充分利用 Photo Pro 的各项功能。把 Photo Pro 设置为实体相机快门键长按启动的默认相机或许是个不错的主意。而半按快门 AEL 则是其他厂商无法提供的便捷功能。

Photo Pro 之所以令人满意,是因为它不但提供了丰富的手动拍摄选项,还维持了高水准的性能。配合 Xperia 1 II 的高通骁龙 865 处理器,以及 UFS3.0 高速闪存,以及更好的软硬件搭配,无论何时,Photo Pro 都保证了小于一秒的冷启动速度、JPEG + DRO 模式下数百张无压力的连拍能力、可以忽略不计的照片保存时间。在忍受了 Xperia 1 时而需要数秒冷启动且保存速度堪忧的相机软件后,Xperia 1 II 总算做到了一款旗舰产品应有的拍照体验。在手机上用 Lightroom 编辑 RAW 格式照片并同步到 Adobe Creative Cloud 则让 RAW 后期处理列入拍摄设备的能力范围,即使没有 PC 也能在拍摄作品后立即对原片做复杂的调整和修复。

最后简单谈谈画质,虽然这反而或许是手机摄影相对不那么关键的部分。毕竟真的亟需优质画质的场合,手机绝不是最佳选项。对于 24mm 的标准镜头,在光线充足时,Xperia 1 II 的成像没有比前代明显提升,主要是 Photo Pro 的 HDR 模式明显改善了光线对比强烈时的曝光效果。在弱光环境下,Xperia 1 II 体现出了硬件优势,画面明显干净很多。作为卖点的蔡司镜头仍然会在画面边缘存在一定畸变和画质下降,不过畸变在没有参照物时并不容易被察觉,画质下降也只有在需要局部裁剪放大时才会成为一个问题。总的来讲,这颗主摄的成像效果对得起它的宣传,是 Xperia 相机画质的正常进步。

Xperia 1 II 的广角与长焦镜头则比较平庸,与标准镜头的画质差距明显,在弱光环境下画质下降严重,与动辄高倍光学变焦的竞争对手相比甚至变焦能力也无法同台竞争,只能说是聊胜于无。或许其他两颗镜头的画质会成为明年 Mark III 的重点提升方向吧。不知何日才能重新看到十多年前索尼爱立信曾经在手机上使用过的光学变焦镜头。

ISO250 – 1/250 主摄像头。仅压缩。色彩还原自然一直是 Xperia 系列的特征。不过新的主摄镜头比过去更容易背景虚化,有时反而蛇足
ISO64 – 1/60 主摄像头。仅压缩。在需要虚化的时候,更大光圈带来的虚化也比较自然
ISO320 – 1/15 主摄像头。原尺寸约1/16区域局部裁剪。Lightroom RAW 格式后期。一方面,更高素质的主传感器和 RAW 格式保存,后期的余地明显增加。在光线不足时 Xperia 1 II 的表现比去年更上一层。另一方面,12MP 像素在裁剪时力不从心的问题也被暴露
ISO64 – 1/1000 主摄像头。仅压缩。也许是心理作用,也许是配合蔡司镜头做了调整,Xperia 1 II 拍摄的照片的色调和以往机型相比总有种说不出的微妙差异

致电影录制爱好者

Xperia 1 II 的另一项特色软件是从前代延续的 Cinematography Pro(下称 Cinema Pro)。

Cinema Pro 允许用户以 CineAlta 独有的 Look(滤镜,分别为 VENICE CS ・Opaque/Blue60Yellow60 ・Bright/Blue20Yellow60 ・Warm/Yellow80 ・Strong/Blue100 ・Cool/Blue60・Soft/Yellow40 ・Soft Monochrome)来录制 4K HDR 10bit 视频,或 2K 10bit HDR 120帧高帧率视频,并提供了水准仪与手动对焦等多种高级功能。

Xperia 1 II 除了软件功能优化,还专门对风噪抑制做了加强。

实话说,电影录制爱好者或许会因为 CineAlta 的名声,在使用 Cinema Pro 拍摄24帧的 21:9 电影时感到额外的乐趣。作为对此无感的普通人,很怀疑这个软件能够在 Xperia 上存在多久。目前看来,它更像是产品设计理念的一种象征罢了。

致电影鉴赏爱好者

和去年一样,Xperia 1 II 继续搭载了一块赏心悦目的高品质屏幕。

适合观影的 21:9 CinemaWide 屏幕比例、业界最高分辨率的 4K HDR OLED、X1™ for mobile 图像处理引擎、4K SDR 内容升格都是保留项目。这次就不再赘述。

新增的 90Hz 软件高刷新率在减少残影方面的效果比较微妙,它通过改进屏幕响应速度并调节像素亮度来模拟更高刷新率。效果有时能感知,有时则不能。主要在网页滚动等场景下会有一些差异。这或许是软件实现的极限,毕竟屏幕的硬件刷新率依然是 60Hz。虽然高刷新率屏幕如今成了高端产品竞相宣传的特性,但它确实不属于人人都有的需求,而且会带来耗电增加的副作用。比较好的做法也许是在后续产品中硬件支持高刷,但默认软件启用普通刷新率,让对刷新率有要求的用户可以各取所需。

创作家模式在 Xperia 1 II 上健在。引用之前的描述,在应用支持时,Xperia 1 II 能够以 HDR 高动态亮度范围、BT.2020 色域、D65 白平衡点、10bit 色深(软件模拟 8bit 硬件至近似 10bit 效果)的规格播放内容,还原电影导演在拍摄影片时的原始视觉效果,直接感受创作者想要传递的情感。对于优秀的作品,每一个场景都融入了创作者有意识的设计,强行用算法调整画面效果绝非最佳做法,甚至可能损害作品的完整性。Xperia 1 的创作家模式则为解决这一问题而生。目前,创作家模式会在 Netflex 与 CineaPro 两个应用中自动启用,用户也可手动选择切换。

创作家模式以索尼专有算法来表现以专业规格制作的视频内容,呈现更贴近创作者理念的视觉效果

从硬件上来看,Xperia 1 II 与 Xperia 1 使用了相同规格的屏幕。但或许是得益于软件改进,Xperia 1 II 无论是日常使用时屏幕显示的通透感和色彩表现力,都明显优于 Xperia 1,令人甚至怀疑这是否是因为 Xperia 1 使用一年多的屏幕自然老化才造成了如此差距。另,Xperia 1 II 的白平衡默认仍使用冷色调,算是遵从了所谓部分用户更偏好冷色调的说法来设置出厂白平衡。

由于硬件没有改变,Xperia 1 II 的最高亮度依然平庸,在室外亮度增强模式下也只有约650尼特的亮度,在阳光直射时可视性依然一般,如果长期在剧烈阳光下室外活动,需要多评估一下对屏幕最高亮度的需求。

主观上来讲,和以往一样,Xperia 1 II 的屏幕显示效果远好于其它一些厂家的高端机,色彩方面 OLED 容易出现的味精感,或是特殊像素排列造成的模糊感,在 Xperia 1 II 上都很难发现。如果追求屏幕效果,Xperia 依然是和 iPhone、Galaxy 同级的少数选项之一。更何况,没有刘海和挖孔的屏幕,才不会在观看宽屏电影时不可避免地缺失一块画面,不是吗?

致音乐欣赏爱好者

Xperia 1 II 搭载了极为罕见而先进的 3.5mm 耳机插孔(笑)。

Xperia 高端机型在取消耳机孔数代后,又把它改了回来。声道干扰比上代减少90%,仅为 20dB。过去的数字音频升格技术 DSEE HX 结合 AI 算法,改名为 DSEE Ultimate,在使用有线耳机时,能更好地将各类音源的码率提升至 HiRes 水准。尽管自己是蓝牙耳机支持者,但不得不承认 Xperia 1 II 和有线耳机 XBA-N3 的搭配,比支持 LDAC 高解析度蓝牙音频的同价位蓝牙耳机,有更好的主观听感,并且,无需充电。除了 LDAC,Xperia 1 II 的蓝牙新支持 aptX Adaptive,延迟较以往更低。

据访谈介绍,Xperia 1 II 的音响调教继续得到索尼音乐的专业支持。屡获殊荣的资深调教工程师 Mark Wilder 两次参与 Xperia 1 II 的音频调教研讨会并提出建议,最后对其音质表现表示肯定。

此外,支持 Dolby Atmos 的正面双扬声器位置得到改善,下方扬声器也能从屏幕正面发声。驱动单元则重新开发,推力和低音表现都比上代提升。不过对于很少使用外放的人来讲,这是无关紧要的改进。

致手机游戏爱好者

Xperia 1 II 虽然不是游戏手机,但也有专门的游戏模式,并联手堡垒之夜或 Call of Duty:Mobile 等游戏对其 21:9 的屏幕比例做了优化,能显示更广阔的视野。

Xperia 的游戏增强模式主要做了以下几方面的工作:性能优化、游戏录制、免干扰、防误触、直接供电。

虽然不用手机玩游戏,但已经听说直接供电模式下,由于不会对电池充电,手机的温度会较通常更低,不容易触及软件设置的温度墙而降频处理器来保护设备。该功能不但可以减少游戏因处理器性能受限而引发卡顿,还能减少电池因高温导致的寿命缩减,如果需要高负荷长时间使用非游戏类应用,想必也能发挥效果。

致 Xperia 爱好者

Xperia 1 II 的基础功能是 Xperia 系列的新高峰。

最新的高通骁龙 865 芯片组、8G内存、256GB UFS 3 高速闪存的组合使运行任何程序都流畅快速。支持最大1.7Gbps的 4G 下行速率与 3.4Gbps 的 5G 下行速率。没有减去 IP58 防水能力和 MicroSD 卡扩展,增加无线充电的情况下,机身重量还能控制在同级较轻的 181g + 7.9mm 厚,宽度也仅有72mm。看着这两年竞争对手频繁推出重量超过200g的产品,为当年索尼因 Xperia XZ2 Premium 而在网络上背负半斤骂名感到可惜。

一个可喜的改善是,Xperia 1 因专利问题而使用的与电源分离的小尺寸侧面指纹模块终于被替换回了过去的整合式指纹开关,识别率也恢复到了 Xperia XZ Premium 的水平,在绝大多数时候都能迅速识别解锁。Xperia 1 底部略有些割手的 USB 口问题也因为新的边框倒角设计而被解决。

4000mAh 的系列高端机型最大电池容量,提供100小时的 4G 待机时间和85小时的 5G 待机时间。支持 21W PD 快充,能在30分钟内充电50%。同时系列传统的电池长寿技术能智能学习用户的充电习惯,避免过充,让电池性能在两年内不会显著衰减。索尼与苹果三星一样,似乎对快充技术从不激进,峰值充电功率距离国产厂商越来越远。所幸自己这么多年来哪怕一次也没有遇到过需要手机短时间充电的情况,所以对快充需求实在无感。

一个多月的实际使用来看,4000mAh 电池按个人使用习惯(白天约2小时蓝牙音乐、一小时通信与一小时网页浏览等亮屏操作,大部分时间 WiFi 连接),可以在工作日下班时剩余70%左右的电量,即使手机使用较多,通常也不会低于50%。这一数字比之前容量不到 3500mAh 的机型有可感知的差距。仅针对自己来讲,电池焦虑恐怕很难再会出现。

外形设计方面,传承当年 Xperia Z2 神韵的具有高级感的边框设计,相比 Xperia 1,Xperia 1 II 更充满了 Xperia 的个性,每次拿起手中,都会满心欢喜。索尼没有在 Xperia XZ2/XZ3 设计语言的不归路上越走越远,总算做到了至少取悦了 Xperia 的爱好者们。

就这样,Xperia 1 II 几乎全方位地改进了上一代存在的或严重或细节的问题,无论任何一个方面来看,体验都可谓系列最佳。可以说,Xperia 1 II 是一台能让 Xperia 爱好者重燃希望的机型,或许会和 Xperia XZ Premium 一样成为一代名机。

2020/10/17 更新

使用四个月后的初步结论是,Xperia 1 II 在系统稳定性、发热与续航控制、相机性能等影响使用体验的重点方面做得很不错,在 Xperia 系列历史上应该可以位列第一。中等强度使用下也不会有续航不足一天的焦虑、相机的启动、对焦、保存速度在使用一段时间后依然在比较理想的状态。即使类原生 Android 系统在国内软件生态下难免水土不服,Xperia 1 II 也靠电池和性能的升级,总算是一定程度上缓解了问题。

2021/01/26 更新

今天 Xperia 1 II 港版系统推送了 Android 11 大版本更新。安装程序大小约1.1GB,在网络条件允许时大约需要三分钟下载,及约十分钟安装,并重启。除了 Android 11 本身对权限控制和隐私保护等方面的增强以及安全补丁外,在这次更新更新后,Cinematography Pro 新增 4K HDR 120 慢动作摄像。Photography Pro 新增照片纵横比快捷设置按钮、MR 模式,及连拍反馈。新增支持通过 HDMI-UVC 与 Alpha 无反相机连接作为其外部监视器。侧感触控易用性增强,支持浮窗快捷方式。游戏增强器新增游戏图标收纳功能。电池保养功能支持常时80/90% 充电限制。内建屏幕录制、增强媒体播放控制、Nearby Share 文件共享功能。长按电源键的界面等细节也跟随 Android 11 改变。

Xperia 1 II 也并非没有缺憾。在网络上有见到说白色机型后盖内部可能发生掉漆(这台还没发现)、非居中的摄像头突起导致在桌面上平方时不稳(虽然目前绝大多数手机都如此设计)、耳机孔和 USB 孔或许会在长期使用后接触不良(Xperia 的通病,暂时不对 Xperia 1 II 能彻底解决这个问题乐观)、Xperia 自带的特色软件继续被去除(Movie Creator 可以通过 APK 安装、相册不再被支持只能使用性能功能都更强但缺乏特色的 Google Photo、LifeLog 结束服务,等等)、在原生 Android 系统基础上做的增强过少,一些用户喜爱的其他厂商早已默认提供的定制功能不得不自己安装额外的软件才能拥有,甚至最终无法实现、一些软件,尤其是游戏,至今没有对 21:9 屏幕比例进行优化,等。

今后使用过程中发现更多的问题,会持续更新和补充。

【图文内容不定期更新】

本文相关图片版权属于各版权所有人

解决 HTML Canvas 元素在高像素密度/高分辨率屏幕上显示模糊的问题

最近在使用 HTML Canvas 元素时发现通过 fillText() 绘制的文字明显发虚,像是以低分辨率渲染后放大所致,再仔细一检查,发现事实上包括 fillRect() 在内的其他图案也都存在相同的问题。

初步推测和显示设备使用了较高的 DPI 有关,随进行了一番搜索,在 Stackoverflow 、Medium 等站点都有一些提问和回答。然而意外的是,自己能找到的一些解答,至少在自己这边并不能解决问题。

经过摸索,找到了能够解决自己问题的办法,分享于此,以便后人。

以下为 Angular component 代码片段,语言为 TypeScript。

@ViewChild('canvas', { static: true }) canvas: ElementRef; // Canvas 元素
@ViewChild('canvasDiv', { static: true }) canvasDiv: ElementRef; // Canvas 元素的父元素,一个 div
private ctx: CanvasRenderingContext2D; // Canvas context

private dpiRatio: number; // DPI 缩放比例
private canvasDivWidth: number;  // 父元素宽度

……

this.dpiRatio = window.devicePixelRatio;

this.canvasDivWidth = this.canvasDiv.nativeElement.offsetWidth;

// 分别设置 canvas 的宽度和样式宽度,canvas 的显示尺寸将会减半
this.ctx = this.canvas.nativeElement.getContext('2d');
this.ctx.canvas.width = this.canvasWidth * this.dpiRatio;
this.ctx.canvas.style.width = this.canvasWidth + 'px';

// 在绘制时考虑缩放因素
this.ctx.font = 12 * this.dpiRatio + 'px Roboto';
this.ctx.fillText('HIDPI文字', x  * this.dpiRatio, y * this.dpiRatio);

一个悬而未决的问题是,canvas context 本身的 transfer 函数似乎不能做到整体的放大,因此这里作为临时方案暂时在绘制每一个图形时都乘以了缩放倍率。这里应该有更好的办法,不过限于时间,暂且搁置。

Angular 9+ 升级小记 —— 应付 MSAL-Angular 与 ngx-restangular 的兼容性问题

之前几次升级 Angular 版本的经历总体还算顺利,因此原本对 Angular 8 升级到 9 的过程也比较乐观。虽然 Angular 9 开始将默认启动新的 Angular Ivy,但考虑到已经正式发布数月,甚至 Android 10 都已问世,自己的项目又没有用特别冷门的依赖,依然没有担心会遇到问题。可惜墨菲定律无处不在,最后还是花了比想象中更多的时间完成升级。

为此,本文简单介绍自己在从 Angular 8 升级到 9 最终到 10 时遇到的问题及相应的解决方法,仅供参考。

首先,Angular 官方文档提供了详细的升级说明,建议在升级项目前首先通览相关文档,了解可能存在的问题。可以从下面的链接找到升级到 Angular 10 的最新信息。

https://angular.io/guide/updating-to-version-10

下面是自己在升级时实际操作的几个主要步骤:

  • 更新 Angular 8 相关依赖至最新版
    • ng update @angular/core@8 @angular/cli@8
    • ng build –prod –aot
    • 确认变更
  • 更新 @azure/msal-angular 至最新版 1.0.0
    • 安装 1.0.0 版并为新版的接口变化修改代码(1)
    • ng build –prod –aot
    • 确认变更
  • 升级至 Angular 9,检查并乎略一些依赖版本问题
    • ng update @angular/core@9 @angular/cli@9 –force(2)
    • ng build –prod –aot
    • 确认变更
    • 升级 Angular Material
      • ng update @angular/material@9
      • 检查 Angular Material 引用问题(3)
    • 增加 ngcc 作为 postinstall 脚本(4)
    • ng build –prod –aot
    • 确认变更
    • ng add @angular/localize (5)
    • ng serve –ssl 启动并检查应用基本功能
  • 升级至 Angular 10,检查并乎略一些依赖版本问题
    • ng update @angular/core @angular/cli –force
    • 临时手段解决 ngx-restangular 编译问题(6)
    • ng build –prod –aot
    • 确认变更
    • ng update @angular/material
    • ng build –prod –aot
    • 确认变更
    • ng serve –ssl 启动并检查应用基本功能
  • 大功告成

以下具体说明上述步骤中的一些关键操作。

(1)MSAL Angular 代码更改

在升级 Angular 9 之前,自己的项目使用 MSAL Angular 0.1.4 实现对 Microsoft 账户或 ADD 的验证。当时该库的文档和范例代码质量就差强人意,缺少说明和链接失效比比皆是。更重要的是,该库并不兼容 Angular Ivy,这也是没有更早升级 Angular 9 的原因之一。等着 MSAL Angular 花了几个月的时间终于正式发布 1.0.0 版本才开始升级,依然遇到几个问题:

  • 方法接口变化,getUser() 改为 getAccount(),displayableId 成员取消
  • 服务初始化方式变化,结构虽然较过去清晰,但文档和示例代码不足,甚至还有语法拼写错误
  • 请求验证成功后返回的 payload 格式发生变化,token 变量改为 rawIdToken
  • loginRedirect() 似乎不再正常工作,仍需进一步排查原因

无论如何,能够兼容 Angular 9 已经不易,总比 ngx-restangular 那样根本无法成功编译要好些。MSAL Angular 已经两个月没有新版本发布,不知今后的更新是否能解决一些问题。

(2)升级至 Angular 9

这步本身没有什么问题,不过需要检查一些报警的依赖版本冲突。自己的项目中主要是 tslib 已经到了 2.0 而 Angular 9 要求 1.10.0,以及 Angular http 停在了大版本7。确认没有问题后就以 –force 参数强制升级。

(3)检查 Angular Material 引用问题

新版本 Angular Material 要求每个引用都明确指定具体组件,如:

 import { MatSpinner } from '@angular/material/progress-spinner';

而不允许在一句引用中同时引入多个组件,如:

import { MatSpinner, MatSnackBar } from '@angular/material';

正常情况下 ng update 会自动更正代码,不过自己在操作时似乎遇到一些问题,没有顺利完成,只好收到批量做了一些处理。

(4)增加 ngcc 作为 postinstall 脚本

在 package.json 中增加 “postinstall”: “ngcc” 有助于避免可能的库兼容问题。参见 ngcc 的和 ModuleWithProviders 迁移的相关说明。

(5)增加 @angular/localize

如果项目中使用了 Angular 自带的 i18n 功能,可能需要执行 ng add @angular/localize 添加必要的依赖。不过这并非必要步骤,可以在遇到提示时才采取行动。

(6)解决 ngx-restangular 5.0.0 编译问题

很可惜,ngcc 不是银弹。至少,它无法解决 ngx-restangular 的兼容问题。

ngx-restangular 是自己项目中使用的主要第三方库之一,帮助使用 REST API 的使用。这个项目本身算不上太活跃,但基本功能还算充分。可惜的是,半年没有更新的它,果然无法在 Ivy 下正确编译,报错如下:

ERROR in node_modules/ngx-restangular/lib/ngx-restangular.module.d.ts:8:97 - error TS2314: Generic type 'ModuleWithProviders<T>' requires 1 type argument(s).

static forRoot(providers?: any[], configFunction?: (provider: any, ...arg: any[]) => void): ModuleWithProviders;

搜索尝试一些方法无果后,不得已手动修改库文件,增加类型 <RestangularModule> 在 node_modules/ngx-restangular/lib/ngx-restangular.module.d.ts 第八行末尾:

static forRoot(providers?: any[], configFunction?: (provider: any, ...arg: any[]) => void): ModuleWithProviders<RestangularModule>;

在 CI 管道中,则暂时每次都在 ng build 之前以 sed 命令完成代码更改:

sed -i 's/ModuleWithProviders;/ModuleWithProviders<RestangularModule>;/g' node_modules/ngx-restangular/lib/ngx-restangular.module.d.ts

于是,暂时绕过了编译错误。ngx-restangular 的功能本身倒似乎没有问题,可以正常工作。

经过功能确认和测试后,一个 Angular 8 应用终于顺利升级为了 Angular 10 应用。尽管并非一帆风顺,但 Ivy 确实明显提升了编译性能并减小了体积,总管没有白费功夫。如有需要,还可以参考 AngularGo GitHub 地址),了解升级过程中的配置与代码更改。

Die Alltägliche

No. 17

这次的构想是居家办公途中听到呼喊而回头望向后方的瞬间

_

又是一年。于是今年也再度拿起画笔,趁着悬而未立,趁着多少还能确保一些能够自己支配的业余时间,再随着自己的性子去做些什么,留下些什么。画画有意思的地方在于可以随心所欲,暂时享受造物主的特权。

回想起来,上次把笔记本电脑作为道具画在画里竟然已经是九年之前。这次也算是回归初心。Surface Laptop 2 的宣传语是 A touch above ordinary,倒也恰好与标题契合。画的另一个小道具 Xperia 1 是最近一年的主力机,爱不释手。

过去一年是神奇的一年。非要说的话,或许是在过去很多年里,在今后很多年内,都很不寻常。为一些坏的情况做了准备,但最坏的情况最终竟也没有发生。对一些好的结果有所期望,但最好的结果似乎也不会实现。失望、希望、踌躇、前进。既然总有些事无法克服,那就只好尽量与之和平共处。不知不觉中,可能已经习惯了这样的状态。

迄今为止都在拼命地向前冲刺,告诉自己说,要做的更好,要变得更好。但怎样才算是更好,又怎样才能界定呢。是世俗意义的成功,还是想象中的自我实现?年初的时候还跟朋友聊到说,仍以为自己不是特别普通。实际又如何呢。也许,更多是一种相信,一份期待吧。对幻想中的美好。

嗯。加油。

要再厉害一点。

Du bist besonders.

_

_

_

One more thing…

Ver. Hoodie