第108篇
极客时间《许式伟的架构课》课程笔记。

对于桌面程序,最核心的话题是交互。
下面重点讨论操作系统对交互范式的设计。
命令行交互
- 交互设备:键盘+显示器
- 输入方式:命令行或标准输入(stdin)
- 输出:文本方式向屏幕输出,分为标准输出(stdout)和标准错误(stderr)
- 输入输出可以被重定向,比如重定向写入到文件或者通过管道重定向另一个程序的输入
-
缺陷:限制太大,无法满足常用需求,如编辑器
命令行交互程序的结构
字符界面
- 交互设备:键盘+显示器
- 输入方式:键盘按键事件(KeyDown 和 KeyUp)
- 输出:可以修改屏幕任何位置显示的字符
- 键盘功能分化:输入文本和输入命令
- 缺陷:有很大局限,如游戏的需求场景无法满足

注: TDI 含义是字符设备接口(Text Device Interface),它指的是一组向屏幕绘制文本的方法集合。
图形界面
- 交互设备:键盘+鼠标+显示器+音箱
- 输出:从字符变成像素。鼠标的出现就因为屏幕精度太高,用键盘不自然
- 主板上有内置喇叭,目前最大用途是提示重大错误发生
- 出现多窗口Window(视图view),窗口是一个独立可复用的界面元素
- 窗口系统接管桌面程序主逻辑,提供基于事件驱动的编程框架,业务代码由界面框架驱动

注: GDI 含义是图形设备接口(Graphic Device Interface),它指的是一组向指定窗口(注意不是屏幕)绘制图形的方法集合。
移动时代
- 手机成为最主流计算机
- 交互设备:触摸屏+麦克风+内置扬声器
- 鼠标交互被淘汰,多点触摸取代鼠标
- 键盘+鼠标+显示器全部被融合在触摸屏上
智能交互
- 麦克风让计算机增加了一个输入:语音
- 语音3种典型用法:应用内录音作为媒体,或者识别为文本(语音搜索)、语音输入法输入文本、基于语音助手交互(如Siri)
- 未来交互设备:触摸屏+摄像头+麦克风+内置扬声器
- 语音交互发展成熟后,可重写框架,把语音和触摸屏结合,形成新的交互范式

网友评论