成为VIP会员查看完整内容
VIP会员码认证
首页
主题
发现
会员
服务
注册
·
登录
0
我想在国产安卓系统,用上这些超好用的原生 Android 功能
2020 年 5 月 13 日
少数派
2019 年 7 月曾经写过一篇文章揭露 Android 定制系统「阉割」密码管理器现象的文章,虽然从我自己微不足道的影响力出发这样的文章甚至都算不上「揭露」,但 2020 年我在用的 ColorOS 7 和 MIUI 12 都已经拥有了完整的自动填充框架和第三方密码管理器支持,这一点还是给了我信心。
不过在去年 7 月到今年 5 月这段密集使用国内定制 UI 并与朋友沟通使用体验的过程中,我发现了更多和上面提到这个自动填充框架类似的问题——定制 UI 的理想状态是「基于原生且优于原生」,但我们依然发现了不少原生比定制 UI 做得更好的地方。在从原生到定制的过程中,或许是出于对自家用户使用习惯的照顾,或许是因为开发能力不足,这些功能也和早前的自动填充框架一样无情「被砍」。
作为一个一直以来都对原生 Android 保持高度关注的用户,在这篇文章中我就来分享一些我觉得定制 UI 可以向原生 Android「靠拢」的地方。
《这个国内厂商不该「阉割」的功能,让你不用每次都手动输密码》:sspai.com/post/55825
▍
无需跳转的常用设置面板
在 Android 10 中,Google 引入了一项名为「设置面板(settings panels)」的 API,借助这个 API,应用可以直接在应用内向我们展示系统设置。
在 Google 设想的场景中有这么一种情况:当我们打开网络浏览器时,发现设备已经开启了飞行模式,此时应用只能通过弹窗或 toast 通知的方式要求我们前往设置打开网络连接开关——而在 Android 10 里,应用此时可以直接显示一个设置面板,允许我们快速更改主要的连接设定,如飞行模式、WLAN、移动数据等等,无需在应用和系统设置间来回跳转。
无需离开应用就能进行基本设置
这个功能和 Google 所设想的场景乍看上去似乎有些鸡肋,毕竟在上述情景下大多数人其实都会选择快速设置面板来完成网络连通性设置。但在一些对网络条件要求严格、需要我们决定网络连接类型的情况下,如网盘备份、游戏更新等,直接在应用内弹出的设置面板其实也是可以让我们的操作更加方便省事一点的。
不过我们建议厂商用好这个 API 还有另一层更加重要的原因,也就是接下来将要介绍的音量调节。
▍
更方便的音量调节方式
媒体、通话、闹铃、通知……我们对移动设备的音量调节需求丝毫不输电脑,但早年不少学习、模仿 iOS 的定制 UI 在音量调节这件事情上也基本照抄,音量调节功能在近两年才得到足够的重视。
而在这一点上,原生 Android 的做法尤其值得借鉴。
一方面,当你按下音量调节键时,默认调节的音量就是当前正在播放的音量。
如果你正在刷 YouTube,此时调节的应该是媒体音量;如果你的闹钟响了,此时调节的应该是闹钟音量;如果有人给你打电话,此时调节的应该是铃声音量……在原生 Android 上我们几乎不会遇到在错的时间点开错的视频、按下音量减却发现调节的是铃声音量而不是媒体播放音量的尴尬。
此外 Android 系统还会根据当前的设备连接状态进一步做出决定,当手机接入了多个蓝牙设备时,按下音量键优先调节的一定是正在播放而非闲置不用的那个蓝牙设备的播放音量。
方便快速的音量调节功能
另一方面,基于上面提到的设置面板 API,Android 10 还进一步引入了音量调节扩展面板。调节音量时点击控制条下方的设置按钮即可展开扩展面板,这个面板可以被看作是「系统设置 > 声音」界面的「微缩版」,允许我们直接对各类音频输出的音量大小进行单独调节。
最后,针对上面提到的多个音频播放设备连接的情况,我们也可以直接在这个扩展面板中自由切换用于音频输出的设备。
▍
更懂使用场景的屏幕旋转
Android 9 Pie 发布的同时,Android 用户所熟悉的「三大金刚」被返回和同时拥有主屏(Home)、最近任务概览(Recents)两种功能的「小药丸」所取代,但彼时屏幕底部的导航栏按键区域依然存在,Google 于是灵机一动,将最近任务概览按钮留下来的空位留给了一个新功能——强制转屏。
这里的考虑很简单,Android 系统默认的屏幕自动旋转功能其实是不怎么「通人性」的:为了避免侧躺玩手机屏幕内容自动横屏影响观看体验,很多人往往会关闭手机的自动旋转功能;但在日常使用需要查看照片、电影时,我们就必须打开快速设置面板手动打开「自动旋转」了。
这个开关其实非常不灵活
强制转屏功能索性把「转不转」的权利完全交给了那些常年关闭「自动旋转」的用户——当系统获取到来自陀螺仪等传感器的手机旋转数据后,Android 系统会在屏幕底部显示一个可以用于强制切换横、竖屏显示的按钮。
屏幕方向发生变化时的强制转屏图标
如果你只是睡前玩玩手机那就不必理会这个按钮,数秒后它便会自动消失;如果你确实是一个偶尔需要横屏显示内容的「反自动旋转功能」用户,点击这个按钮又能免除一次下拉打开快速设置面板找开关的麻烦。
在最新的 Android 10 中,强制旋转按钮从底部导航栏迁移到了屏幕下方角落,样式也从矩形按钮变成了圆形图标,但实用性依旧。而国内的定制 UI 由于此前采用的全面屏手势方案大多不包含屏幕导航栏设计,这个强制转屏按钮也就没了踪影。
▍
自动亮度调节的学习能力
iOS 用户转战 Android 阵营后常常怀念的东西除了 iMessage,还有 iOS 出色的自动亮度调节——Android 这边和「通情达理」毫不沾边的自动亮度调节已经被用户吐槽多年了。
在 Android 9 之前,自动亮度调节的简要工作流程应该是:
手机根据实际环境光情况和手机厂商内置的亮度调节曲线自动将屏幕亮度调节到特定数值
用户根据实际情况:将滑块向左拉,产生一个负比例系数,让屏幕亮度比厂商的预设值更低(觉得手机屏幕太亮了)将滑块向右拉,产生一个正比例系数,让屏幕亮度比厂商的预设值更高(觉得手机屏幕还不够亮)
解构这个流程不难发现,这种自动亮度调节机制势必会带来两个问题:一方面厂商内置的亮度调节曲线本身并不科学,欠缺调校;另一方面我们的亮度选择偏好(拖动滑块的行为)并不能得到学习和记忆。
这两个问题叠加起来就是堪称「灾难级」的自动亮度体验了——厂商内置的亮度调节曲线并不能给到我们想要的结果,由于早年机器学习在移动设备上并未得到广泛应用,Android 系统也无法记住我们的实际亮度偏好,每次自动亮度出问题时,我们都需要手动拉一下滑块。
而优秀的自动亮度调节机制是很少需要、甚至不需要我们进行手动干预的。为了改善 Android 平台的亮度调节体验,Google 在 Android 9 中针对上面的自动亮度问题做了两方面改进:
将亮度控制滑块所代表的控制目标由全局调节系数更改为绝对屏幕亮度
借助本地机器学习对亮度映射关系进行个性化调优
第一点将自动亮度开启前提下的绝对亮度控制权完全交给了用户,举个例子,当系统觉得与当前环境匹配的绝对亮度是最高亮度的 70% 时:在 Android 9 之前的版本中,我们将亮度滑块拉到最右侧能够获取到的亮度是70%*正比例系数;在 Android 9 之后的版本中,我们将亮度滑块拉到最右侧能够获取到的亮度就是 100%。
第二点则让 Android 系统记住了特定使用场景下用户的亮度选择倾向:玩游戏时喜欢把屏幕亮度调到最高,厂商预置的最低亮度对你而言有些太暗了……对这些使用习惯的记忆配合上面提到的对绝对亮度的直接操控,我们手动操作亮度控制滑块的次数理论上来说会随着使用时间的增加而减少。
奇怪的是后续版本这个功能又被翻译成了「自动调节亮度」
说了这么多,你会发现即便厂商给到的预置亮度调节曲线不太合理,Android 9 的自动亮度学习特性也能随着每一次对屏幕绝对亮度的调节,拥有「越用越懂你」的自动亮度调节能力。所幸在今年发布的国产旗舰手机中我们已经看到了基于这种思路的自动亮度调节算法,如 Find X2、小米 10 系列等,各家的机器学习算法好不好用尚且有待时间验证,但这种调校方向和解决思路是绝对值得借鉴的。
▍
更灵活的通知交互方式
尽管市面上大部分机型的底层版本都已经升级到了 Android 10,Google 自 8.0 以来为 Android 系统引入的通知延后功能在不少 OEM 厂商的定制系统中依然缺席。
通知延后并不是一个无关紧要的小功能,因此当 Google 在 Android 11 DP2 中将其移除后立即招来了开发者和用户的不满,并且在随后发布的 Android DP3 中又将这个特性以开关的形式加了回去。
在原生 Android 8.0+ 版本的设备上,我们可以对一条应用所发出的通知进行延后处理,只需在对应通知上向左或向右轻扫,然后点击出现的时钟🕓图标即可完成延后操作。
通知延后
这个功能的应用场景也相当灵活,借助它我们可以轻松管理那些当前无暇处理但又害怕被意外清除的通知;除此之外,对于那些没有 FCM 推送的应用来说,系统级的延后功能也可以帮助它们突破应用的自身限制,风雨无阻地在指定时长后重新出现在我们的通知栏里。
除了通知延后,Android 10 引入的「智能回复」特性目前在国内定制 ROM 中也鲜有应用——这项特性可以根据通知内容在应用通知下方给出灵活的操作建议,不管是快速恢复还是调用其他应用一键直达都非常方便,具体的介绍我们在此前的文章里已经有过提及,这里就不再赘述了。
《Android 10 里有哪些「用了就回不去」的好功能》
:
sspai.com/post/56538
通知提供快速操作
▍
小结
在厂商定制、打磨手机系统体验的过程中总有这样那样的细节容易被忽视,但依然有值得肯定的地方,甚至不乏将本文所提到的功能和特性利用、再创新得可谓绝妙的,如 Flyme 的强制转屏、MIUI 12 的分应用音量调节和越来越多的 Android 厂商都逐渐开始重视的 AI 自动亮度算法等等。
你最希望 Android 厂商在定制 Android 体验的过程中保留哪些功能?欢迎在评论区留下你的看法。
@
玖工格
对本文的创作思路亦有贡献。
更多热门文章
登录查看更多
点赞并收藏
0
暂时没有读者
0
权益说明
本文档仅做收录索引使用,若发现您的权益受到侵害,请立即联系客服(微信: zhuanzhi02,邮箱:bd@zhuanzhi.ai),我们会尽快为您处理
相关内容
Android
关注
29
Android(安卓)是一种以 Linux 为基础开发的开放源代码的操作系统,主要应用于便携设备。2005 年,Android 公司被 Google 收购,随后 Google 联合制造商组成开放手机联盟。Android 已从智能手机领域逐渐扩展到平板电脑、智能电视(及机顶盒)、游戏机、物联网、智能手表、车载系统、VR以及PC等领域。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【2020新书】C++20 特性 第二版,A Problem-Solution Approach
专知会员服务
58+阅读 · 2020年4月26日
YOLOv4 重磅来袭!俄罗斯小哥带来新一代快速高效检测器
专知会员服务
31+阅读 · 2020年4月24日
TensorFlow开发者峰会2020 Keynote,TF2及其庞大的科研、工业生态圈
专知会员服务
25+阅读 · 2020年3月20日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
【2020新书】Kafka实战:Kafka in Action,209页pdf
专知会员服务
67+阅读 · 2020年3月9日
C++17是什么?看这本最新指南书册《C++17标准语言新特性》109页pdf
专知会员服务
68+阅读 · 2020年2月23日
【阿里巴巴】 AI编译器,AI Compiler @ Alibaba,21页ppt
专知会员服务
44+阅读 · 2019年12月22日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
微软VS Code已原生支持Jupyter笔记本,再也不用打开网页调试运行了
量子位
14+阅读 · 2019年10月22日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
使用无服务器式的 Jenkins X:探索Prow,Jenkins X Pipeline Operator和Tekton
DevOps时代
5+阅读 · 2019年4月25日
不用重置 iPhone,教你找回「屏幕使用时间」密码
少数派
27+阅读 · 2019年4月19日
I2P - 适用于黑客的Android应用程序
黑白之道
30+阅读 · 2019年3月6日
可能是 Android 上最好用的写作 App
少数派
10+阅读 · 2018年12月21日
教程 | 如何将模型部署到安卓移动端,这里有一份简单教程
机器之心
4+阅读 · 2018年7月17日
免费云真机测试 | 让您的应用完美适配 Android Oreo
引力空间站
3+阅读 · 2018年2月2日
Neo4j 和图数据库起步
Linux中国
8+阅读 · 2017年12月20日
天猫精灵 X1 体验:是智能音箱,也是人人都能用的 AI 助手
极客公园
3+阅读 · 2017年7月6日
Android Malware Detection using Large-scale Network Representation Learning
Arxiv
4+阅读 · 2018年12月11日
The Effects of Super-Resolution on Object Detection Performance in Satellite Imagery
Arxiv
3+阅读 · 2018年12月10日
Testing Matrix Rank, Optimally
Arxiv
3+阅读 · 2018年10月18日
FuzzerGym: A Competitive Framework for Fuzzing and Learning
Arxiv
4+阅读 · 2018年7月19日
Bi-Directional Neural Machine Translation with Synthetic Parallel Data
Arxiv
6+阅读 · 2018年5月29日
Structuring Wikipedia Articles with Section Recommendations
Arxiv
5+阅读 · 2018年4月17日
Cross-Domain Image Matching with Deep Feature Maps
Arxiv
13+阅读 · 2018年4月6日
Leveraging Unlabeled Data for Crowd Counting by Learning to Rank
Arxiv
6+阅读 · 2018年3月8日
MARVELO: Wireless Virtual Network Embedding for Overlay Graphs with Loops
Arxiv
7+阅读 · 2017年12月18日
Improving Object Localization with Fitness NMS and Bounded IoU Loss
Arxiv
4+阅读 · 2017年11月8日
VIP会员
自助开通(推荐)
客服开通
详情
相关主题
Android
API
Google
移动数据
iOS
网盘
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【2020新书】C++20 特性 第二版,A Problem-Solution Approach
专知会员服务
58+阅读 · 2020年4月26日
YOLOv4 重磅来袭!俄罗斯小哥带来新一代快速高效检测器
专知会员服务
31+阅读 · 2020年4月24日
TensorFlow开发者峰会2020 Keynote,TF2及其庞大的科研、工业生态圈
专知会员服务
25+阅读 · 2020年3月20日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
【2020新书】Kafka实战:Kafka in Action,209页pdf
专知会员服务
67+阅读 · 2020年3月9日
C++17是什么?看这本最新指南书册《C++17标准语言新特性》109页pdf
专知会员服务
68+阅读 · 2020年2月23日
【阿里巴巴】 AI编译器,AI Compiler @ Alibaba,21页ppt
专知会员服务
44+阅读 · 2019年12月22日
【电子书】C++ Primer Plus 第6版,附PDF
专知会员服务
87+阅读 · 2019年11月25日
热门VIP内容
开通专知VIP会员 享更多权益服务
OpenAI十二天总结与Agent新范式
【伯克利博士论文】高效深度学习推理的全栈方法
【AAAI2025】多层次最优传输用于语言模型中的通用跨标记器知识蒸馏
大规模语言模型增强推荐系统:分类、趋势、应用与未来
相关资讯
微软VS Code已原生支持Jupyter笔记本,再也不用打开网页调试运行了
量子位
14+阅读 · 2019年10月22日
在K8S上运行Kafka合适吗?会遇到哪些陷阱?
DBAplus社群
9+阅读 · 2019年9月4日
使用无服务器式的 Jenkins X:探索Prow,Jenkins X Pipeline Operator和Tekton
DevOps时代
5+阅读 · 2019年4月25日
不用重置 iPhone,教你找回「屏幕使用时间」密码
少数派
27+阅读 · 2019年4月19日
I2P - 适用于黑客的Android应用程序
黑白之道
30+阅读 · 2019年3月6日
可能是 Android 上最好用的写作 App
少数派
10+阅读 · 2018年12月21日
教程 | 如何将模型部署到安卓移动端,这里有一份简单教程
机器之心
4+阅读 · 2018年7月17日
免费云真机测试 | 让您的应用完美适配 Android Oreo
引力空间站
3+阅读 · 2018年2月2日
Neo4j 和图数据库起步
Linux中国
8+阅读 · 2017年12月20日
天猫精灵 X1 体验:是智能音箱,也是人人都能用的 AI 助手
极客公园
3+阅读 · 2017年7月6日
相关论文
Android Malware Detection using Large-scale Network Representation Learning
Arxiv
4+阅读 · 2018年12月11日
The Effects of Super-Resolution on Object Detection Performance in Satellite Imagery
Arxiv
3+阅读 · 2018年12月10日
Testing Matrix Rank, Optimally
Arxiv
3+阅读 · 2018年10月18日
FuzzerGym: A Competitive Framework for Fuzzing and Learning
Arxiv
4+阅读 · 2018年7月19日
Bi-Directional Neural Machine Translation with Synthetic Parallel Data
Arxiv
6+阅读 · 2018年5月29日
Structuring Wikipedia Articles with Section Recommendations
Arxiv
5+阅读 · 2018年4月17日
Cross-Domain Image Matching with Deep Feature Maps
Arxiv
13+阅读 · 2018年4月6日
Leveraging Unlabeled Data for Crowd Counting by Learning to Rank
Arxiv
6+阅读 · 2018年3月8日
MARVELO: Wireless Virtual Network Embedding for Overlay Graphs with Loops
Arxiv
7+阅读 · 2017年12月18日
Improving Object Localization with Fitness NMS and Bounded IoU Loss
Arxiv
4+阅读 · 2017年11月8日
大家都在搜
自主可控
洛克菲勒
大规模语言模型
CMU博士论文
生成式人工智能
palantir
SMT
运筹
版面
社区分享 | 用 PoseNet + TensorFlow.js 在浏览器实现体感游戏
Top
提示
微信扫码
咨询专知VIP会员与技术项目合作
(加微信请备注: "专知")
微信扫码咨询专知VIP会员
Top