HoloLens使用Universal Windows Platform (UWP)提供的应用模型。UWP应用模型定义了应用如何被安全和彻底地安装、更新、版本控制和移除。它管理了应用生命周期 - 应用如何被执行、休眠和中断 - 以及如何保留应用状态。它也覆盖了和操做系统、文件以及其余应用的集成和交互。git
全息应用的生命周期涉及到了标准应用的概念,例如放置。启动、中断和移除。web
每个应用都经过放置应用磁贴在HoloLens shell中启动。这些应用磁铁,在放置的时候,就将开始运行应用。这些应用磁贴会持久化的停留在它们被放置的位置,任什么时候候你均可以从它们返回应用。shell
一旦完成放置(除非放置是由应用间启动唤起的),应用开始启动。HoloLens应用同一时刻能够运行一个应用。一旦你放置和启动了一个应用,任何其余激活的应用都会被挂起,在你放置它的地方,应用磁贴上会留下一个它最后状态的截图。阅读标准生命周期的文章来了解更多关于处理恢复和其余生命周期事件的方法。windows
当你从世界中移除一个放置好的应用磁贴,这闭合了基础的流程。这对于确保你的应用被终止或者重启一个有问题的应用多是有用的。api
使用HoloLens,用户可以为一个应用建立多个启动入口。它们经过从开始菜单启动你的应用,并将应用磁贴放置在世界中来作到这点。每个应用磁贴都表现为不一样的启动入口,在系统中都具备一个单独的磁贴实例。SecondaryTile.FindAllAsync() 查询的队列将能够列出全部应用的二级磁贴。安全
当一个UWP应用暂停时,应用当前状态的屏幕截图被获取。app
与其余Windows 10平台的关键区别是经过CoreApplication.Resuming和CoreApplication.Activated事件,应用如何被通知它的一个实例被激活。async
状况 | 恢复 | 激活 |
从开始菜单启动一个应用新实例 | 使用一个新的TileId激活应用 | |
从开始菜单启动第二个应用实例 | 使用一个新的TileId激活应用 | |
选中当前未激活的应用实例 | 使用实例关联的TileId激活应用 | |
选中一个不一样的应用,而后选中先前激活的实例 | 恢复被触发 | |
选中一个不一样的应用,而后选中先前未激活的实例 | 恢复被触发 | 而后使用实例关联的TileId激活应用 |
有时你的应用须要继续在后台作一些工做或者播放声音。Background tasks 在Windows Holographic里是可使用的,可是有一些限制。ide
当你的应用激活时,你能够选择显示哪一种类型的视图。对一个应用CoreApplication来讲,总存在一个初始的应用视图(app view)和任意数量的其余你想建立的次级视图。对于桌面环境,你能够认为一个应用视图就是一个窗口。咱们的全息应用项目模板将会建立一个初始视图是全息视图的Unity项目。你的应用可使用像Xaml这样的技术来建立额外的2D视图来使用应用内购买之类的shell控件。若是你的应用以通用应用形式启动,那么初始视图会是2D的,可是你能够经过添加一个额外的全息视图来提高在HoloLens的体验。想象一下,咱们用XAML构建了一个图片查看器,里面有个视图切换按钮,能够一键切换到全息视图,在全息视图中,来自应用的照片飞到世界和物体表面上。ui
全息视图是指那些经过HolographicSpace 类型建立了全息视图的应用。
任何非全息视图的在你的世界中都会被渲染成2D视图.
使用二级磁贴(Secondary Tile) API你能够放置任意数量你想要的2D视图。这些被放置的磁贴将会以闪屏的形式出现,用以来以后启动你的应用。Windows Holographic当前不支持渲染任何2D磁贴做为动态磁贴。在二级磁贴API(Secondary tile APIs)页面你能够了解到更多信息。
若是用户使用了XAML,而后XAML IFrameworkViewSource将会控制应用的首个视图。应用须要在激活CoreWindow以前切换到全息视图,以保证应用直接进入全息体验。
使用CoreApplication::CreateNewView 和 ApplicationViewSwitcher::SwitchAsync 来实现视图的切换。
注意:
在视图间反复切换一般是为了在全息应用显示一个键盘。若是你的应用显示了一个2D视图,shell只可以显示系统键盘。若是你的应用须要获取文本输入源,而后他们会写一个带有文本输入框的自定义XAML视图,它能在切换到它后,输入完成后再切换回去。
上述所说情形,可使用ApplicationViewSwitcher::SwitchAsync 从你的全息视图切换回XAML视图。
2D应用视图老是出如今一个固定的可视面板中。这使得全部2D视图显示同等数量的内容。下面是关于2D应用视图大小的进一步细节:
开始菜单使用了标准小号和中号磁贴用于pin视图和全部应用视图。
当你构建应用时,Windows 10上你能够得到丰富的应用间通讯机制。即便HoloLens目前不支持最新的应用协议启动(app service protocol launches),可是许多新的协议API和文件注册机制在HoloLens上可以确保应用间启动和通讯。
HoloLens经过Windows.System.Launcher APIs 支持应用间启动。
当启动其余应用时,如下内容要被考虑:
HoloLens支持FileOpenPicker 和 FileSavePicker 合约。尽管没有支持文件选取合约的应用被预装,可是你能够从Windows Store下载它们 - 例如OneDrive。
若是你安装了多个文件选取应用,你将不会看到任何有歧义的UI,这些UI一般是用来选取启动哪一个应用。取而代之的是,首个安装的文件选取器将会被选中。保存文件时,会自动生成包括时间戳的文件名。用户不能改变文件爱大家。
默认状况下,如下是本地支持的文件拓展格式:
应用合约和拓展入口容许你注册你的应用来使用更底层的操做系统特性,例如处理文件拓展或者使用后台任务。下面是Windows Holographic支持的合约和拓展入口列表。这与它支持的API集合不一样。
全部的存储都是经过Windows.Storage命名空间实现。阅读下面的内容来了解更多细节。HoloLens不支持应用存储同步/漫游。
查看KnownFolders 来了解更多UWP应用使用KnownFolders的细节。
Property 属性 |
Supported on HoloLens Development Edition HoloLens开发板是否支持 |
Description 描述 |
---|---|---|
AppCaptures | Yes | Gets the App Captures folder. 获取应用捕获文件夹 |
CameraRoll | Yes | Gets the Camera Roll folder. 相机文件夹 |
DocumentsLibrary | Yes | Gets the Documents library. The Documents library is not intended for general use. 文档库 |
MusicLibrary | Yes | Gets the Music library. 音乐库 |
Objects3D | Yes | Gets the Objects 3D folder. 3D对象文件夹 |
PicturesLibrary | Yes | Gets the Pictures library. 图片库 |
Playlists | Yes | Gets the play lists folder. 播放列表文件夹 |
SavedPictures | Yes | Gets the Saved Pictures folder. 保存的图片文件夹 |
VideosLibrary | Yes | Gets the Videos library. 视频库 |
HomeGroup | No | Gets the HomeGroup folder. 家庭组文件夹 |
MediaServerDevices | No | Gets the folder of media server (Digital Living Network Alliance (DLNA)) devices. 媒体设备文件夹 |
RecordedCalls | No | Gets the recorded calls folder. 电话录音文件夹 |
RemovableDevices | No | Gets the removable devices folder. 可移动设备文件夹 |
使用Windows10,你再也不须要以操做系统为目标可是取而代之的是,你须要以一个或多个设备家族来做为目标(target your app to one or more device families)。一个设备家族定义了此家族中全部设备均可应用的API、系统字符集和行为集合。它也决定了你的应用从应用商店中能安装到哪系列的设备。
翻译自:https://developer.microsoft.com/en-us/windows/holographic/app_model#App_views