APP除了在外存中保存数据之外,通过内存中的代码,总共完成两种任务,一个是通过设备功能接口操控设备;另一个是与其他APP通讯,再就没有其他了。
如果曾经提供的设备功能接口发生变化,只需使用新的编码建立新的接口即可,旧的仍然有效不受影响。
APP在外存中的存储格式:
256MB为单位,最小256MB,最大16TB,完全归APP所有,除了APP自己,谁也无法读写这些空间。
首先是APP图标。
接下来是APP描述,线程个数/请求内存大小/载入大块基址/载入大块长度。
然后是最大255个线程的描述,功能编码/起始地址/通讯段基址。
然后是APP的任意数据,其中包含一个“载入大块”,该数据块在启动运行时被整体载入内存,然后唤醒其中的线程代码,开始运行。该“载入大块”也可以为任意数据,即使是“直接跑飞的乱码”都可以。(其实永远不会跑飞,只会跑飞/截获/重定向/再跑飞/再截获/再重定向,循环不止。)
APP在外存中可存储任意数据,根据设备接口可感知用户的行为;操控硬件与外部通讯;与同一系统中的其他APP交互;将状态或信息显示在屏幕上。完成几乎任意的常规功能。
鼠标设备接口:只提供“鼠标当前状态”4B,内含按键状态和屏幕坐标,其他再没有了。
存储设备接口:APP指定“内存位置”和“外存位置”即可,以4KB为单位,“内存位置”尾数为0表示从外向内读,为1表示从内向外写。其他再没有了。
显示设备接口:APP指定“屏幕所展示的内存位置”即可,其他再没有了。然后APP在该位置上改写数据,都会即时的显示在屏幕上。从上到下共分“鼠标指针层”“透明前景层”“不透明背景层”共三层。
网络发送接口:APP指定“本地IP/掩码/网关”和“远端IP”以及“欲发送的数据”即可,再没有了。
网络接收接口:APP指定“本地IP/掩码/网关”以及“超时量”即可,再没有了。
键盘接口:只提供键盘码值队列,包含从上次感知以来出现的未处理的“键盘码值”,然后就没有了。
计时器接口:提供毫秒级倒计时和正向计时,其他就没有了。
时钟接口:提供当前时间查询和未来时刻提醒,然后就没有了。
声音播放接口:APP指定“声音数据的内存位置”即可,其他就没有了。
如果曾经提供的设备功能接口发生变化,只需使用新的编码建立新的接口即可,旧的仍然有效不受影响。
APP在外存中的存储格式:
256MB为单位,最小256MB,最大16TB,完全归APP所有,除了APP自己,谁也无法读写这些空间。
首先是APP图标。
接下来是APP描述,线程个数/请求内存大小/载入大块基址/载入大块长度。
然后是最大255个线程的描述,功能编码/起始地址/通讯段基址。
然后是APP的任意数据,其中包含一个“载入大块”,该数据块在启动运行时被整体载入内存,然后唤醒其中的线程代码,开始运行。该“载入大块”也可以为任意数据,即使是“直接跑飞的乱码”都可以。(其实永远不会跑飞,只会跑飞/截获/重定向/再跑飞/再截获/再重定向,循环不止。)
APP在外存中可存储任意数据,根据设备接口可感知用户的行为;操控硬件与外部通讯;与同一系统中的其他APP交互;将状态或信息显示在屏幕上。完成几乎任意的常规功能。
以上是一个vm58中全部工作方式概括性的说明,其他重要的内容就没有了。