本發(fā)明涉及android系統(tǒng)領(lǐng)域,尤其涉及一種應(yīng)用程序界面顯示方法及終端。
背景技術(shù):
目前,安裝有android系統(tǒng)的終端設(shè)備(簡(jiǎn)稱:android終端)在啟動(dòng)應(yīng)用程序時(shí)需要消耗大部分時(shí)間進(jìn)行應(yīng)用程序的用戶界面(英文:userinterface,簡(jiǎn)稱ui)的繪制。具體的,當(dāng)android系統(tǒng)中的某一應(yīng)用程序啟動(dòng)時(shí),android系統(tǒng)會(huì)為該應(yīng)用程序創(chuàng)建一個(gè)單獨(dú)的線程(該線程可以稱主線程),并通過(guò)該主線程處理與ui顯示相關(guān)的事件,該所有對(duì)androidui顯示相關(guān)的ui資源必須在主線程中進(jìn)行操作的這種模型,我們通常稱作androidui單線程模型。
但是,由于androidui單線程模型的限制,使得ui顯示過(guò)程中相關(guān)的函數(shù)調(diào)用(例如,view對(duì)象中的inflate(ui構(gòu)建)、measure(測(cè)量)、layout(布局)、draw(繪制)函數(shù))必須在主線程中執(zhí)行,而在主線程中加載該相關(guān)函數(shù)對(duì)應(yīng)的ui資源時(shí)需要按照該相關(guān)函數(shù)的調(diào)用順序依次進(jìn)行加載,而這種執(zhí)行方式會(huì)花費(fèi)大量的時(shí)間來(lái)等待資源的加載,當(dāng)資源加載完畢時(shí),才能進(jìn)行后續(xù)的流程,從而導(dǎo)致了android終端在啟動(dòng)應(yīng)用程序時(shí)會(huì)出現(xiàn)啟動(dòng)速度過(guò)慢的問(wèn)題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的實(shí)施例提供一種應(yīng)用程序界面顯示方法及裝置,解決了現(xiàn)有技術(shù)中android終端在進(jìn)行ui繪制時(shí)需要花費(fèi)大量的時(shí)間來(lái)等待ui資源的加載,從而導(dǎo)致的應(yīng)用程序的啟動(dòng)速度過(guò)慢的問(wèn)題。
為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
第一方面,提供一種應(yīng)用程序界面顯示方法,應(yīng)用于安裝有android系統(tǒng)的android終端,包括:
獲取目標(biāo)應(yīng)用程序界面對(duì)應(yīng)的目標(biāo)應(yīng)用程序的標(biāo)識(shí);
根據(jù)所述目標(biāo)應(yīng)用程序的標(biāo)識(shí),從用戶界面ui資源數(shù)據(jù)庫(kù)中調(diào)用顯 示所述目標(biāo)應(yīng)用程序界面所需的目標(biāo)ui資源,所述ui資源數(shù)據(jù)庫(kù)包含應(yīng)用程序的標(biāo)識(shí)、ui資源的標(biāo)識(shí)以及應(yīng)用程序與ui資源間的對(duì)應(yīng)關(guān)系;其中,所述ui資源是預(yù)先加載至所述ui資源數(shù)據(jù)庫(kù)中;
根據(jù)所述目標(biāo)ui資源顯示所述目標(biāo)應(yīng)用程序界面。
另一方面,提供一種終端,所述終端為安裝有android系統(tǒng)的android終端,包括:
獲取模塊,用于獲取目標(biāo)應(yīng)用程序界面對(duì)應(yīng)的目標(biāo)應(yīng)用程序的標(biāo)識(shí);
調(diào)用模塊,用于根據(jù)所述目標(biāo)應(yīng)用程序的標(biāo)識(shí),從用戶界面ui資源數(shù)據(jù)庫(kù)中調(diào)用顯示所述目標(biāo)應(yīng)用程序界面所需的目標(biāo)ui資源,所述ui資源數(shù)據(jù)庫(kù)包含應(yīng)用程序的標(biāo)識(shí)、ui資源的標(biāo)識(shí)以及應(yīng)用程序與ui資源間的對(duì)應(yīng)關(guān)系;其中,所述ui資源是預(yù)先加載至所述ui資源數(shù)據(jù)庫(kù)中;
顯示模塊,用于根據(jù)所述調(diào)用模塊調(diào)用的所述目標(biāo)ui資源顯示所述目標(biāo)應(yīng)用程序界面。
本發(fā)明的實(shí)施例提供的應(yīng)用程序界面顯示方法及終端,通過(guò)獲取用于指示android終端顯示目標(biāo)應(yīng)用程序界面對(duì)應(yīng)的目標(biāo)應(yīng)用程序的標(biāo)識(shí),然后,根據(jù)該目標(biāo)應(yīng)用程序的標(biāo)識(shí),從ui資源數(shù)據(jù)庫(kù)中調(diào)用顯示目標(biāo)應(yīng)用程序界面所需的目標(biāo)ui資源,該ui資源數(shù)據(jù)庫(kù)包含應(yīng)用程序的標(biāo)識(shí)、ui資源的標(biāo)識(shí)以及應(yīng)用程序與ui資源間的對(duì)應(yīng)關(guān)系,其中,所述ui資源是預(yù)先加載至ui資源數(shù)據(jù)庫(kù)中,最后,根據(jù)該目標(biāo)ui資源顯示目標(biāo)應(yīng)用程序界面。
相比于現(xiàn)有技術(shù)中android終端在顯示應(yīng)用程序界面時(shí),需要按照androidui單線程模型來(lái)繪制應(yīng)用程序界面,即需要按照應(yīng)用程序界面顯示過(guò)程中相關(guān)的函數(shù)調(diào)用的調(diào)用順序依次加載對(duì)應(yīng)的ui資源。本方案通過(guò)將顯示該目標(biāo)應(yīng)用程序界面的ui資源預(yù)先加載至ui資源數(shù)據(jù)庫(kù)中,從而使得該android終端可以在顯示該目標(biāo)應(yīng)用程序界面的過(guò)程中,直接從ui資源數(shù)據(jù)庫(kù)中調(diào)用所需的ui資源,這樣將應(yīng)用程序界面的繪制過(guò)程與應(yīng)用程序界面ui資源的加載過(guò)程相分離,從而實(shí)現(xiàn)了應(yīng)用程序界面顯示的整體速度的提升,節(jié)省了應(yīng)用程序界面的顯示時(shí)間,進(jìn)而提升了android終端的應(yīng)用程序的啟動(dòng)速度。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種應(yīng)用程序界面顯示方法的方法流程圖;
圖2為本發(fā)明實(shí)施例提供的另一種應(yīng)用程序界面顯示方法的流程示意圖;
圖3為本發(fā)明實(shí)施例提供的一種終端的結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例提供的另一種終端的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明的實(shí)施例中提及的移動(dòng)終端為安裝有android(安卓)系統(tǒng)的終端設(shè)備(簡(jiǎn)稱android終端),該終端設(shè)備可以為智能手機(jī)、平板電腦、筆記本電腦、umpc(ultra-mobilepersonalcomputer,超級(jí)移動(dòng)個(gè)人計(jì)算機(jī))、上網(wǎng)本、pda(personaldigitalassistant,個(gè)人數(shù)字助理)等終端設(shè)備,且不限于此。
本文中術(shù)語(yǔ)“和/或”,僅僅是一種描述關(guān)聯(lián)對(duì)象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,a和/或b,可以表示:?jiǎn)为?dú)存在a,同時(shí)存在a和b,單獨(dú)存在b這三種情況。另外,本文中字符“/”,一般表示前后關(guān)聯(lián)對(duì)象是一種“或”的關(guān)系。
本實(shí)施例中提及的“第一”“第二”等敘述詞,除非根據(jù)上下文其確實(shí)表達(dá)順序之意,應(yīng)當(dāng)理解為僅僅是起區(qū)分之用。
本發(fā)明的實(shí)施例提供一種應(yīng)用程序界面顯示方法,如圖1所示,該 方法包括如下步驟:
101、終端獲取目標(biāo)應(yīng)用程序界面對(duì)應(yīng)的目標(biāo)應(yīng)用程序的標(biāo)識(shí)。
示例性的,上述的目標(biāo)應(yīng)用程序界面對(duì)應(yīng)的目標(biāo)應(yīng)用程序的標(biāo)識(shí)可以是終端從用戶觸發(fā)的顯示指令中獲取,該顯示指令用于指示該android終端顯示該目標(biāo)應(yīng)用程序界面。本實(shí)施例中應(yīng)用程序可以是android系統(tǒng)的操作程序,也可以是安裝在android終端中的軟件應(yīng)用程序。
102、終端根據(jù)目標(biāo)應(yīng)用程序的標(biāo)識(shí),從用戶界面ui資源數(shù)據(jù)庫(kù)中調(diào)用顯示該目標(biāo)應(yīng)用程序界面所需的目標(biāo)ui資源。
示例性的,本實(shí)施例中的ui資源是預(yù)先加載至ui資源數(shù)據(jù)庫(kù)中的,ui資源數(shù)據(jù)庫(kù)包含應(yīng)用程序的標(biāo)識(shí)、ui資源的標(biāo)識(shí)、應(yīng)用程序與ui資源間的對(duì)應(yīng)關(guān)系以及ui資源參數(shù),其中,上述的ui資源參數(shù)包括ui資源的屬性信息和/或ui資源在ui資源數(shù)據(jù)庫(kù)中存儲(chǔ)的路徑信息,而該ui資源的屬性信息包括該ui資源的數(shù)據(jù)類型以及數(shù)據(jù)大小等參數(shù)信息。具體的該ui資源包括但不限于:應(yīng)用程序界面的布局文件、各種ui素材(如圖片、視頻、音頻等多媒體數(shù)據(jù))以及應(yīng)用在應(yīng)用程序界面中的各種控件的參數(shù)信息。
示例性的,終端根據(jù)目標(biāo)應(yīng)用程序的標(biāo)識(shí),從ui資源數(shù)據(jù)庫(kù)中獲取目標(biāo)應(yīng)用程序的標(biāo)識(shí)對(duì)應(yīng)的顯示該目標(biāo)應(yīng)用程序界面所需的目標(biāo)ui資源的標(biāo)識(shí),并基于該目標(biāo)ui資源的標(biāo)識(shí)獲取該目標(biāo)ui資源的ui資源參數(shù),從而可以基于該ui資源參數(shù)中包含的ui資源在ui資源數(shù)據(jù)庫(kù)中存儲(chǔ)的路徑信息獲取到該ui資源,或者,直接根據(jù)該目標(biāo)ui資源的標(biāo)識(shí)從ui資源數(shù)據(jù)庫(kù)檢索該目標(biāo)ui資源。
示例性的,步驟102具體還包括如下步驟:
102a、終端根據(jù)目標(biāo)應(yīng)用程序的標(biāo)識(shí)確定顯示目標(biāo)應(yīng)用程序所需的第一ui資源。
102b、終端在ui資源數(shù)據(jù)庫(kù)中查詢第一ui資源。
若ui資源數(shù)據(jù)庫(kù)中包含第一ui資源,則轉(zhuǎn)向步驟102c1,若ui資源數(shù)據(jù)庫(kù)中未包含第一ui資源,則轉(zhuǎn)向步驟102c2。
102c1、終端從ui資源數(shù)據(jù)庫(kù)中直接調(diào)用第一ui資源。
102c2、終端加載第一ui資源。
其中,第一ui資源為顯示目標(biāo)應(yīng)用程序界面所需的目標(biāo)ui資源中的其中一個(gè)。
示例性的,終端在根據(jù)目標(biāo)應(yīng)用程序界面對(duì)應(yīng)的目標(biāo)應(yīng)用程序的標(biāo)識(shí),基于該ui資源數(shù)據(jù)庫(kù)中包含的應(yīng)用程序標(biāo)識(shí)和ui資源標(biāo)識(shí)間的對(duì)應(yīng)的關(guān)系,確定出顯示該目標(biāo)應(yīng)用程序所需的ui資源的標(biāo)識(shí),并按照ui繪制過(guò)程中依次進(jìn)行的ui構(gòu)建、ui測(cè)量、ui布局、ui繪制等過(guò)程中分別需要的ui資源,即按照上述ui構(gòu)建、ui測(cè)量、ui布局、ui繪制等過(guò)程的執(zhí)行順序依次調(diào)用所需的ui資源。具體的,在調(diào)用所需的ui資源時(shí),本實(shí)施例通過(guò)預(yù)先在ui資源數(shù)據(jù)庫(kù)中查詢?cè)搖i資源數(shù)據(jù)庫(kù)中是否包含所需ui資源,從而保證了在該ui資源數(shù)據(jù)庫(kù)中未存儲(chǔ)該ui資源時(shí),能夠保證該終端可以及時(shí)執(zhí)行該ui資源的加載過(guò)程,保證了終端可以成功進(jìn)行應(yīng)用程序界面的顯示過(guò)程。
103、終端根據(jù)目標(biāo)ui資源顯示目標(biāo)應(yīng)用程序界面。
示例性的,終端在根據(jù)目標(biāo)ui資源顯示目標(biāo)應(yīng)用程序界面時(shí),會(huì)將ui資源轉(zhuǎn)換成android系統(tǒng)中drawable對(duì)象,調(diào)用drawable對(duì)象的draw函數(shù),將該drawable繪制到設(shè)備中。
本發(fā)明的實(shí)施例提供的應(yīng)用程序界面顯示方法,通過(guò)獲取用于指示android終端顯示目標(biāo)應(yīng)用程序界面對(duì)應(yīng)的目標(biāo)應(yīng)用程序的標(biāo)識(shí),然后,根據(jù)該目標(biāo)應(yīng)用程序的標(biāo)識(shí),從ui資源數(shù)據(jù)庫(kù)中調(diào)用顯示目標(biāo)應(yīng)用程序界面所需的目標(biāo)ui資源,該ui資源數(shù)據(jù)庫(kù)包含應(yīng)用程序的標(biāo)識(shí)、ui資源的標(biāo)識(shí)以及應(yīng)用程序與ui資源間的對(duì)應(yīng)關(guān)系,其中,該ui資源是預(yù)先加載至ui資源數(shù)據(jù)庫(kù)中,最后,根據(jù)該目標(biāo)ui資源顯示目標(biāo)應(yīng)用程序界面。
相比于現(xiàn)有技術(shù)中android終端在顯示應(yīng)用程序界面時(shí),需要按照androidui單線程模型來(lái)繪制應(yīng)用程序界面,即需要按照應(yīng)用程序界面顯示過(guò)程中相關(guān)的函數(shù)調(diào)用的調(diào)用順序依次加載對(duì)應(yīng)的ui資源。本方案通過(guò)將顯示該目標(biāo)應(yīng)用程序界面的ui資源預(yù)先加載至ui資源數(shù)據(jù)庫(kù)中,從而使得該android終端可以在顯示該目標(biāo)應(yīng)用程序界面的過(guò)程中,直接從ui資源數(shù)據(jù)庫(kù)中調(diào)用所需的ui資源,這樣將應(yīng)用程序界面的繪制 過(guò)程與應(yīng)用程序界面的ui資源加載過(guò)程相分離,從而實(shí)現(xiàn)了應(yīng)用程序界面顯示的整體速度的提升,節(jié)省了應(yīng)用程序界面的顯示時(shí)間,進(jìn)而提升了android終端的應(yīng)用程序的啟動(dòng)速度。
需要說(shuō)明的是,本發(fā)明實(shí)施例中的終端的android系統(tǒng)可以用于控制多個(gè)線程,該多個(gè)線程包括至少一個(gè)從線程,其中,上述的從線程獨(dú)立于主線程。通常情況下,上述的至少一個(gè)從線程是終端通過(guò)對(duì)線程池進(jìn)行初始化,從線程池中獲取的。在本實(shí)施例中,終端通過(guò)將ui資源的加載過(guò)程遷移至從線程中進(jìn)行實(shí)現(xiàn),從而提升android終端的應(yīng)用程序的顯示速度。
具體的,上述步驟102中提及的ui資源數(shù)據(jù)庫(kù)中的ui資源的預(yù)加載過(guò)程具體包括如下步驟:
a1、終端獲取ui資源預(yù)加載指令。
示例性的,上述的ui資源預(yù)加載指令中包含目標(biāo)應(yīng)用程序界面所需的目標(biāo)ui資源的標(biāo)識(shí),該ui資源預(yù)加載指令用于指示終端執(zhí)行ui資源的預(yù)加載過(guò)程。此外,由于ui資源的預(yù)加載過(guò)程中需要的從線程的個(gè)數(shù)是根據(jù)實(shí)際應(yīng)用中需要預(yù)加載的ui資源的個(gè)數(shù)確定的,因此,在步驟a1之后,即在終端獲取到ui資源預(yù)加載指令后,根據(jù)該ui資源預(yù)加載指令中包含的目標(biāo)應(yīng)用程序界面所需的目標(biāo)ui資源的標(biāo)識(shí)的個(gè)數(shù),初始化線程池,從線程池中確定需要的從線程的個(gè)數(shù)。若需要預(yù)加載的ui資源的個(gè)數(shù)比較多,則需要啟動(dòng)的從線程也將較多。
a2、終端根據(jù)目標(biāo)ui資源的標(biāo)識(shí),在從線程中將目標(biāo)ui資源預(yù)加載至ui資源數(shù)據(jù)庫(kù)中。
需要說(shuō)明的是,上述的每個(gè)從線程上至少進(jìn)行一個(gè)ui資源的加載,具體的每個(gè)從線程上加載的ui資源的個(gè)數(shù)這里不做限定,可以根據(jù)實(shí)際的應(yīng)用場(chǎng)景進(jìn)行靈活配置。
這樣為了提升android終端的應(yīng)用程序的啟動(dòng)速度,本實(shí)施例通過(guò)將ui資源的加載過(guò)程遷移至從線程中,從而使得主線程僅執(zhí)行ui的繪制過(guò)程,而不進(jìn)行ui資源的加載過(guò)程,從而進(jìn)一步的節(jié)省了應(yīng)用程序界面的顯示時(shí)間,使得終端在進(jìn)行應(yīng)用程序界面顯示時(shí)無(wú)需花費(fèi)大量的時(shí)間進(jìn)行ui資源的加載,僅需要從ui資源數(shù)據(jù)庫(kù)中調(diào)用所需的ui資 源。
示例性的,在本實(shí)施例中,終端對(duì)ui資源進(jìn)行構(gòu)建、測(cè)量、布局、繪制的過(guò)程來(lái)實(shí)現(xiàn)應(yīng)用程序界面的顯示時(shí),分別是以android系統(tǒng)中的view對(duì)象的inflate函數(shù)、measure函數(shù)、layout函數(shù)和draw函數(shù)為例來(lái)進(jìn)行說(shuō)明的,具體的參照?qǐng)D2所示的應(yīng)用程序界面顯示方法的流程圖可知,若目標(biāo)應(yīng)用程序以應(yīng)用程序1為例時(shí),view對(duì)象中的inflate函數(shù)、measure函數(shù)、layout函數(shù)和draw函數(shù)依次需要用到的ui資源分別為a、b、c、d這四個(gè)ui資源。需要說(shuō)明的是,圖2中的assetmanager(資源管理器)用于管理和調(diào)用assert線程池(資源線程池)中的從線程。
具體的,該應(yīng)用程序1的用戶界面顯示流程包括如下過(guò)程:
1)、view對(duì)象向assetmanager發(fā)送預(yù)加載指令,指明需要預(yù)加載的ui資源,即應(yīng)用程序1對(duì)應(yīng)的a、b、c、d這四個(gè)ui資源,而assetmanager在接收到該預(yù)加載指令后,會(huì)啟動(dòng)assert線程池,并根據(jù)顯示應(yīng)用程序1所需的ui資源的個(gè)數(shù)從assert線程池中啟動(dòng)相應(yīng)個(gè)數(shù)的從線程來(lái)加載ui資源,并將該需要預(yù)加載的ui資源預(yù)先加載至assetmanager的緩存(cache)中,例如,從該assert線程池中啟動(dòng)四個(gè)從線程來(lái)分別加載a、b、c、d這四個(gè)ui資源。
2)、view對(duì)象在主線程中獲取應(yīng)用程序1用戶界面的標(biāo)識(shí),根據(jù)該標(biāo)識(shí)指示獲取view對(duì)象中的inflate函數(shù)需要訪問(wèn)資源a,則調(diào)用drawable接口向assetmanager請(qǐng)求ui資源a。此時(shí),assetmanagerassetmanager首先會(huì)從cache中查詢ui資源a是否已經(jīng)被預(yù)加載,如果沒(méi)有被預(yù)加載則從assert線程池中調(diào)用從線程加載并解碼該ui資源a,并將解碼后的ui資源a放入cache緩存中,然后馬上返回給inflate函數(shù)使用,如果assetmanager從cache中查詢到ui資源a已經(jīng)在cache中,則馬上返回cache中的ui資源a給inflate。
同理,view在后續(xù)的measure函數(shù),layout函數(shù)和draw函數(shù)進(jìn)行ui資源的訪問(wèn)時(shí),可以按照以上的邏輯來(lái)實(shí)現(xiàn)。
3)、當(dāng)view完成上述四個(gè)函數(shù)的ui資源的調(diào)用后,便可完成該應(yīng)用程序1的繪制過(guò)程。
本發(fā)明的實(shí)施例提供一種終端,該終端用于實(shí)現(xiàn)上述的應(yīng)用程序界面顯示方法,其中,上述的終端為安裝有android系統(tǒng)的android終端,如圖3所示,該終端2包括:獲取模塊21、調(diào)用模塊22以及顯示模塊23,其中:
獲取模塊21,用于獲取目標(biāo)應(yīng)用程序界面對(duì)應(yīng)的目標(biāo)應(yīng)用程序的標(biāo)識(shí)。
調(diào)用模塊22,用于根據(jù)目標(biāo)應(yīng)用程序的標(biāo)識(shí),從用戶界面ui資源數(shù)據(jù)庫(kù)中調(diào)用顯示目標(biāo)應(yīng)用程序界面所需的目標(biāo)ui資源,ui資源數(shù)據(jù)庫(kù)包含應(yīng)用程序的標(biāo)識(shí)、ui資源的標(biāo)識(shí)以及應(yīng)用程序與ui資源間的對(duì)應(yīng)關(guān)系,其中,該ui資源是預(yù)先加載至ui資源數(shù)據(jù)庫(kù)中。
顯示模塊23,用于根據(jù)調(diào)用模塊22調(diào)用的目標(biāo)ui資源顯示目標(biāo)應(yīng)用程序界面。
示例性的,上述的ui資源數(shù)據(jù)庫(kù)還包括:ui資源參數(shù),ui資源參數(shù)包括ui資源的屬性信息以及ui資源在該ui資源數(shù)據(jù)庫(kù)中存儲(chǔ)的路徑信息。而該ui資源的屬性信息包括該ui資源的數(shù)據(jù)類型以及數(shù)據(jù)大小等參數(shù)信息。具體的該ui資源包括但不限于:應(yīng)用程序界面的布局文件、各種ui素材(如圖片、視頻、音頻等多媒體數(shù)據(jù))以及應(yīng)用在應(yīng)用程序界面中的各種控件的參數(shù)信息。
可選的,上述的android系統(tǒng)用于控制多個(gè)線程,該多個(gè)線程包括至少一個(gè)從線程。
如圖4所示,該終端2還包括:加載模塊24,其中:
獲取模塊21,還用于獲取ui資源預(yù)加載指令,ui資源預(yù)加載指令中包含目標(biāo)應(yīng)用程序界面所需的目標(biāo)ui資源的標(biāo)識(shí)。
加載模塊24,用于根據(jù)目標(biāo)ui資源的標(biāo)識(shí),在從線程中將目標(biāo)ui資源預(yù)加載至ui資源數(shù)據(jù)庫(kù)中,每個(gè)從線程上至少進(jìn)行一個(gè)ui資源的加載。
可選的,如圖4所示,該終端還包括:初始化模塊25,其中:
初始化模塊25,用于根據(jù)該ui資源預(yù)加載指令中包含的目標(biāo)應(yīng)用程序界面所需的目標(biāo)ui資源的標(biāo)識(shí)的個(gè)數(shù),初始化從線程的個(gè)數(shù)。
可選的,該調(diào)用模塊22具體用于:
根據(jù)目標(biāo)應(yīng)用程序的標(biāo)識(shí)確定顯示目標(biāo)應(yīng)用程序界面所需的第一ui資源;
在ui資源數(shù)據(jù)庫(kù)中查詢第一ui資源;
若ui資源數(shù)據(jù)庫(kù)中包含第一ui資源,則從ui資源數(shù)據(jù)庫(kù)中調(diào)用第一ui資源;若ui資源數(shù)據(jù)庫(kù)中未包含所述第一ui資源,則加載所述第一ui資源;
其中,第一ui資源為顯示所述目標(biāo)應(yīng)用程序界面所需的目標(biāo)ui資源中的其中一個(gè)。
本發(fā)明的實(shí)施例提供的終端,通過(guò)獲取用于指示android終端顯示目標(biāo)應(yīng)用程序界面對(duì)應(yīng)的目標(biāo)應(yīng)用程序的標(biāo)識(shí),然后,根據(jù)該目標(biāo)應(yīng)用程序的標(biāo)識(shí),從ui資源數(shù)據(jù)庫(kù)中調(diào)用顯示目標(biāo)應(yīng)用程序界面所需的目標(biāo)ui資源,該ui資源數(shù)據(jù)庫(kù)包含應(yīng)用程序的標(biāo)識(shí)、ui資源的標(biāo)識(shí)以及應(yīng)用程序與ui資源間的對(duì)應(yīng)關(guān)系,其中,該ui資源是預(yù)先加載至ui資源數(shù)據(jù)庫(kù)中,最后,根據(jù)該目標(biāo)ui資源顯示目標(biāo)應(yīng)用程序界面。
相比于現(xiàn)有技術(shù)中android終端在顯示應(yīng)用程序界面時(shí),需要按照androidui單線程模型來(lái)繪制應(yīng)用程序界面,即需要按照應(yīng)用程序界面顯示過(guò)程中相關(guān)的函數(shù)調(diào)用的調(diào)用順序依次加載對(duì)應(yīng)的ui資源。本方案通過(guò)將顯示該目標(biāo)應(yīng)用程序界面的ui資源預(yù)先加載至ui資源數(shù)據(jù)庫(kù)中,從而使得該android終端可以在顯示該目標(biāo)應(yīng)用程序界面的過(guò)程中,直接從ui資源數(shù)據(jù)庫(kù)中調(diào)用所需的ui資源,這樣將應(yīng)用程序界面的繪制過(guò)程與應(yīng)用程序界面的ui資源加載過(guò)程相分離,從而實(shí)現(xiàn)了應(yīng)用程序界面顯示的整體速度的提升,節(jié)省了應(yīng)用程序界面的顯示時(shí)間,進(jìn)而提升了android終端的應(yīng)用程序的啟動(dòng)速度。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的終端和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理包括,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。上述軟件功能單元存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(read-onlymemory,簡(jiǎn)稱rom)、隨機(jī)存取存儲(chǔ)器(randomaccessmemory,簡(jiǎn)稱ram)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。