本技術(shù)涉及終端,尤其涉及顯示方法、電子設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
背景技術(shù):
1、電子設(shè)備可以接收作用于觸控屏上的用戶操作,響應(yīng)于該用戶操作,電子設(shè)備可以改變觸控屏上顯示的內(nèi)容以對用戶操作做出反饋。有時(shí)電子設(shè)備改變顯示內(nèi)容所花的時(shí)間過長,用戶完成操作很長時(shí)間之后電子設(shè)備才在用戶界面上做出反饋,影響用戶的使用體驗(yàn)。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供了一種顯示方法、電子設(shè)備及計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。電子設(shè)備基于用戶操作生成輸入事件后可以將輸入事件直接發(fā)送給應(yīng)用程序而無需等待垂直同步信號。在該方法中,應(yīng)用程序無需長時(shí)間等待輸入事件的來臨而可以盡早地對輸入事件進(jìn)行處理,這樣就有效避免出現(xiàn)應(yīng)用程序到達(dá)渲染時(shí)機(jī),但輸入事件還未處理完成的情況,從而提高電子設(shè)備在該應(yīng)用程序下的跟手性。
2、第一方面,本技術(shù)提供了一種顯示方法,該方法應(yīng)用于電子設(shè)備,電子設(shè)備安裝有第一應(yīng)用和第二應(yīng)用,其中第一應(yīng)用為游戲應(yīng)用,第二應(yīng)用為非游戲應(yīng)用,該方法包括:接收作用于第一應(yīng)用的第一操作,并根據(jù)第一操作生成第一事件;響應(yīng)于生成第一事件,向第一應(yīng)用提供第一事件;通過第一應(yīng)用基于第一事件生成第一圖層;根據(jù)第一圖層顯示第一用戶界面;接收作用于第二應(yīng)用的第二操作,并根據(jù)第二操作生成第二事件;響應(yīng)于垂直同步vsync-app信號,向第二應(yīng)用提供第二事件;通過第二應(yīng)用基于第二事件生成第二圖層;根據(jù)第二圖層顯示第二用戶界面。
3、其中,第一事件、第二事件為基于用戶操作生成的輸入事件,電子設(shè)備可以基于應(yīng)用程序的類型確定輸入事件的處理方式。當(dāng)應(yīng)用程序?yàn)橛螒驊?yīng)用時(shí),電子設(shè)備可以在輸入事件生成后直接提供給該游戲應(yīng)用,而當(dāng)應(yīng)用程序?yàn)榉怯螒驊?yīng)用時(shí),電子設(shè)備可以等待vsync-app信號到來時(shí)再將輸入事件提供給該應(yīng)用程序。
4、結(jié)合第一方面,在一些實(shí)施例中,第一應(yīng)用可以包含邏輯線程和渲染線程,邏輯線程用于基于第一事件生成第一渲染數(shù)據(jù),渲染線程用于基于第一渲染數(shù)據(jù)生成第一圖層。
5、結(jié)合第一方面,在一些實(shí)施例中,電子設(shè)備中可以包含觸控屏管理器和輸入管理服務(wù),觸控屏管理器用于確定第一應(yīng)用是不依賴vsync-app信號的應(yīng)用,輸入管理服務(wù)用于響應(yīng)于生成第一事件向第一應(yīng)用提供第一事件。觸控屏管理器還用于確定第二應(yīng)用是依賴vsync-app信號的應(yīng)用,輸入管理服務(wù)還用于響應(yīng)于垂直同步vsync-app信號向第二應(yīng)用提供第二事件。
6、可以理解的是,非游戲應(yīng)用往往需要依賴于vsync-app信號觸發(fā)繪制、渲染生成渲染幀,故電子設(shè)備向非游戲應(yīng)用提供輸入事件時(shí)需要等待vsync-app信號進(jìn)行同步。而對于游戲應(yīng)用是由其自身引擎控制生成渲染幀的時(shí)機(jī)的,這時(shí)如果電子設(shè)備仍等待vsync-app信號到來才將輸入事件發(fā)送給游戲應(yīng)用是不必要的。電子設(shè)備可以將生成的輸入事件直接提供給游戲應(yīng)用,而不必等待vsync-app信號。這樣游戲應(yīng)用能盡早地對輸入事件進(jìn)行處理,也就更能夠在其到達(dá)渲染時(shí)機(jī)時(shí)完成輸入事件的處理,使其能夠基于最新的輸入事件生成渲染幀,從而提高跟手性。
7、結(jié)合第一方面,在一些實(shí)施例中,第一事件是在第一vsync-app信號和第二vsync-app信號之間生成并提供給第一應(yīng)用的,第一vsync-app信號和第二vsync-app信號是兩個(gè)相鄰的垂直同步信號。
8、可以理解的是,由于電子設(shè)備向游戲應(yīng)用提供輸入事件時(shí)不等待vsync-app信號的到來,第一事件在兩個(gè)相鄰vsync-app信號之間生成后其發(fā)送給第一應(yīng)用的時(shí)機(jī)也處于這兩個(gè)相鄰vsync-app信號之間。
9、結(jié)合第一方面,在一些實(shí)施例中,在向第一應(yīng)用提供第一事件之前,該方法還包括:停止發(fā)送vsync-app信號;在向第二應(yīng)用提供第二事件之前,該方法還包括:重新發(fā)送vsync-app信號。
10、結(jié)合第一方面,在一些實(shí)施例中,第一用戶界面不包含非游戲應(yīng)用的圖層。
11、電子設(shè)備會(huì)遍歷第一用戶界面中包含的圖層,當(dāng)?shù)谝挥脩艚缑嬷胁话怯螒驊?yīng)用的圖層時(shí),電子設(shè)備可以直接停止發(fā)送vsync-app信號,這樣可以減少功耗。而當(dāng)電子設(shè)備確定第二用戶界面包含非游戲應(yīng)用的圖層時(shí),由于非游戲應(yīng)用需要依賴于vsync-app信號來觸發(fā)繪制、渲染等流程,因此電子設(shè)備需要重新開啟vsync-app信號的發(fā)送使非游戲應(yīng)用能夠穩(wěn)定輸出渲染幀。其中,第一用戶界面不包含非游戲應(yīng)用的圖層是指,電子設(shè)備的觸控屏顯示的第一用戶界面中僅包含游戲應(yīng)用的用戶界面;相對的,第二用戶界面既包含游戲應(yīng)用的圖層,還包含非游戲應(yīng)用的圖層是指觸控屏顯示的第二用戶界面中包含游戲應(yīng)用和非游戲應(yīng)用的用戶界面,其中游戲應(yīng)用的用戶界面和非游戲應(yīng)用的用戶界面可以是以兩個(gè)用戶界面分屏顯示,或者,一個(gè)用戶界面全局顯示、另一個(gè)用戶界面以窗口顯示等方式同時(shí)顯示在觸控屏上的。
12、結(jié)合第一方面,在一些實(shí)施例中,第二用戶界面還包含第一應(yīng)用的第三圖層,其中第一應(yīng)用的幀率為第一幀率,第二應(yīng)用的幀率為第二幀率,第一幀率大于第二幀率。
13、以圖8所示的實(shí)施例為例,游戲應(yīng)用的幀率為非游戲應(yīng)用的兩倍,其中游戲應(yīng)用由自身引擎控制輸出渲染幀,而非游戲應(yīng)用主要依賴于vsync-app信號輸出渲染幀。第二用戶界面可以是圖像1,第三圖層可以圖層1,第二圖層可以是圖層1’。當(dāng)電子設(shè)備確定第二用戶界面除了游戲應(yīng)用的圖層,還包含非游戲應(yīng)用的圖層,電子設(shè)備可以通過控制vsync-app的頻率來控制非游戲應(yīng)用的幀率,使非游戲應(yīng)用的幀率低于游戲應(yīng)用的幀率。其中,電子設(shè)備可以包含表面合成器,表面合成器可以用于確定第二用戶界面所包含的圖層(包括第二圖層和第三圖層)以及將vsync-app信號的發(fā)送頻率調(diào)整為第二幀率。
14、當(dāng)游戲應(yīng)用以較高幀率輸出渲染幀時(shí)電子設(shè)備的負(fù)載較高,而非游戲應(yīng)用并不需要依照游戲應(yīng)用的高幀率刷新顯示畫面。電子設(shè)備可以通過控制vsync-app的頻率使非游戲應(yīng)用以較低幀率輸出渲染幀,這樣可以保證用戶能夠正常同時(shí)使用游戲和非游戲應(yīng)用,還能降低電子設(shè)備的功耗。
15、結(jié)合第一方面,在一些實(shí)施例中,在根據(jù)第一操作生成第一事件之前,該方法還包括:確定觸控屏的采樣率為刷新率的倍數(shù),并且,確定第一應(yīng)用在第一列表中。
16、可選的,在根據(jù)第一操作生成第一事件之前,該方法還包括:確定觸控屏的采樣率為刷新率的倍數(shù),或者,確定第一應(yīng)用在第一列表中。
17、結(jié)合第一方面,在一些實(shí)施例中,在根據(jù)第二操作生成第二事件之前,該方法還包括:確定觸控屏的采樣率不為刷新率的倍數(shù),和/或,確定第二應(yīng)用不在第一列表中。
18、其中,電子設(shè)備可以將一個(gè)或多個(gè)應(yīng)用的標(biāo)識(shí)存儲(chǔ)到第一列表中。其中第一列表中存儲(chǔ)的可以是不依賴于vsync-app信號的應(yīng)用程序的標(biāo)識(shí)。這里不依賴vsync-app信號是指應(yīng)用程序在繪制、渲染,生成渲染幀時(shí)無需依靠vsync-app進(jìn)行同步。電子設(shè)備向該類應(yīng)用程序發(fā)送輸入事件即使不等待vsync-app信號也可以保證該類應(yīng)用。故電子設(shè)備可以首先確定應(yīng)用程序的標(biāo)識(shí)是否在第一列表中,進(jìn)而確定應(yīng)用程序是否需要依賴vsync-app信號。可選的,上述應(yīng)用程序的標(biāo)識(shí)可以是應(yīng)用程序的包名。
19、當(dāng)觸控屏的采樣率為刷新率的倍數(shù)時(shí),電子設(shè)備在顯示每兩個(gè)相鄰圖像幀之間生成的輸入事件的數(shù)量是一致的,也即是說輸入事件生成的時(shí)機(jī)更加均勻。這時(shí)應(yīng)用程序每次是基于相同數(shù)量的輸入事件生成渲染幀,即使電子設(shè)備向應(yīng)用程序提供輸入事件時(shí)不等待vsync-app信號,應(yīng)用程序也可以輸出穩(wěn)定的渲染幀。而如果觸控屏的采樣率不為刷新率的倍數(shù),電子設(shè)備在顯示每兩個(gè)相鄰圖像幀之間生成的輸入事件的數(shù)量可能是不一致的,例如,電子設(shè)備在一個(gè)vsync-app周期內(nèi)生成2個(gè)輸入事件,在其下一個(gè)vsync-app周期內(nèi)生成1個(gè)輸入事件,這樣應(yīng)用程序每次基于不同數(shù)量的輸入事件生成渲染幀,如果不等待vsync-app信號的同步,應(yīng)用程序生成每個(gè)渲染幀時(shí)所使用的輸入事件的數(shù)量難以被控制,更容易造成畫面顯示的不均衡。因此電子設(shè)備在確定向應(yīng)用程序發(fā)送輸入事件不需要等待vsync-app信號之前,可以先確定觸控屏的采樣率是否是刷新率的倍數(shù),這樣可以保證應(yīng)用程序能夠輸出穩(wěn)定的渲染幀。
20、電子設(shè)備可以在觸控屏的采樣率為刷新率的倍數(shù)和/或應(yīng)用程序的標(biāo)識(shí)在第一列表中的情況下才不依賴vsync-app信號向該應(yīng)用程序提供輸入事件。這樣電子設(shè)備可以保證在不依賴vsync-app信號向應(yīng)用程序提供輸入事件的情況下,應(yīng)用程序仍可以輸出穩(wěn)定的渲染幀,從而保證用戶界面能夠穩(wěn)定顯示,保證用戶的觀看體驗(yàn)。
21、第二方面,本技術(shù)提供了一種顯示方法,該方法應(yīng)用于電子設(shè)備,電子設(shè)備安裝有第一應(yīng)用,該方法包括:接收作用于第一應(yīng)用的第一操作,并根據(jù)第一操作生成第一事件;響應(yīng)于生成第一事件,向第一應(yīng)用提供第一事件;通過第一應(yīng)用基于第一事件生成第一圖層;根據(jù)第一圖層顯示第一用戶界面。
22、結(jié)合第二方面,在一些實(shí)施例中,第一事件是在第一vsync-app信號和第二vsync-app信號之間生成并提供給第一應(yīng)用的,第一vsync-app信號和第二vsync-app信號是兩個(gè)相鄰的垂直同步信號。
23、結(jié)合第二方面,在一些實(shí)施例中,在第一用戶界面中僅包含第一圖層,該方法還包括:停止發(fā)送vsync-app信號。
24、結(jié)合第二方面,在一些實(shí)施例中,在根據(jù)第一操作生成第一事件之前,該方法還包括:確定觸控屏的采樣率為刷新率的倍數(shù),并且,確定該第一應(yīng)用在第一列表中。
25、結(jié)合第二方面,在一些實(shí)施例中,電子設(shè)備還安裝有第二應(yīng)用,該方法還包括:接收作用于第二應(yīng)用的第二操作,并根據(jù)第二操作生成第二事件;響應(yīng)于垂直同步vsync-app信號,向第二應(yīng)用提供第二事件;通過第二應(yīng)用基于第二事件生成第二圖層;根據(jù)第二圖層顯示第二用戶界面。
26、結(jié)合第二方面,在一些實(shí)施例中,在向第二應(yīng)用提供第二事件之前,該方法還包括:重新發(fā)送vsync-app信號。
27、結(jié)合第二方面,在一些實(shí)施例中,在第二用戶界面中還包含第一應(yīng)用的第三圖層,其中第一應(yīng)用的幀率為第一幀率,第二應(yīng)用的幀率為第二幀率,第一幀率大于第二幀率。
28、結(jié)合第二方面,在一些實(shí)施例中,電子設(shè)備包含表面合成器,表面合成器用于確定第二用戶界面包含第二圖層和第三圖層;表面合成器還用于將vsync-app信號的發(fā)送頻率調(diào)整為第二幀率。
29、結(jié)合第二方面,在一些實(shí)施例中,在根據(jù)第二操作生成第二事件之前,該方法還包括:確定觸控屏的采樣率不為刷新率的倍數(shù),和/或,確定第二應(yīng)用不在第一列表中。
30、結(jié)合第二方面,在一些實(shí)施例中,電子設(shè)備包含觸控屏管理器和輸入管理服務(wù),觸控屏管理器用于確定第一應(yīng)用是不依賴vsync-app信號的應(yīng)用,輸入管理服務(wù)用于響應(yīng)于生成第一事件向第一應(yīng)用提供第一事件。
31、結(jié)合第二方面,在一些實(shí)施例中,該輸入管理服務(wù)還用于確定第二應(yīng)用是依賴vsync-app信號的應(yīng)用,并用于響應(yīng)于垂直同步vsync-app信號向第二應(yīng)用提供第二事件。
32、結(jié)合第二方面,在一些實(shí)施例中,第一應(yīng)用包含邏輯線程和渲染線程,邏輯線程用于基于第一事件生成第一渲染數(shù)據(jù),渲染線程用于基于第一渲染數(shù)據(jù)生成第一圖層。
33、結(jié)合第二方面,在一些實(shí)施例中,第一應(yīng)用為游戲應(yīng)用。
34、結(jié)合第二方面,在一些實(shí)施例中,第二應(yīng)用為非游戲應(yīng)用。
35、第三方面,本技術(shù)提供一種電子設(shè)備,該電子設(shè)備包括觸控屏、存儲(chǔ)器以及耦合于存儲(chǔ)器的處理器;該觸控屏用于接收用戶操作并顯示界面,存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,處理器執(zhí)行上述計(jì)算機(jī)程序時(shí)使得電子設(shè)備實(shí)現(xiàn)上述第一方面或第二方面任意一項(xiàng)所述的方法。
36、第四方面,本技術(shù)提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序或計(jì)算機(jī)指令,前述計(jì)算機(jī)程序或計(jì)算機(jī)指令被處理器執(zhí)行以實(shí)現(xiàn)上述第一方面或第二方面任意一項(xiàng)所述的方法。
37、第五方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)程序產(chǎn)品被處理器執(zhí)行時(shí),上述第一方面或第二方面任意一項(xiàng)所述的方法將被實(shí)現(xiàn)。
38、第六方面,本技術(shù)實(shí)施例提供一種芯片,該芯片包括處理器和存儲(chǔ)器,其中,該存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)程序或計(jì)算機(jī)指令,該處理器用于執(zhí)行所述存儲(chǔ)器中存儲(chǔ)的計(jì)算機(jī)程序或計(jì)算機(jī)指令,使得該芯片執(zhí)行上述第一方面或第二方面任一項(xiàng)所述的方法。
39、上述第三方面至第六方面提供的方案,用于實(shí)現(xiàn)或配合實(shí)現(xiàn)上述第一方面或第二方面中對應(yīng)提供的方法,因此可以與第一方面或第二方面中對應(yīng)的方法達(dá)到相同或相應(yīng)的有益效果,此處不再進(jìn)行贅述。