技术视角看生活-2-为什么来电后必须立刻接听?

大家好!

之前的技术视角看生活-1-目录篇里抛出的第一个疑问就是:

高德地图语音播报时,后台正在运行的酷狗音乐声音会自动变小,为什么?

来电后无论在打游戏、看视频、听歌,手机主界面立马会显示来电界面,必须得马上处理,为什么?

听歌时候,然后看抖音,酷狗播放器会自动暂停,为什么?

其实,上面几个为什么的本质,都是关于【手机软件平台架构】方面的。如果想真正解释清楚,最好需要有实际APP的开发经验,开发一个APP,从开发、发布、安装、自测,走完整个流程自然就对以上原理很清楚了,因为笔者之前都是后端开发,并没有Android或者iOS开发经验,所以这里就先从原理解释一下。

一、现象:

高德地图在语音播报,表明当前运行的是高德地图,且地图导航界面处于GUI的最上层;
此时,后台还有酷狗音乐在播放,当导航语音开始播放的时候,此时手机系统(平台方)要确定在多个语音播放的时候,该怎么来展示?猜想一下,可能需要这么做:

1、优先播放处于当前激活的窗口应用的语音播放,【暂停】后台运行的酷狗播放器;
2、优先播放处于当前激活的窗口应用的语音播放,【减小】后台运行的酷狗播放器的声音;
待当前激活窗口应用的语音播报完毕后,【恢复】后台运行的酷狗播放器

从用户体验来看,笔者当然喜欢第二种设计。实际小米也是这么设计的(笔者手机是小米系列的)。因为如果暂停了音乐播放器,我希望的是边导航边听歌,意味着每次导航播报完毕后,都需要手动再次点击音乐播放按钮才能继续听歌,这无疑“让人抓狂!”,所以当前的设计是很人性化的。

假设还有一个音频播放器也在后台运行,三个音频,怎么播放呢?留作思考题吧。

二、原理

推荐《手机软件平台架构解析》 和凌志 郭世平 编著 电子工业出版社

上面说的其实背后由:【应用程序管理器】来控制的。
应用程序管理器又是什么?就理解成手机操作系统的一个模块即可。
手机平台(手机开发商),比如小米手机,那么小米手机的操作系统,是由小米公司来控制的(平台方)。平台方需要来管控各个应用程序,通过什么来管控呢?自然是手机操作系统。操作系统里自然就包括应用程序管理器

每个应用(App)都可以自定义优先级,一个手机安装了那么多APP,各自设定优先级,就会乱套。所以应用程序管理器就是来统一管控这些的。

它的作用是?

  • 注册与注销。 每个APP的启动和关闭都要通过应用程序管理器
  • 调度 根据优先级调度不同的应用

回到来电显示的话题,来电后,首先看到的是一个来电的界面,这时候我们是没法做其他操作的,无论在看视频、打游戏、听歌,你会发现全都退到“幕后”去了。来电的界面充斥在最前面。这就是手机的“窗口”,即:当前激活的窗口。对于优先级,我们就是从当前激活的窗口来感知的,处于最前面的,一般都是优先级最高的。

书中描述应用程序优先级一般分为:

低级-Low		
普通级-Normal  
紧急级-Urgent  eg:闹钟、日程提醒 
抢占级 -Preemptive   来电、电量不足 

好了,感觉还是要用code说话,文字介绍总觉得不是很接地气。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值