找回密碼
 注冊帳號

掃一掃,訪問微社區

msp的昌偉哥哥 HoloLens開發手記 - App Model 應用程序模型

6
回復
2207
查看
打印 上一主題 下一主題
[ 復制鏈接 ]
排名
15025
昨日變化

14

主題

56

帖子

690

積分

Rank: 9Rank: 9Rank: 9

UID
3388
好友
3
蠻牛幣
115
威望
0
注冊時間
2013-9-6
在線時間
45 小時
最后登錄
2019-3-27

專欄作家

馬上注冊,結交更多好友,享用更多功能,讓你輕松玩轉社區。

您需要 登錄 才可以下載或查看,沒有帳號?注冊帳號

x
本帖最后由 mantgh 于 2016-8-10 10:41 編輯

App Model 應用程序模型

HoloLens使用Universal Windows Platform (UWP)提供的應用模型。UWP應用模型定義了應用如何被安全和完全地安裝、更新、版本控制和移除。它管理了應用生命周期 - 應用如何被執行、休眠和中斷 - 以及如何保留應用狀態。它也覆蓋了和操作系統、文件以及其他應用的集成和交互。



應用生命周期 App lifecycle


全息應用的生命周期涉及到了標準應用的概念,例如放置。啟動、中斷和移除。


放置就是啟動 Placement is launch

每一個應用都通過放置應用磁貼在HoloLens shell中啟動。這些應用磁鐵,在放置的時候,就將開始運行應用。這些應用磁貼會持久化的停留在它們被放置的位置,任何時候你都可以從它們返回應用。



一旦完成放置(除非放置是由應用間啟動喚起的),應用開始啟動。HoloLens應用同一時刻可以運行一個應用。一旦你放置和啟動了一個應用,任何其他激活的應用都會被掛起,在你放置它的地方,應用磁貼上會留下一個它最后狀態的截圖。閱讀標準生命周期的文章來了解更多關于處理恢復和其他生命周期事件的方法。


移除是關閉/終止處理 Remove is close/terminate process

當你從世界中移除一個放置好的應用磁貼,這閉合了基礎的流程。這對于確保你的應用被終止或者重啟一個有問題的應用可能是有用的。


應用暫停/終止 App suspension/termination

使用HoloLens,用戶能夠為一個應用創建多個啟動入口。它們通過從開始菜單啟動你的應用,并將應用磁貼放置在世界中來做到這點。每一個應用磁貼都表現為不同的啟動入口,在系統中都具有一個單獨的磁貼實例。SecondaryTile.FindAllAsync() 查詢的隊列將可以列出所有應用的二級磁貼。

當一個UWP應用暫停時,應用當前狀態的屏幕截圖被獲取。



與其他Windows 10平臺的關鍵區別是通過CoreApplication.Resuming和CoreApplication.Activated事件,應用如何被通知它的一個實例被激活。



情況                                          恢復激活
從開始菜單啟動一個應用新實例 使用一個新的TileId激活應用
從開始菜單啟動第二個應用實例 使用一個新的TileId激活應用
選中當前未激活的應用實例 使用實例關聯的TileId激活應用
選中一個不同的應用,然后選中先前激活的實例恢復被觸發
選中一個不同的應用,然后選中先前未激活的實例恢復被觸發然后使用實例關聯的TileId激活應用

擴展的執行 Extended execution

有時你的應用需要繼續在后臺做一些工作或者播放聲音。Background tasks 在Windows Holographic里是可以使用的,但是有一些限制



應用視圖 App views

當你的應用激活時,你可以選擇顯示哪種類型的視圖。對一個應用CoreApplication來說,總存在一個初始的應用視圖(app view)和任意數量的其他你想創建的次級視圖。對于桌面環境,你可以認為一個應用視圖就是一個窗口。我們的全息應用項目模板將會創建一個初始視圖是全息視圖的Unity項目。你的應用可以使用像Xaml這樣的技術來創建額外的2D視圖來使用應用內購買之類的shell控件。如果你的應用以通用應用形式啟動,那么初始視圖會是2D的,但是你可以通過添加一個額外的全息視圖來提升在HoloLens的體驗。想象一下,我們用XAML構建了一個圖片查看器,里面有個視圖切換按鈕,可以一鍵切換到全息視圖,在全息視圖中,來自應用的照片飛到世界和物體表面上。



創建一個全息視圖 Create a Holographic view

全息視圖是指那些通過HolographicSpace 類型創建了全息視圖的應用。



混合世界中的2D視圖 2D view in the Mixed World

任何非全息視圖的在你的世界中都會被渲染成2D視圖.


次級視圖磁貼的放置 Placement of further App Tiles

使用二級磁貼(Secondary Tile) API你可以放置任意數量你想要的2D視圖。這些被放置的磁貼將會以閃屏的形式出現,用以來之后啟動你的應用。Windows Holographic當前不支持渲染任何2D磁貼作為動態磁貼。在二級磁貼API(Secondary tile APIs)頁面你可以了解到更多信息。



切換視圖 Switching views
從2D視圖切換到全息視圖 Switching from  the 2D XAML view to the holographic view

如果用戶使用了XAML,然后XAML IFrameworkViewSource將會控制應用的首個視圖。應用需要在激活CoreWindow之前切換到全息視圖,以保證應用直接進入全息體驗。

使用CoreApplication::CreateNewViewApplicationViewSwitcher::SwitchAsync 來實現視圖的切換。

注意:

  • 當從XAML視圖切換到全息視圖或將被從世界中移除的應用面板時,不要為SwitchAsync方法指定Consolidate標記
  • SwitchAsync方法應該被你想要切換去的視圖關聯的Dispatcher所調用
  • 如果你需要啟動一個虛擬鍵盤或想要激活其他應用,你需要使用SwitchAsync方法回到XAML視圖


從全息視圖切換回鍵盤XAML視圖 Switching from the holographic view back to a keyboard XAML view

在視圖間反復切換通常是為了在全息應用顯示一個鍵盤。如果你的應用顯示了一個2D視圖,shell只能夠顯示系統鍵盤。如果你的應用需要獲取文本輸入源,然后他們會寫一個帶有文本輸入框的自定義XAML視圖,它能在切換到它后,輸入完成后再切換回去。

上述所說情形,可以使用ApplicationViewSwitcher::SwitchAsync 從你的全息視圖切換回XAML視圖。


應用大小 App size


2D應用視圖總是出現在一個固定的可視面板中。這使得所有2D視圖顯示同等數量的內容。下面是關于2D應用視圖大小的進一步細節:

  • 調整大小時,應用的寬高比始終一樣
  • 調整大小時,應用的分辨率和拉伸率都不會改變
  • 應用不能查詢他們在世界中實際的大小


應用磁貼 App tiles


開始菜單使用了標準小號和中號磁貼用于pin視圖和所有應用視圖。


應用間交互 App to app interactions

當你構建應用時,Windows 10上你可以獲得豐富的應用間通信機制。即使HoloLens目前不支持最新的應用協議啟動(app service protocol launches),但是許多新的協議API和文件注冊機制在HoloLens上能夠確保應用間啟動和通信。

協議 Protocols

HoloLens通過Windows.System.Launcher APIs 支持應用間啟動。

當啟動其他應用時,以下內容要被考慮:

  • 當非模態啟動時,例如LaunchUriAsync,用戶在與應用交互前必須放置好它
  • 當模態啟動時,例如LaunchUriForResultsAsync,模態應用會被放置在窗口頂部
  • HoloLens不能在獨占視圖(這里應該是指全息視圖?)頂部覆蓋上其他應用。為了顯示啟動的應用,HoloLens會使用會回到世界中以顯示此應用。

文件選取器 File pickers

HoloLens支持FileOpenPickerFileSavePicker 合約。盡管沒有支持文件選取合約的應用被預裝,但是你可以從Windows Store下載它們 - 例如OneDrive。

如果你安裝了多個文件選取應用,你將不會看到任何有歧義的UI,這些UI通常是用來選取啟動哪個應用。取而代之的是,首個安裝的文件選取器將會被選中。保存文件時,會自動生成包括時間戳的文件名。用戶不能改變文件愛你們。

默認情況下,以下是本地支持的文件拓展格式:


應用合約和Windows Holographic擴展 App contracts and  Windows Hologrphic extensions

應用合約和拓展入口允許你注冊你的應用來使用更底層的操作系統特性,例如處理文件拓展或者使用后臺任務。下面是Windows Holographic支持的合約和拓展入口列表。這與它支持的API集合不同。



Contract or Extension
合約或拓展
Supported?
是否支持
Account Picture Provider (extension)Unsupported
AlarmUnsupported
App service
Supported but not fully functional in the current version of Windows Holographic
支持,但是當前版本不是所有功能都可用
Appointments providerUnsupported
AutoPlay (extension)Unsupported
Background tasks (extension)
Partially Supported (not all triggers work on Windows Holographic)
部分支持,目前版本不是所有觸發器都可用
Update task (extension)Supported
Cached file updater contractSupported
Camera settings (extension)Unsupported
Dial protocolUnsupported
File activation (extension)Supported
File Open Picker contractSupported
File Save Picker contractSupported
Lock screen callUnsupported
Media playbackUnsupported
Play To contractUnsupported
Preinstalled config taskUnsupported
Print 3D WorkflowSupported
Print task settings (extension)Unsupported
URI activation (extension)Supported
Restricted launchUnsupported
Search contractUnsupported
Settings contractUnsupported
Share contractUnsupported
SSL/certificates (extension)Supported
Web account providerSupported

應用文件存儲 App File Storage

所有的存儲都是通過Windows.Storage命名空間實現。閱讀下面的內容來了解更多細節。HoloLens不支持應用存儲同步/漫游。

  • 文件、文件夾和庫 Files, folders, and libraries
  • 商店和檢索設置以及其他應用數據 Store and retrieve settings and other app data

已知目錄 Known folders

查看KnownFolders 來了解更多UWP應用使用KnownFolders的細節。



Property
屬性
Supported on HoloLens Development Edition
HoloLens開發板是否支持
Description
描述
AppCapturesYes
Gets the App Captures folder.
獲取應用捕獲文件夾
CameraRollYes
Gets the Camera Roll folder.
相機文件夾
DocumentsLibraryYes
Gets the Documents library. The Documents library is not intended for general use.
文檔庫
MusicLibraryYes
Gets the Music library.
音樂庫
Objects3DYes
Gets the Objects 3D folder.
3D對象文件夾
PicturesLibraryYes
Gets the Pictures library.
圖片庫
PlaylistsYes
Gets the play lists folder.
播放列表文件夾
SavedPicturesYes
Gets the Saved Pictures folder.
保存的圖片文件夾
VideosLibraryYes
Gets the Videos library.
視頻庫
HomeGroupNo
Gets the HomeGroup folder.
家庭組文件夾
MediaServerDevicesNo
Gets the folder of media server (Digital Living Network Alliance (DLNA)) devices.
媒體設備文件夾
RecordedCallsNo
Gets the recorded calls folder.
電話錄音文件夾
RemovableDevicesNo
Gets the removable devices folder.
可移動設備文件夾

應用打包 App package

使用Windows10,你不再需要以操作系統為目標但是取而代之的是,你需要以一個或多個設備家族來作為目標(target your app to one or more device families)。一個設備家族定義了此家族中所有設備都可應用的API、系統字符集和行為集合。它也決定了你的應用從應用商店中能安裝到哪系列的設備。



參與人數 2鮮花 +55 收起 理由
Flyer + 5 贊一個!
朱迪 + 50 贊一個!

查看全部評分總評分 : 鮮花 +55

回復

使用道具 舉報

排名
1316
昨日變化

7

主題

97

帖子

1501

積分

Rank: 9Rank: 9Rank: 9

UID
1943
好友
3
蠻牛幣
3275
威望
0
注冊時間
2013-8-13
在線時間
453 小時
最后登錄
2018-4-27

專欄作家

沙發
2016-8-10 11:40:54 只看該作者
不錯哦!!!! 先了解一下。。。。。。
回復 支持 反對

使用道具 舉報

8常駐蠻牛
6069/10000
排名
136
昨日變化

84

主題

900

帖子

6069

積分

Rank: 8Rank: 8

UID
120040
好友
2
蠻牛幣
3743
威望
0
注冊時間
2015-8-28
在線時間
2707 小時
最后登錄
2019-10-17
板凳
2016-8-10 16:12:25 只看該作者
這個東東太貴太貴了……
回復 支持 反對

使用道具 舉報

7日久生情
3428/5000
排名
283
昨日變化

1

主題

791

帖子

3428

積分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
27356
好友
1
蠻牛幣
5232
威望
0
注冊時間
2014-5-30
在線時間
708 小時
最后登錄
2019-8-29
地板
2016-8-11 09:31:55 只看該作者
這玩意不降價就肯定沒市場。
沒市場的話、誰搞應用開發誰就得杯具。
2017年的話估計也沒戲
回復 支持 反對

使用道具 舉報

7日久生情
1997/5000
排名
1463
昨日變化

5

主題

632

帖子

1997

積分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
143831
好友
2
蠻牛幣
4457
威望
0
注冊時間
2016-3-29
在線時間
494 小時
最后登錄
2019-6-17

蠻牛譯員活力之星七夕浪漫情人

5#
2016-8-11 09:37:53 只看該作者
太貴了京東七萬,要老命
回復 支持 反對

使用道具 舉報

7日久生情
3659/5000
排名
157
昨日變化

0

主題

92

帖子

3659

積分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
12206
好友
1
蠻牛幣
8486
威望
0
注冊時間
2014-1-10
在線時間
1273 小時
最后登錄
2019-10-16
6#
2016-8-14 19:23:55 只看該作者
全息還是比較吊的
回復 支持 反對

使用道具 舉報

5熟悉之中
654/1000
排名
11232
昨日變化

0

主題

399

帖子

654

積分

Rank: 5Rank: 5

UID
161170
好友
0
蠻牛幣
946
威望
0
注冊時間
2016-8-8
在線時間
165 小時
最后登錄
2019-5-23
7#
2017-4-24 12:07:54 來自Mobile--- 只看該作者
珍貴珍貴
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 注冊帳號

本版積分規則

女校游泳队彩金