Meta為AR/VR操作系統(tǒng)提出component應(yīng)用運(yùn)行框架
查看引用/信息源請點(diǎn)擊:映維網(wǎng)Nweon
操作系統(tǒng)可以控制每個(gè)應(yīng)用程序的presenter和data provider,從而最小化AR/VR設(shè)備的功耗并改善隱私
(映維網(wǎng)Nweon?2023年07月07日)傳統(tǒng)的操作系統(tǒng)已經(jīng)定義了應(yīng)用程序生命周期,包括進(jìn)程啟動(dòng),進(jìn)程在一個(gè)或多個(gè)線程上工作,然后進(jìn)程退出。對于傳統(tǒng)操作系統(tǒng),應(yīng)用程序用戶界面和工作項(xiàng)的生命周期不會(huì)超過進(jìn)程。另外,傳統(tǒng)操作系統(tǒng)存在相關(guān)的功耗問題和隱私問題。
針對這一點(diǎn),Meta在名為“Power-efficient application lifecycle”的專利申請中提出了針對AR/VR的功耗和隱私改善方法。
在一個(gè)實(shí)施例中,應(yīng)用程序框架可以包括應(yīng)用程序?qū)嵗芾砥?。為了解決與傳統(tǒng)操作系統(tǒng)相關(guān)的功耗問題和隱私問題,可以使用另一種應(yīng)用程序框架。其中,可以將應(yīng)用程序分解為各自的component。通過將應(yīng)用程序分離到其component,可以為每個(gè)component單獨(dú)觸發(fā)生命周期事件。每個(gè)應(yīng)用程序可以定義多個(gè)“實(shí)例”、“presenter”、“worker”和“data provider”,其中每個(gè)presenter、worker和data provider都有自己的生命周期。
操作系統(tǒng)可以控制每個(gè)應(yīng)用程序的presenter和data provider,從而最小化AR/VR設(shè)備的功耗并改善隱私。
在特定的實(shí)施例中,應(yīng)用程序框架可以包括用于處理由應(yīng)用程序?qū)崿F(xiàn)的實(shí)例的應(yīng)用程序?qū)嵗芾砥鳌?yīng)用程序框架同時(shí)可以包含一個(gè)presentation管理器,用于管理應(yīng)用程序的presenter。應(yīng)用程序?qū)嵗芾砥骺梢詾槊總€(gè)活動(dòng)實(shí)例創(chuàng)建實(shí)例host來初始激活活動(dòng)實(shí)例。
實(shí)例可用于管理一個(gè)或多個(gè)presenter。例如,消息傳遞應(yīng)用程序的實(shí)例可以有一個(gè)用于登錄用戶界面的presenter、一個(gè)會(huì)話視圖,并且有用于每個(gè)單獨(dú)會(huì)話的單獨(dú)presenter。
presenter管理器可以對presenter進(jìn)行重組和管理,例如重新組織presenter的位置和布局,以便顯示給佩戴AR/VR設(shè)備的用戶。
另外,其他應(yīng)用程序可以訪問特定類別的data provider。盡管每個(gè)應(yīng)用程序可能有自己的data provider,但每個(gè)data provider可能與一個(gè)類別相關(guān)聯(lián)。例如,社交媒體應(yīng)用程序可以訪問自己的data provider和消息傳遞應(yīng)用程序的data provider。
應(yīng)用程序的每個(gè)presenter可以追蹤應(yīng)用程序的一個(gè)狀態(tài)。例如,顯示新聞提要的presenter可以追蹤新聞提要的狀態(tài),這樣當(dāng)用戶滾動(dòng)新聞提要時(shí),presenter可以追蹤用戶在新聞提要中查找的位置。結(jié)合使用應(yīng)用程序?qū)嵗芾砥骱蚿resenter管理器來處理實(shí)例、data provider和presenter,可以在應(yīng)用程序之間實(shí)現(xiàn)靈活的互操作性,同時(shí)可以降低功耗。
Meta指出,通過將應(yīng)用程序分解為多個(gè)component,操作系統(tǒng)可以只調(diào)用特定活動(dòng)所需的component。選擇性地調(diào)用component可以減少典型應(yīng)用程序生命周期的功耗。例如,如果只需要來自應(yīng)用程序的數(shù)據(jù),則只調(diào)用應(yīng)用程序的data provider來訪問來自數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)并填充應(yīng)用程序定義的數(shù)據(jù)集。換句話說,應(yīng)用程序的presenter不需要被調(diào)用,從而節(jié)省了功耗。
在具體實(shí)施例中,所述計(jì)算系統(tǒng)的操作系統(tǒng)可以調(diào)用第一實(shí)例和第一presenter。在特定實(shí)施例中,操作系統(tǒng)可以使用應(yīng)用程序?qū)嵗芾砥鱽碚{(diào)用第一實(shí)例,其中第一實(shí)例可以管理第一presenter。
在特定實(shí)施例中,應(yīng)用程序?qū)嵗芾砥骺梢哉{(diào)用一個(gè)或多個(gè)其他實(shí)例,每個(gè)實(shí)例可以管理各自的presenter。操作系統(tǒng)可以使用應(yīng)用程序?qū)嵗芾砥鱽泶_定根據(jù)實(shí)例數(shù)據(jù)庫激活對應(yīng)于第二應(yīng)用程序的第二實(shí)例。
操作系統(tǒng)可以使用應(yīng)用程序?qū)嵗芾砥鱽碚{(diào)用第二個(gè)實(shí)例及其相應(yīng)的component,例如data provider。
在特定實(shí)施例中,可以并行地調(diào)用一個(gè)或多個(gè)實(shí)例。操作系統(tǒng)可以使用實(shí)例數(shù)據(jù)庫和應(yīng)用程序?qū)嵗芾砥鱽泶_定是否需要調(diào)用和/或關(guān)閉實(shí)例。
如果應(yīng)用程序?qū)嵗芾砥鳑Q定關(guān)閉一個(gè)實(shí)例,則應(yīng)用程序?qū)嵗芾砥骺梢躁P(guān)閉一個(gè)實(shí)例,同時(shí)允許應(yīng)用程序的其他component繼續(xù)運(yùn)行。例如,應(yīng)用程序?qū)嵗芾砥骺梢躁P(guān)閉應(yīng)用程序的實(shí)例,但應(yīng)用程序的data provider可以在實(shí)例關(guān)閉后繼續(xù)運(yùn)行。
計(jì)算系統(tǒng)的操作系統(tǒng)可以確定第一presenter配置為呈現(xiàn)由data provider獲得的數(shù)據(jù)。在特定實(shí)施例中,data provider可以是第二應(yīng)用程序的多個(gè)應(yīng)用程序component之一。作為一個(gè)示例,應(yīng)用程序可以包括data provider、實(shí)例、worker、presenter和其他應(yīng)用程序component。
計(jì)算系統(tǒng)的操作系統(tǒng)可以使用data provider從數(shù)據(jù)存儲(chǔ)訪問數(shù)據(jù)。在具體實(shí)施例中,計(jì)算系統(tǒng)的操作系統(tǒng)可以使用data provider從數(shù)據(jù)存儲(chǔ)訪問數(shù)據(jù)并填充由第二應(yīng)用程序定義的數(shù)據(jù)集。
操作系統(tǒng)可以使用data provider來訪問來自第二數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)并填充由第二應(yīng)用程序定義的數(shù)據(jù)集。作為一個(gè)示例,data provider可以訪問特定類別的數(shù)據(jù)來填充第二個(gè)應(yīng)用程序定義的數(shù)據(jù)集。
操作系統(tǒng)可以識(shí)別與特定類別相關(guān)聯(lián)的數(shù)據(jù)存儲(chǔ),并使用data provider訪問所識(shí)別的數(shù)據(jù)存儲(chǔ)。
在一個(gè)實(shí)施例中,計(jì)算系統(tǒng)的操作系統(tǒng)可以生成用戶界面以表示來自第二應(yīng)用程序定義的數(shù)據(jù)集的數(shù)據(jù)。在具體實(shí)施例中,所述計(jì)算系統(tǒng)的操作系統(tǒng)可使用所述第一應(yīng)用程序的第一presenter來生成用戶界面,以呈現(xiàn)所述第二應(yīng)用程序定義的數(shù)據(jù)集中的數(shù)據(jù)。
可以使用一個(gè)或多個(gè)實(shí)例來管理一個(gè)或多個(gè)presenter,從而在一個(gè)或多個(gè)用戶界面中呈現(xiàn)來自一個(gè)或多個(gè)data provider的數(shù)據(jù)。例如,操作系統(tǒng)可以使用一個(gè)或多個(gè)實(shí)例來管理一個(gè)或多個(gè)presenter,以便在一個(gè)或多個(gè)用戶界面中呈現(xiàn)來自一個(gè)或多個(gè)data provider的數(shù)據(jù)。
在具體實(shí)施例中,操作系統(tǒng)可以使用presenter管理器來基于預(yù)定義設(shè)置和用戶設(shè)置安排一個(gè)或多個(gè)用戶界面。作為一個(gè)示例,用戶可以定義一個(gè)查看空間以及在哪里放置對應(yīng)于不同應(yīng)用程序和操作系統(tǒng)的一個(gè)或多個(gè)用戶界面。

圖1示出與計(jì)算系統(tǒng)相關(guān)聯(lián)的示例操作系統(tǒng)環(huán)境100。在具體實(shí)施例中,示例操作系統(tǒng)環(huán)境100可以包括分解為component的應(yīng)用程序。在具體實(shí)施例中,操作系統(tǒng)環(huán)境100可以包括應(yīng)用程序manifest102、一個(gè)或多個(gè)data provider104、一個(gè)或多個(gè)本地服務(wù)106、一個(gè)或多個(gè)云服務(wù)108、一個(gè)或多個(gè)數(shù)據(jù)集110、一個(gè)或多個(gè)數(shù)據(jù)庫112、一個(gè)或多個(gè)shell服務(wù)114、一個(gè)或多個(gè)實(shí)例116、一個(gè)或多個(gè)presenter118、一個(gè)或多個(gè)worker120和一個(gè)或多個(gè)框架。
在一個(gè)的實(shí)施例中,worker120可以是任意的非用戶界面過程,其可能需要實(shí)例116和presenter118來運(yùn)行。實(shí)例116可以管理應(yīng)用實(shí)例的狀態(tài)和生命周期,并可以基于數(shù)據(jù)集110、woker120和presenter118狀態(tài)變化在可用的presenter118之間切換。
在具體實(shí)施例中,實(shí)例116可以具有不同的特權(quán)級(jí)別。具有較高權(quán)限級(jí)別的實(shí)例116可以創(chuàng)建其他各種類型的實(shí)例。在具體實(shí)施例中,實(shí)例116可以管理應(yīng)用程序狀態(tài)的序列化。實(shí)例116可以限制為不具有網(wǎng)絡(luò)訪問、不具有用戶界面,并且不具有除中介訪問之外的存儲(chǔ)。

圖2示出與計(jì)算系統(tǒng)相關(guān)聯(lián)的另一個(gè)示例操作系統(tǒng)環(huán)境200。操作系統(tǒng)環(huán)境200可以具有操作系統(tǒng)環(huán)境100的類似component。
在具體實(shí)施例中,操作系統(tǒng)環(huán)境200可以包括一個(gè)或多個(gè)data provider、一個(gè)或多個(gè)本地服務(wù)106、一個(gè)或多個(gè)云服務(wù)108、一個(gè)或多個(gè)數(shù)據(jù)集110、一個(gè)或多個(gè)數(shù)據(jù)存儲(chǔ)112、一個(gè)或多個(gè)實(shí)例116和一個(gè)或多個(gè)presenter118。
環(huán)境200的component可以類似于環(huán)境100的相同component的功能。數(shù)據(jù)可以從一個(gè)或多個(gè)本地服務(wù)106和一個(gè)或多個(gè)云服務(wù)108流向一個(gè)或多個(gè)data provider104。
在特定實(shí)施例中,每個(gè)正在運(yùn)行的應(yīng)用程序可以有實(shí)例116。實(shí)例可以是應(yīng)用程序活動(dòng)的單元。在特定實(shí)施例中,活動(dòng)實(shí)例116可以具有可觀察的用戶界面,例如一個(gè)或多個(gè)正在運(yùn)行的presenter118。在特定實(shí)施例中,只有特權(quán)component可以具有更改任意實(shí)例的活動(dòng)狀態(tài)的權(quán)限。在特定實(shí)施例中,實(shí)例可以創(chuàng)建其他實(shí)例,然后創(chuàng)建實(shí)例可以改變所創(chuàng)建實(shí)例的活動(dòng)狀態(tài)。
在特定實(shí)施例中,每個(gè)實(shí)例116可以具有類型。實(shí)例類型可以由各個(gè)應(yīng)用程序定義。實(shí)例類型可能決定實(shí)例狀態(tài)的模式。例如,web瀏覽器實(shí)例可以將文檔URL作為其狀。
在特定實(shí)施例中,presenter118可以具有狀態(tài)。例如對于web瀏覽器,presenter的狀態(tài)118可以包括窗口的大小、滾動(dòng)位置、當(dāng)前選擇和web表單中的值等。在特定的實(shí)施例中,實(shí)例模式可能包含具有默認(rèn)值的附加屬性。作為一個(gè)例子,狀態(tài)可以默認(rèn)為初始狀態(tài)。
在一個(gè)實(shí)施例中,轉(zhuǎn)換presenter118可負(fù)責(zé)在實(shí)例116切換presenter118時(shí)提供平滑轉(zhuǎn)換。在特定實(shí)施例中,轉(zhuǎn)換presenter118可以包括在presenter118中,或者是一組單獨(dú)的presenter。在特定實(shí)施例中,當(dāng)轉(zhuǎn)換顯示初始presenter118以及當(dāng)轉(zhuǎn)換隱藏最后presenter118或終止presenter118時(shí),可以使用轉(zhuǎn)換presenter118。
在特定實(shí)施例中,轉(zhuǎn)換presenter118可應(yīng)用于特定的前后presenter類型。轉(zhuǎn)換presenter118可以訪問與所述計(jì)算系統(tǒng)的情景相對應(yīng)的數(shù)據(jù)。情景可以包括計(jì)算系統(tǒng)的元數(shù)據(jù)。作為示例,計(jì)算系統(tǒng)可以使用計(jì)算系統(tǒng)的一個(gè)或多個(gè)傳感器、一個(gè)或多個(gè)應(yīng)用程序的元數(shù)據(jù)或計(jì)算系統(tǒng)的元數(shù)據(jù)來確定計(jì)算系統(tǒng)的情景。
在轉(zhuǎn)換期間,前后presenter118可以是實(shí)時(shí)的并且正在更新,以允許任何現(xiàn)有的動(dòng)畫或綁定值繼續(xù)影響視覺效果。

圖3示出了應(yīng)用實(shí)例管理器302的示例環(huán)境300。環(huán)境300可以包括實(shí)例數(shù)據(jù)庫302、應(yīng)用程序?qū)嵗芾砥?04、二進(jìn)制A 306a、二進(jìn)制B 306b。應(yīng)用實(shí)例管理器304可以包括一個(gè)或多個(gè)實(shí)例hose310a-310c。
實(shí)例數(shù)據(jù)庫302可以包括鍵值存儲(chǔ)312。鍵值存儲(chǔ)312可以包括一個(gè)或多個(gè)實(shí)例項(xiàng)314a-314d。實(shí)例數(shù)據(jù)庫302可以包括鍵值存儲(chǔ)312中作為實(shí)例條目314a-314d的所有注冊實(shí)例。每個(gè)實(shí)例項(xiàng)314可以包括一個(gè)應(yīng)用程序包標(biāo)識(shí)符和一組參數(shù)。
舉例來說,實(shí)例條目314可以包括一個(gè)名稱空間URL、一個(gè)名稱和命令行參數(shù)。每當(dāng)要添加新實(shí)例時(shí),可以使用實(shí)例數(shù)據(jù)庫302注冊該實(shí)例,并將其作為實(shí)例條目314添加到鍵值存儲(chǔ)312中。
在一個(gè)實(shí)施例中,應(yīng)用程序?qū)嵗芾砥?04可以通過為每個(gè)活動(dòng)實(shí)例創(chuàng)建一個(gè)實(shí)例host310來激活來自實(shí)例數(shù)據(jù)庫302的所有活動(dòng)實(shí)例。應(yīng)用程序?qū)嵗芾砥?04可以使用實(shí)例host310a-310c管理實(shí)例。
應(yīng)用實(shí)例管理器304可以通過從實(shí)例數(shù)據(jù)庫302獲取活動(dòng)的和已注冊的實(shí)例并將它們變?yōu)楝F(xiàn)實(shí)來實(shí)現(xiàn)實(shí)例數(shù)據(jù)庫302。應(yīng)用程序?qū)嵗芾砥?04同時(shí)可以終止任何不應(yīng)該處于活動(dòng)狀態(tài)的實(shí)例。
如果在實(shí)例數(shù)據(jù)庫302中以非活動(dòng)狀態(tài)創(chuàng)建了一個(gè)新實(shí)例,則應(yīng)用程序?qū)嵗芾砥?04不執(zhí)行任何操作。如果在處于活動(dòng)狀態(tài)的實(shí)例數(shù)據(jù)庫302中創(chuàng)建新實(shí)例,則應(yīng)用實(shí)例管理器304可以為所述新實(shí)例創(chuàng)建實(shí)例host310。
如果一個(gè)實(shí)例在數(shù)據(jù)集中處于非活動(dòng)狀態(tài),應(yīng)用程序?qū)嵗芾砥?04可以找到相應(yīng)的實(shí)例host310并終止實(shí)例host310。
例如,如果實(shí)例條目314a對應(yīng)的實(shí)例在實(shí)例數(shù)據(jù)庫302中處于非活動(dòng)狀態(tài),則應(yīng)用程序?qū)嵗芾砥?04可以找到相應(yīng)的實(shí)例host310并終止實(shí)例host310。如果實(shí)例數(shù)據(jù)庫302中的實(shí)例處于活動(dòng)狀態(tài),則應(yīng)用程序?qū)嵗芾砥?04可以為所述實(shí)例創(chuàng)建實(shí)例host310。如果實(shí)例host310的實(shí)例component退出,則可以終止實(shí)例host310,反之亦然。
如果一個(gè)應(yīng)用程序component請求另一個(gè)應(yīng)用程序component啟動(dòng),則實(shí)例host310可以根據(jù)應(yīng)用程序manifest元數(shù)據(jù)解析所述component的實(shí)現(xiàn)并調(diào)用所述component。
在特定的實(shí)施例中,應(yīng)用程序?qū)嵗芾砥?04可以放置多個(gè)類似的非本機(jī)應(yīng)用程序component,從而最小化開銷。相似性可以根據(jù)component是否共享來自應(yīng)用程序包的角色來確定。在特定實(shí)施例中,應(yīng)用程序?qū)嵗芾砥?04可以是始終在線的系統(tǒng)服務(wù)。
在特定實(shí)施例中,應(yīng)用程序?qū)嵗芾砥?04可以調(diào)用依賴component。應(yīng)用程序component可以具有兩個(gè)不同的特征。在特定的實(shí)施例中,應(yīng)用程序?qū)嵗芾砥?04可以調(diào)用應(yīng)用程序component并根據(jù)安全約束將它們合并到共享進(jìn)程的組中。
應(yīng)用程序?qū)嵗芾砥?04可以連接并管理依賴component的生命周期。這可以包括監(jiān)視component并在必要時(shí)重新啟動(dòng)它們。在特定實(shí)施例中,應(yīng)用程序?qū)嵗芾砥?04可以實(shí)現(xiàn)各種過程環(huán)境。應(yīng)用程序管理服務(wù)可用于追蹤已安裝的應(yīng)用程序manifest元數(shù)據(jù)并觸發(fā)持久/瞬時(shí)應(yīng)用程序存儲(chǔ)或云包下載。
在特定實(shí)施例中,可以通過應(yīng)用程序?qū)嵗芾砥?04提供的特殊庫將應(yīng)用程序?qū)嵗芾砥?04進(jìn)程入口點(diǎn)合并到二進(jìn)制文件中。在具體實(shí)施例中,二進(jìn)制a306a和二進(jìn)制b306b可以管理其相應(yīng)的presenter316a-316c。

圖4示出了presenter管理器410的示例環(huán)境400。presenter管理器410可以在其對實(shí)際呈現(xiàn)的場景圖的根的所有權(quán)中具有唯一的作用。presenter管理器410可以拼接可見面板并在閃爍其他場景的同時(shí)將樹擴(kuò)展到全局場景中。
presenter管理器410可以與框架服務(wù)通信,并在應(yīng)用程序創(chuàng)建內(nèi)容時(shí)得到通知。在具體實(shí)施例中,presenter管理器410可以從情景引擎接收狀態(tài),以便基于當(dāng)前注意級(jí)別定義表示。presenter管理器410同時(shí)可以使用狀態(tài)在用戶周圍的個(gè)人空間中啟動(dòng)和定位應(yīng)用程序和異步UI。
在具體實(shí)施例中,presenter管理器410可以創(chuàng)建volume管理器??梢栽趹?yīng)用程序的manifest中列出一個(gè)或多個(gè)模式。在特定實(shí)施例中,presenter管理器410可以構(gòu)建并維護(hù)shell狀態(tài)。在特定實(shí)施例中,presenter管理器410可以基于電源狀態(tài)改變總體UI密度。
在一個(gè)實(shí)施例中,如果確定計(jì)算設(shè)備處于低功耗狀態(tài),則presenter管理器410可以減少呈現(xiàn)給用戶的總體UI密度。
在特定實(shí)施例中,情景處理器可以與情景引擎交互以訪問狀態(tài)。情景處理器可以訪問用戶的位置和移動(dòng)狀態(tài),并更改用戶的環(huán)境狀態(tài)。在特定的實(shí)施例中,環(huán)境400可以包括諸如活動(dòng)、事件等情景信號(hào),以啟用以人為中心的場景。shell狀態(tài)和綁定變量可以更新以響應(yīng)事件。
在具體實(shí)施例中,presenter管理器410可以使用電源狀態(tài)來確定可見的表面和shell面板UI的種類,例如待機(jī)電源狀態(tài)、瀏覽電源狀態(tài)和交互電源狀態(tài)。待機(jī)狀態(tài)可能是所有應(yīng)用程序和shell啟動(dòng)點(diǎn)都不可見的狀態(tài),用戶體驗(yàn)完全可見的世界,顯示器關(guān)閉。
在特定實(shí)施例中,當(dāng)電源狀態(tài)處于待機(jī)狀態(tài)時(shí),presenter管理器410可以監(jiān)測通知和應(yīng)用程序容器事件。通知管理器411可以檢測通知數(shù)據(jù)集查詢中的新條目。如果用戶設(shè)置和情景允許通知,則通知管理器411可以請求與數(shù)據(jù)集關(guān)聯(lián)的實(shí)例為條目提供通知presenter。
在特定實(shí)施例中,presenter管理器410可以在presenter管理器410和應(yīng)用程序416之間保持嚴(yán)格的數(shù)據(jù)邊界。presenter管理器410不具有檢查應(yīng)用程序內(nèi)容的功能,并且在創(chuàng)建新的內(nèi)容樹以提高安全性時(shí)將收到通知。
在一個(gè)實(shí)施例中,presenter管理器410可以響應(yīng)測量計(jì)算系統(tǒng)的電力使用情況。在具體實(shí)施例中,presenter管理器410可以通過關(guān)閉和閃爍應(yīng)用程序來調(diào)整應(yīng)用程序的運(yùn)行時(shí)間,以根據(jù)功耗改變系統(tǒng)資源的使用。
相關(guān)專利:Meta Patent | Power-efficient application lifecycle
名為“Power-efficient application lifecycle”的Meta專利申請最初在2021年12月提交,并在日前由美國專利商標(biāo)局公布。
---
原文鏈接:https://news.nweon.com/110016