TW201939275A - 一種影像載入的方法及裝置 - Google Patents
一種影像載入的方法及裝置 Download PDFInfo
- Publication number
- TW201939275A TW201939275A TW108100045A TW108100045A TW201939275A TW 201939275 A TW201939275 A TW 201939275A TW 108100045 A TW108100045 A TW 108100045A TW 108100045 A TW108100045 A TW 108100045A TW 201939275 A TW201939275 A TW 201939275A
- Authority
- TW
- Taiwan
- Prior art keywords
- image
- application interface
- application
- thread
- mobile terminal
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
- Navigation (AREA)
Abstract
本發明揭露了一種影像載入的方法及裝置,移動終端在根據啟動應用的指令時,建立載入所述應用的主執行緒以及載入應用介面的子執行緒之後,若無法透過ImageView控件從緩衝器中獲取需要渲染至該應用介面的影像,則先不在該應用介面中渲染該影像,而是當ImageView控件在非同步從該移動終端的非揮發性記憶體中獲取了該影像之後,再將該影像渲染至該應用介面中。
Description
本發明是相關於資訊之技術領域,特別是相關於一種影像載入的方法及裝置。
作業系統(Operating System,OS)是指管理和控制電腦硬體與軟體資源的電腦程式,通常其他軟體都必須在作業系統的支援下才能在設備中運行。
目前,移動終端中常見的作業系統包括:安卓(Android)、iOS等等。其中,對於在Android系統中運行的應用程式來說,應用介面中需要載入的影像會在該應用安裝時,從安卓安裝包(AndroidPackage,APK)中獲取並儲存在移動終端本地。以便當該應用啟動時,可根據該影像的儲存位址,從移動終端本地獲取該影像並渲染至該應用的介面中。
具體的,Android系統中原生的顯示影像的控件為影像視圖(ImageView)控件,應用程式可採用ImageView控件,從移動終端獲取影像資源,並載入顯示。其中,ImageView控件在獲取影像資源時,可以採用類型化陣列(TypedArray)類的操作方法,根據影像資源的索引(Index),從移動終端中獲取影像資源。以便在獲取該影像資源後,將類實例化為可操作的物件。並且為了管理獲取的影像資源,一般還需要以場景(Context)類來定義ImageView控件的使用場景。另外,為了減少載入影像所需的時間,應用通常透過loadDrawable方法獲取影像。loadDrawable方法在獲取影像過程中,會先基於DrawableCache的快取資料以及影像資源的Index,判斷快取中是否有需要獲取的影像資源,若是,則直接從快取獲取該影像資源並返回,若否,再確定影像資源的儲存位址,並透過執行磁碟讀寫操作將該影像資源載入到快取中,再基於DrawableCache的快取資料將影像資源返回。
ImageView控件在獲取影像資源時,各類之間的關係可如圖1所示。其中,可見資源類(Resources)可執行的操作為載入影像、載入主題以及返回DrawableCache快取的影像資源。Context類則規定了在該場景下可返回Resources以及可繪製物(Drawable)。TypedArray類則將從Resources類獲取的影像資源或者物件返回ImageView類。而ImageView類則根據獲取的影像資源或者物件,渲染到介面上。
但是,在現有技術中載入應用介面的過程是有主執行緒執行的,這使得主執行緒在回應使用者的操作時可能出現阻塞(stuck)或者沒有反應等情況。可見,現有載入影像的方法,存在導致應用阻塞或無反應的情況,導致使用者體驗差。
目前,移動終端中常見的作業系統包括:安卓(Android)、iOS等等。其中,對於在Android系統中運行的應用程式來說,應用介面中需要載入的影像會在該應用安裝時,從安卓安裝包(AndroidPackage,APK)中獲取並儲存在移動終端本地。以便當該應用啟動時,可根據該影像的儲存位址,從移動終端本地獲取該影像並渲染至該應用的介面中。
具體的,Android系統中原生的顯示影像的控件為影像視圖(ImageView)控件,應用程式可採用ImageView控件,從移動終端獲取影像資源,並載入顯示。其中,ImageView控件在獲取影像資源時,可以採用類型化陣列(TypedArray)類的操作方法,根據影像資源的索引(Index),從移動終端中獲取影像資源。以便在獲取該影像資源後,將類實例化為可操作的物件。並且為了管理獲取的影像資源,一般還需要以場景(Context)類來定義ImageView控件的使用場景。另外,為了減少載入影像所需的時間,應用通常透過loadDrawable方法獲取影像。loadDrawable方法在獲取影像過程中,會先基於DrawableCache的快取資料以及影像資源的Index,判斷快取中是否有需要獲取的影像資源,若是,則直接從快取獲取該影像資源並返回,若否,再確定影像資源的儲存位址,並透過執行磁碟讀寫操作將該影像資源載入到快取中,再基於DrawableCache的快取資料將影像資源返回。
ImageView控件在獲取影像資源時,各類之間的關係可如圖1所示。其中,可見資源類(Resources)可執行的操作為載入影像、載入主題以及返回DrawableCache快取的影像資源。Context類則規定了在該場景下可返回Resources以及可繪製物(Drawable)。TypedArray類則將從Resources類獲取的影像資源或者物件返回ImageView類。而ImageView類則根據獲取的影像資源或者物件,渲染到介面上。
但是,在現有技術中載入應用介面的過程是有主執行緒執行的,這使得主執行緒在回應使用者的操作時可能出現阻塞(stuck)或者沒有反應等情況。可見,現有載入影像的方法,存在導致應用阻塞或無反應的情況,導致使用者體驗差。
本說明書實施例提供一種影像載入的方法及裝置,用於解決移動終端中安裝的應用在啟動時,載入應用介面的過程是由處理使用者操作的主執行緒同步執行的,導致載入影像時可能出現主執行緒阻塞或無反應的情況,導致使用者體驗差的問題。
本說明書實施例採用下述技術方案:
一種影像載入的方法,包括:
移動終端接收針對應用的啟動指令;
根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒;
當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否可以從快取獲取所述影像;
若是,則將所述影像渲染至所述應用介面中;
若否,則不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
一種影像載入的裝置,包括:
接收模組,移動終端接收針對應用的啟動指令;
建立模組,根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒;
判斷載入模組,當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否可以從快取獲取所述影像,若是,則將所述影像渲染至所述應用介面中,若否,則不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
一種移動終端,其中,所述移動終端包括:一個或多個處理器及記憶體,記憶體儲存有程式,並且被配置成由一個或多個處理器執行以下步驟:
接收針對應用的啟動指令;
根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒;
當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否可以從快取獲取所述影像;
若是,則將所述影像渲染至所述應用介面中;
若否,則不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
本說明書實施例採用的上述至少一個技術方案能夠達到以下有益效果:
透過本說明書提供的方法及裝置,移動終端在根據啟動應用的指令時,建立載入所述應用的主執行緒以及載入應用介面的子執行緒之後,若無法透過ImageView控件從緩衝器中獲取需要渲染至該應用介面的影像,則先不在該應用介面中渲染該影像,而是當ImageView控件在非同步從該移動終端的非揮發性記憶體中獲取了該影像之後,再將該影像渲染至該應用介面中。在無法從快取獲取影像時,子執行緒可先不渲染應用介面中的該影像,並在後續透過非同步的方式,再從移動終端的非揮發性記憶體中讀取影像。由於應用介面的載入對於應用的使用影響較小,而主執行緒阻塞會造成應用難以使用,所以本說明書提供的方法,透過建立子執行緒來執行載入應用介面的方式,避免了主執行緒受載入影像影響的情況出現使得應用在使用過程中受載入應用介面中影像的影響降低,提高了使用者體驗。
本說明書實施例採用下述技術方案:
一種影像載入的方法,包括:
移動終端接收針對應用的啟動指令;
根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒;
當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否可以從快取獲取所述影像;
若是,則將所述影像渲染至所述應用介面中;
若否,則不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
一種影像載入的裝置,包括:
接收模組,移動終端接收針對應用的啟動指令;
建立模組,根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒;
判斷載入模組,當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否可以從快取獲取所述影像,若是,則將所述影像渲染至所述應用介面中,若否,則不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
一種移動終端,其中,所述移動終端包括:一個或多個處理器及記憶體,記憶體儲存有程式,並且被配置成由一個或多個處理器執行以下步驟:
接收針對應用的啟動指令;
根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒;
當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否可以從快取獲取所述影像;
若是,則將所述影像渲染至所述應用介面中;
若否,則不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
本說明書實施例採用的上述至少一個技術方案能夠達到以下有益效果:
透過本說明書提供的方法及裝置,移動終端在根據啟動應用的指令時,建立載入所述應用的主執行緒以及載入應用介面的子執行緒之後,若無法透過ImageView控件從緩衝器中獲取需要渲染至該應用介面的影像,則先不在該應用介面中渲染該影像,而是當ImageView控件在非同步從該移動終端的非揮發性記憶體中獲取了該影像之後,再將該影像渲染至該應用介面中。在無法從快取獲取影像時,子執行緒可先不渲染應用介面中的該影像,並在後續透過非同步的方式,再從移動終端的非揮發性記憶體中讀取影像。由於應用介面的載入對於應用的使用影響較小,而主執行緒阻塞會造成應用難以使用,所以本說明書提供的方法,透過建立子執行緒來執行載入應用介面的方式,避免了主執行緒受載入影像影響的情況出現使得應用在使用過程中受載入應用介面中影像的影響降低,提高了使用者體驗。
為使本說明書的目的、技術方案和優點更加清楚,下面將結合本說明書具體實施例及相應的附圖對本發明技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本發明一部分實施例,而不是全部的實施例。基於說明書中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬本發明保護的範圍。
以下結合附圖,詳細說明本發明各實施例提供的技術方案。
圖2為說明書實施例提供的一種影像載入的過程,具體可包括以下步驟:
S100:移動終端接收針對應用的啟動指令。
在本說明書一個或多個實施例中,如前述的該影像載入過程,具體可以是對移動終端中已安裝應用的應用介面中的影像的載入過程。因此,具體可由移動終端執行本說明書提供的影像載入的過程,其中,該移動終端可以是手機、平板電腦等設備,本說明書對此不做限定。
另外,由於載入的該影像為應用介面中的影像,因此本說明書提供的影像載入過程,也可按照載入影像的時間先後順序,分為獲取影像資源以及將該影像資源渲染至應用介面中的兩個步驟。
具體的,在本說明書中,移動終端在可接收使用者的操作,於是當使用者需要啟動某個應用時,該移動終端可接收到針對該應用的啟動指令,並執行後續步驟的操作。其中,使用者在移動終端上具體執行何種操作以啟動應用,本說明書不做限定。例如,當移動終端支援語音控制時,該移動終端可以使接收到使用者輸入的音訊,並根據該音訊確定接收到了針對應用的啟動指令,或者當使用者點擊移動終端的系統介面中的應用圖標時,根據使用者的點擊操作,確定接收到了針對該應用的啟動指令,等等。
需要說明的是,該移動終端所使用的系統具體可以是安卓(Android)系統。並且,該啟動指令的具體形式本說明書也不做限定,可根據需要設定。
S102:根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒。
在本說明書中,移動終端在接收到啟動指令之後,便可根據該啟動指令建立載入該應用的主執行緒。並且,為了在移動終端的螢幕上顯示該應用的應用介面,移動終端還可建立載入該應用介面的子執行緒,從而避免在同一執行緒中同時執行載入應用介面與載入應用(例如,回應使用者操作)的任務,導致應用出現阻塞等情況。
在本說明書中該子執行緒可由主執行緒建立。具體的,當該主執行緒載入應用時,可先獲取該應用的碼。其中,該碼中可包含建立用於載入應用介面的子執行緒的內容,使得該主執行緒在執行到載入應用介面使,可建立子執行緒以透過該子執行緒載入應用介面中的影像。當然,現有技術中存在多種建立子執行緒的方法,本說明書對該子執行緒建立的方式不做限定,具體可根據需要進行設定。
另外,通常情況下執行緒在建立之後,便可獲取相應的碼並運行。於是,只要建立了子執行緒,便可由該子執行緒執行後續載入影像的步驟。則該子執行緒可先獲取該應用中載入應用介面的碼,以運行該載入應用介面的碼獲取需要載入的影像以及將該影像渲染到應用介面中。
S104:當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否可以從快取獲取所述影像,若是,則執行步驟S106,若否則執行步驟S108。
在本說明書中,該載入應用介面的子執行緒可獲取該應用中載入應用介面的碼,以根據該碼中攜帶的參數將頁面類(Activity)配置為頁面實例,並以該頁面實例載入該應用介面。其中,該頁面實例載入應用介面的過程可如圖3所示。
圖3為頁面實例載入應用介面的過程示意圖。該頁面實例可先跟根據應用中預先配置的用於載入應用介面的參數,將相應的參數分別傳入視圖布局載入器(Layoutinflater)類以及頁面視窗(Window)類中,配置好相應的實例。之後,再由配置好的Window實例,向Layoutinflater實例傳輸應用介面中需要填充的各視窗的內容。然後,由Layoutinflater實例配置視圖產生器(Factory)實例,獲取需要渲染至應用介面中的影像,再透過Window實例傳輸給Activity實例,從而將該應用介面按照應用的碼中配置的布局以及圖片顯示出來。
透過圖3所示的頁面實例載入應用介面的過程示意圖,可見子執行緒在獲取應用介面中需要載入的影像時,具體可以是由視圖產生器獲取的。並且,在本說明書中,Factory可以透過ImageView控件獲取該影像。則可透過獲取該應用中關於載入影像的碼,確定輸入該ImageView控件的參數。
另外,由於通常在配置ImageView控件時,該ImageView控件是透過loadDrawable方法從Resources中獲取資料的。而若快取中不存在該影像的Index,則會額外執行磁碟讀取操作獲取該影像,從而導致子執行緒與主執行緒競爭的情況出現。
因此,在本說明書中,該ImageView控件可透過loadDrawable方法從相容皮膚的資源類(SkinCompatResources)中獲取影像。其中,SkinCompatResources在未快取有該影像時,會先返回空字元(Null)。則ImageView控件雖然沒有獲取到該影像,但是也不會立刻執行磁碟讀取操作獲取該影像,從而避免了子執行緒與主執行緒競爭的情況。
於是,在本說明書中判斷是否從快取中獲取影像,具體可以是判斷SkinCompatResources返回的結果是否不是Null。若是則執行步驟S106,否則執行步驟S108。
具體的,ImageView控件可透過TypedArray以及Context向SkinCompatResources發起獲取影像的請求,其中該請求中攜帶有該影像的Index。並根據SkinCompatResources返回的資料,確定後續執行的步驟。如圖4所示。圖4為本說明書提供的ImageView控件在獲取影像資源時,各類之間的關係。
S106:將所述影像渲染至所述應用介面中。
在本說明書實施例中,若SkinCompatResources返回的不是Null,則說明可以透過loadDrawable方法從SkinCompatResources中獲取應用介面中需要載入的影像,則該子執行緒可以根據圖3所示的過程,將該影像渲染至該應用介面中,完成載入影像的過程。
S108:不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
在本說明書中,若SkinCompatResources返回的是Null,則說明透過loadDrawable的方法無法獲取該影像,則該子執行緒可以將Null作為獲取的影像執行圖3中後續步驟的操作。由於Factory返回的是Null,因此Layoutinflater可以不向Window提供相應的View,則此時Activity顯示出的應用介面中可以沒有該影像,於是需要載入在該應用介面中的影像並沒有被渲染至應用介面中。
另外,由於仍未獲取需要載入的影像,因此可由
SkinCompatResources根據該影像的Index確定該影像在該移動終端中的儲存位址,之後在根據該儲存位址執行讀寫任務,從而獲取該影像。並在獲取到該影像之後,再根據現有載入影像的過程將該影像渲染至該應用介面中。其中,該影像的Index可以是由Activity透過LayoutInflater傳輸到該Factory中的。並在Factory調用ImageView控件載入影像時,傳輸至SkinCompatResources的。
由於SkinCompatResources在無法從快取獲取影像後,是先返回Null的,並在之後再執行磁碟讀取操作獲取該影像的,因此執行磁碟讀取操作的過程是非同步進行的。可以縮短應用介面的載入速度,減少由於等待應用介面載入而導致使用者無法對應用進行操作的情況出現。例如,假設應用介面未載入出來,則使用者無法根據應用介面中按鍵或者圖標的布局進行操作,但是,假設若只應用介面中只有部分影像未載入出來,則使用者仍可對應用介面中載入出來的部分進行操作。
其中,該磁碟讀取操作是根據該影像的儲存位址,從該移動終端的非揮發性記憶體中獲取該影像。具體的,該移動終端的非揮發性記憶體可以是唯讀記憶體(Read-Only Memory,ROM),例如,該移動終端的非揮發性記憶體可以是快閃記憶體(Flash memory)。
基於圖2所示的影像載入過程,移動終端在接收到針對應用的啟動指令之後,可相應的建立該應用的主執行緒以及載入應用介面的子執行緒,之後若該子執行緒無法透過ImageView控件從快取中獲取影像時,則先根據返回的空字元,不在該應用介面中渲染該影像,而是等待ImageView控件非同步獲取到該影像之後,再將該影像渲染至應用介面中。其中,由於ImageView控件獲取影像的過程未產生變化,因此無需自定義獲取影像的類,可以直接使用基礎ImageView控件,降低了程式化成本。並且,透過從SkinCompatResources獲取影像資源,使得即使未能從快取獲取影像,也可繼續進行應用介面的渲染,並在後續透過非同步執行磁碟讀取操作獲取該影像。可見透過本說明書提供的方法,由於載入應用介面中影像可由子執行緒非同步執行,因此避免了現有技術透過主執行緒同步執行載入應用介面的過程時,導致的應用阻塞或者無法應的情況,提高了使用者體驗。
需要說明的是,本說明書實施例所提供方法的各步驟的執行主體均可以是同一設備,或者,該方法也由不同設備作為執行主體。比如,步驟S100和步驟S102的執行主體可以為設備1,步驟S102的執行主體可以為設備2;或者,步驟S100的執行主體可以為設備1,步驟S102和步驟S104的執行主體可以為設備2;等等。上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍的範疇內。在一些情況下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在附圖中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多任務處理和並行處理也是可以的或者可能是有利的。
基於圖2所示的影像載入的方法,本說明書實施例還提供一種影像載入的裝置,如圖5所示。
圖5為本說明書實施例提供的一種影像載入的裝置的結構示意圖,所述裝置包括:
接收模組200,移動終端接收針對應用的啟動指令;
建立模組202,根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒;
判斷載入模組204,當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否可以從快取獲取所述影像,若是,則將所述影像渲染至所述應用介面中,若否,則不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
所述判斷載入模組204,所述子執行緒根據所述應用的碼,配置用於載入所述應用介面的頁面實例,以使所述頁面實例透過視圖產生器實例,控制所述影像視圖控件載入所述應用介面中的影像。
所述判斷載入模組204,根據所述影像視圖控件獲取所述影像的結果,判斷是否可以從快取中獲取所述影像。
所述判斷載入模組204,根據所述影像視圖控件返回的空字元,確定不在所述應用介面中渲染所述影像。
所述判斷載入模組204,所述影像視圖控件透過非同步執行磁碟讀取操作,根據所述影像的儲存位址,從所述移動終端的非揮發性記憶體中獲取所述影像。
基於圖2所述的影像載入的方法,本說明書對應提供一種移動終端,如圖6所示,其中,所述移動終端包括:一個或多個處理器及記憶體,記憶體儲存有程式,並且被配置成由一個或多個處理器執行以下步驟:
接收針對應用的啟動指令;
根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒;
當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否可以從快取獲取所述影像;
若是,則將所述影像渲染至所述應用介面中;
若否,則不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都透過將改進的方法流程程式化到硬體電路中來得到相應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模組來實現。例如,可程式化邏輯裝置(Programmable Logic Device,PLD)(例如現場可程式化閘陣列(Field Programmable Gate Array,FPGA))就是這樣一種積體電路,其邏輯功能由使用者對裝置程式化來確定。由設計人員自行程式化來把一個數位系統“整合”在一片PLD上,而不需要請晶片製造廠商來設計和製作專用的積體電路晶片。而且,如今,取代手工地製作積體電路晶片,這種程式化也多半改用“邏輯編譯器(logic compiler)”軟體來實現,它與程式開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始碼也得用特定的程式化語言來撰寫,此稱之為硬體描述語言(Hardware Description Language,HDL),而HDL也並非僅有一種,而是有許多種,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)與Verilog。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬體描述語言稍作邏輯程式化並程式化到積體電路中,就可以很容易得到實現該邏輯方法流程的硬體電路。
控制器可以按任何適當的方式實現,例如,控制器可以採取例如微處理器或處理器以及儲存可由該(微)處理器執行的電腦可讀程式碼(例如軟體或韌體)的電腦可讀媒體、邏輯閘、開關、專用積體電路(Application Specific Integrated Circuit,ASIC)、可程式化邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限於以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,記憶體控制器還可以被實現為記憶體的控制邏輯的一部分。本領域技術人員也知道,除了以純電腦可讀程式碼方式實現控制器以外,完全可以透過將方法步驟進行邏輯程式化來使得控制器以邏輯閘、開關、專用積體電路、可程式化邏輯控制器和嵌入微控制器等的形式來實現相同功能。因此這種控制器可以被認為是一種硬體部件,而對其內包括的用於實現各種功能的裝置也可以視為硬體部件內的結構。或者甚至,可以將用於實現各種功能的裝置視為既可以是實現方法的軟體模組又可以是硬體部件內的結構。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦。具體的,電腦例如可以為個人電腦、膝上型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放器、導航設備、電子郵件設備、遊戲主機、平板電腦、可穿戴設備或者這些設備中的任何設備的組合。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本發明時可以把各單元的功能在同一個或多個軟體及/或硬體中實現。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖及/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖及/或方塊圖中的每一流程及/或方塊、以及流程圖及/或方塊圖中的流程及/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理器或其他可程式化資料處理設備的處理器以產生一個機器,使得透過電腦或其他可程式化資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程及/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可程式化資料處理設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程及/或方塊圖一個方塊或多個方塊中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式化資料處理設備上,使得在電腦或其他可程式化設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式化設備上執行的指令提供用於實現在流程圖一個流程或多個流程及/或方塊圖一個方塊或多個方塊中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和內部記憶體。
內部記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)及/或非揮發性內部記憶體等形式,如唯讀記憶體(ROM)或快閃隨機存取記憶體(flash RAM)。內部記憶體是電腦可讀媒體的示例。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可程式化唯讀記憶體(EEPROM)、快閃記憶體或其他內部記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存器、磁盒式磁帶,磁帶磁碟儲存器或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫態媒體(transitory media),如調變的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本領域技術人員應明白,本發明的實施例可提供為方法、系統或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本發明可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的常式、程式、物件、組件、資料結構等等。也可以在分散式計算環境中實踐本發明,在這些分散式計算環境中,由透過通信網路而被連接的遠端處理設備來執行任務。在分散式計算環境中,程式模組可以位於包括儲存設備在內的本地和遠端電腦儲存媒體中。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於系統實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
以上所述僅為本發明的實施例而已,並不用於限制本發明。對於本領域技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本發明的申請專利範圍之範疇之內。
以下結合附圖,詳細說明本發明各實施例提供的技術方案。
圖2為說明書實施例提供的一種影像載入的過程,具體可包括以下步驟:
S100:移動終端接收針對應用的啟動指令。
在本說明書一個或多個實施例中,如前述的該影像載入過程,具體可以是對移動終端中已安裝應用的應用介面中的影像的載入過程。因此,具體可由移動終端執行本說明書提供的影像載入的過程,其中,該移動終端可以是手機、平板電腦等設備,本說明書對此不做限定。
另外,由於載入的該影像為應用介面中的影像,因此本說明書提供的影像載入過程,也可按照載入影像的時間先後順序,分為獲取影像資源以及將該影像資源渲染至應用介面中的兩個步驟。
具體的,在本說明書中,移動終端在可接收使用者的操作,於是當使用者需要啟動某個應用時,該移動終端可接收到針對該應用的啟動指令,並執行後續步驟的操作。其中,使用者在移動終端上具體執行何種操作以啟動應用,本說明書不做限定。例如,當移動終端支援語音控制時,該移動終端可以使接收到使用者輸入的音訊,並根據該音訊確定接收到了針對應用的啟動指令,或者當使用者點擊移動終端的系統介面中的應用圖標時,根據使用者的點擊操作,確定接收到了針對該應用的啟動指令,等等。
需要說明的是,該移動終端所使用的系統具體可以是安卓(Android)系統。並且,該啟動指令的具體形式本說明書也不做限定,可根據需要設定。
S102:根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒。
在本說明書中,移動終端在接收到啟動指令之後,便可根據該啟動指令建立載入該應用的主執行緒。並且,為了在移動終端的螢幕上顯示該應用的應用介面,移動終端還可建立載入該應用介面的子執行緒,從而避免在同一執行緒中同時執行載入應用介面與載入應用(例如,回應使用者操作)的任務,導致應用出現阻塞等情況。
在本說明書中該子執行緒可由主執行緒建立。具體的,當該主執行緒載入應用時,可先獲取該應用的碼。其中,該碼中可包含建立用於載入應用介面的子執行緒的內容,使得該主執行緒在執行到載入應用介面使,可建立子執行緒以透過該子執行緒載入應用介面中的影像。當然,現有技術中存在多種建立子執行緒的方法,本說明書對該子執行緒建立的方式不做限定,具體可根據需要進行設定。
另外,通常情況下執行緒在建立之後,便可獲取相應的碼並運行。於是,只要建立了子執行緒,便可由該子執行緒執行後續載入影像的步驟。則該子執行緒可先獲取該應用中載入應用介面的碼,以運行該載入應用介面的碼獲取需要載入的影像以及將該影像渲染到應用介面中。
S104:當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否可以從快取獲取所述影像,若是,則執行步驟S106,若否則執行步驟S108。
在本說明書中,該載入應用介面的子執行緒可獲取該應用中載入應用介面的碼,以根據該碼中攜帶的參數將頁面類(Activity)配置為頁面實例,並以該頁面實例載入該應用介面。其中,該頁面實例載入應用介面的過程可如圖3所示。
圖3為頁面實例載入應用介面的過程示意圖。該頁面實例可先跟根據應用中預先配置的用於載入應用介面的參數,將相應的參數分別傳入視圖布局載入器(Layoutinflater)類以及頁面視窗(Window)類中,配置好相應的實例。之後,再由配置好的Window實例,向Layoutinflater實例傳輸應用介面中需要填充的各視窗的內容。然後,由Layoutinflater實例配置視圖產生器(Factory)實例,獲取需要渲染至應用介面中的影像,再透過Window實例傳輸給Activity實例,從而將該應用介面按照應用的碼中配置的布局以及圖片顯示出來。
透過圖3所示的頁面實例載入應用介面的過程示意圖,可見子執行緒在獲取應用介面中需要載入的影像時,具體可以是由視圖產生器獲取的。並且,在本說明書中,Factory可以透過ImageView控件獲取該影像。則可透過獲取該應用中關於載入影像的碼,確定輸入該ImageView控件的參數。
另外,由於通常在配置ImageView控件時,該ImageView控件是透過loadDrawable方法從Resources中獲取資料的。而若快取中不存在該影像的Index,則會額外執行磁碟讀取操作獲取該影像,從而導致子執行緒與主執行緒競爭的情況出現。
因此,在本說明書中,該ImageView控件可透過loadDrawable方法從相容皮膚的資源類(SkinCompatResources)中獲取影像。其中,SkinCompatResources在未快取有該影像時,會先返回空字元(Null)。則ImageView控件雖然沒有獲取到該影像,但是也不會立刻執行磁碟讀取操作獲取該影像,從而避免了子執行緒與主執行緒競爭的情況。
於是,在本說明書中判斷是否從快取中獲取影像,具體可以是判斷SkinCompatResources返回的結果是否不是Null。若是則執行步驟S106,否則執行步驟S108。
具體的,ImageView控件可透過TypedArray以及Context向SkinCompatResources發起獲取影像的請求,其中該請求中攜帶有該影像的Index。並根據SkinCompatResources返回的資料,確定後續執行的步驟。如圖4所示。圖4為本說明書提供的ImageView控件在獲取影像資源時,各類之間的關係。
S106:將所述影像渲染至所述應用介面中。
在本說明書實施例中,若SkinCompatResources返回的不是Null,則說明可以透過loadDrawable方法從SkinCompatResources中獲取應用介面中需要載入的影像,則該子執行緒可以根據圖3所示的過程,將該影像渲染至該應用介面中,完成載入影像的過程。
S108:不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
在本說明書中,若SkinCompatResources返回的是Null,則說明透過loadDrawable的方法無法獲取該影像,則該子執行緒可以將Null作為獲取的影像執行圖3中後續步驟的操作。由於Factory返回的是Null,因此Layoutinflater可以不向Window提供相應的View,則此時Activity顯示出的應用介面中可以沒有該影像,於是需要載入在該應用介面中的影像並沒有被渲染至應用介面中。
另外,由於仍未獲取需要載入的影像,因此可由
SkinCompatResources根據該影像的Index確定該影像在該移動終端中的儲存位址,之後在根據該儲存位址執行讀寫任務,從而獲取該影像。並在獲取到該影像之後,再根據現有載入影像的過程將該影像渲染至該應用介面中。其中,該影像的Index可以是由Activity透過LayoutInflater傳輸到該Factory中的。並在Factory調用ImageView控件載入影像時,傳輸至SkinCompatResources的。
由於SkinCompatResources在無法從快取獲取影像後,是先返回Null的,並在之後再執行磁碟讀取操作獲取該影像的,因此執行磁碟讀取操作的過程是非同步進行的。可以縮短應用介面的載入速度,減少由於等待應用介面載入而導致使用者無法對應用進行操作的情況出現。例如,假設應用介面未載入出來,則使用者無法根據應用介面中按鍵或者圖標的布局進行操作,但是,假設若只應用介面中只有部分影像未載入出來,則使用者仍可對應用介面中載入出來的部分進行操作。
其中,該磁碟讀取操作是根據該影像的儲存位址,從該移動終端的非揮發性記憶體中獲取該影像。具體的,該移動終端的非揮發性記憶體可以是唯讀記憶體(Read-Only Memory,ROM),例如,該移動終端的非揮發性記憶體可以是快閃記憶體(Flash memory)。
基於圖2所示的影像載入過程,移動終端在接收到針對應用的啟動指令之後,可相應的建立該應用的主執行緒以及載入應用介面的子執行緒,之後若該子執行緒無法透過ImageView控件從快取中獲取影像時,則先根據返回的空字元,不在該應用介面中渲染該影像,而是等待ImageView控件非同步獲取到該影像之後,再將該影像渲染至應用介面中。其中,由於ImageView控件獲取影像的過程未產生變化,因此無需自定義獲取影像的類,可以直接使用基礎ImageView控件,降低了程式化成本。並且,透過從SkinCompatResources獲取影像資源,使得即使未能從快取獲取影像,也可繼續進行應用介面的渲染,並在後續透過非同步執行磁碟讀取操作獲取該影像。可見透過本說明書提供的方法,由於載入應用介面中影像可由子執行緒非同步執行,因此避免了現有技術透過主執行緒同步執行載入應用介面的過程時,導致的應用阻塞或者無法應的情況,提高了使用者體驗。
需要說明的是,本說明書實施例所提供方法的各步驟的執行主體均可以是同一設備,或者,該方法也由不同設備作為執行主體。比如,步驟S100和步驟S102的執行主體可以為設備1,步驟S102的執行主體可以為設備2;或者,步驟S100的執行主體可以為設備1,步驟S102和步驟S104的執行主體可以為設備2;等等。上述對本說明書特定實施例進行了描述。其它實施例在所附申請專利範圍的範疇內。在一些情況下,在申請專利範圍中記載的動作或步驟可以按照不同於實施例中的順序來執行並且仍然可以實現期望的結果。另外,在附圖中描繪的過程不一定要求示出的特定順序或者連續順序才能實現期望的結果。在某些實施方式中,多任務處理和並行處理也是可以的或者可能是有利的。
基於圖2所示的影像載入的方法,本說明書實施例還提供一種影像載入的裝置,如圖5所示。
圖5為本說明書實施例提供的一種影像載入的裝置的結構示意圖,所述裝置包括:
接收模組200,移動終端接收針對應用的啟動指令;
建立模組202,根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒;
判斷載入模組204,當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否可以從快取獲取所述影像,若是,則將所述影像渲染至所述應用介面中,若否,則不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
所述判斷載入模組204,所述子執行緒根據所述應用的碼,配置用於載入所述應用介面的頁面實例,以使所述頁面實例透過視圖產生器實例,控制所述影像視圖控件載入所述應用介面中的影像。
所述判斷載入模組204,根據所述影像視圖控件獲取所述影像的結果,判斷是否可以從快取中獲取所述影像。
所述判斷載入模組204,根據所述影像視圖控件返回的空字元,確定不在所述應用介面中渲染所述影像。
所述判斷載入模組204,所述影像視圖控件透過非同步執行磁碟讀取操作,根據所述影像的儲存位址,從所述移動終端的非揮發性記憶體中獲取所述影像。
基於圖2所述的影像載入的方法,本說明書對應提供一種移動終端,如圖6所示,其中,所述移動終端包括:一個或多個處理器及記憶體,記憶體儲存有程式,並且被配置成由一個或多個處理器執行以下步驟:
接收針對應用的啟動指令;
根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒;
當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否可以從快取獲取所述影像;
若是,則將所述影像渲染至所述應用介面中;
若否,則不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
在20世紀90年代,對於一個技術的改進可以很明顯地區分是硬體上的改進(例如,對二極體、電晶體、開關等電路結構的改進)還是軟體上的改進(對於方法流程的改進)。然而,隨著技術的發展,當今的很多方法流程的改進已經可以視為硬體電路結構的直接改進。設計人員幾乎都透過將改進的方法流程程式化到硬體電路中來得到相應的硬體電路結構。因此,不能說一個方法流程的改進就不能用硬體實體模組來實現。例如,可程式化邏輯裝置(Programmable Logic Device,PLD)(例如現場可程式化閘陣列(Field Programmable Gate Array,FPGA))就是這樣一種積體電路,其邏輯功能由使用者對裝置程式化來確定。由設計人員自行程式化來把一個數位系統“整合”在一片PLD上,而不需要請晶片製造廠商來設計和製作專用的積體電路晶片。而且,如今,取代手工地製作積體電路晶片,這種程式化也多半改用“邏輯編譯器(logic compiler)”軟體來實現,它與程式開發撰寫時所用的軟體編譯器相類似,而要編譯之前的原始碼也得用特定的程式化語言來撰寫,此稱之為硬體描述語言(Hardware Description Language,HDL),而HDL也並非僅有一種,而是有許多種,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware Description Language)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(Ruby Hardware Description Language)等,目前最普遍使用的是VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)與Verilog。本領域技術人員也應該清楚,只需要將方法流程用上述幾種硬體描述語言稍作邏輯程式化並程式化到積體電路中,就可以很容易得到實現該邏輯方法流程的硬體電路。
控制器可以按任何適當的方式實現,例如,控制器可以採取例如微處理器或處理器以及儲存可由該(微)處理器執行的電腦可讀程式碼(例如軟體或韌體)的電腦可讀媒體、邏輯閘、開關、專用積體電路(Application Specific Integrated Circuit,ASIC)、可程式化邏輯控制器和嵌入微控制器的形式,控制器的例子包括但不限於以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,記憶體控制器還可以被實現為記憶體的控制邏輯的一部分。本領域技術人員也知道,除了以純電腦可讀程式碼方式實現控制器以外,完全可以透過將方法步驟進行邏輯程式化來使得控制器以邏輯閘、開關、專用積體電路、可程式化邏輯控制器和嵌入微控制器等的形式來實現相同功能。因此這種控制器可以被認為是一種硬體部件,而對其內包括的用於實現各種功能的裝置也可以視為硬體部件內的結構。或者甚至,可以將用於實現各種功能的裝置視為既可以是實現方法的軟體模組又可以是硬體部件內的結構。
上述實施例闡明的系統、裝置、模組或單元,具體可以由電腦晶片或實體實現,或者由具有某種功能的產品來實現。一種典型的實現設備為電腦。具體的,電腦例如可以為個人電腦、膝上型電腦、蜂巢式電話、相機電話、智慧型電話、個人數位助理、媒體播放器、導航設備、電子郵件設備、遊戲主機、平板電腦、可穿戴設備或者這些設備中的任何設備的組合。
為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當然,在實施本發明時可以把各單元的功能在同一個或多個軟體及/或硬體中實現。
本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和電腦程式產品的流程圖及/或方塊圖來描述的。應理解可由電腦程式指令實現流程圖及/或方塊圖中的每一流程及/或方塊、以及流程圖及/或方塊圖中的流程及/或方塊的結合。可提供這些電腦程式指令到通用電腦、專用電腦、嵌入式處理器或其他可程式化資料處理設備的處理器以產生一個機器,使得透過電腦或其他可程式化資料處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程及/或方塊圖一個方塊或多個方塊中指定的功能的裝置。
這些電腦程式指令也可儲存在能引導電腦或其他可程式化資料處理設備以特定方式工作的電腦可讀記憶體中,使得儲存在該電腦可讀記憶體中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程及/或方塊圖一個方塊或多個方塊中指定的功能。
這些電腦程式指令也可裝載到電腦或其他可程式化資料處理設備上,使得在電腦或其他可程式化設備上執行一系列操作步驟以產生電腦實現的處理,從而在電腦或其他可程式化設備上執行的指令提供用於實現在流程圖一個流程或多個流程及/或方塊圖一個方塊或多個方塊中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出介面、網路介面和內部記憶體。
內部記憶體可能包括電腦可讀媒體中的非永久性記憶體,隨機存取記憶體(RAM)及/或非揮發性內部記憶體等形式,如唯讀記憶體(ROM)或快閃隨機存取記憶體(flash RAM)。內部記憶體是電腦可讀媒體的示例。
電腦可讀媒體包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現資訊儲存。資訊可以是電腦可讀指令、資料結構、程式的模組或其他資料。電腦的儲存媒體的例子包括,但不限於相變記憶體(PRAM)、靜態隨機存取記憶體(SRAM)、動態隨機存取記憶體(DRAM)、其他類型的隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電可抹除可程式化唯讀記憶體(EEPROM)、快閃記憶體或其他內部記憶體技術、唯讀光碟唯讀記憶體(CD-ROM)、數位多功能光碟(DVD)或其他光學儲存器、磁盒式磁帶,磁帶磁碟儲存器或其他磁性儲存設備或任何其他非傳輸媒體,可用於儲存可以被計算設備存取的資訊。按照本文中的界定,電腦可讀媒體不包括暫態媒體(transitory media),如調變的資料信號和載波。
還需要說明的是,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,並不排除在包括所述要素的過程、方法、商品或者設備中還存在另外的相同要素。
本領域技術人員應明白,本發明的實施例可提供為方法、系統或電腦程式產品。因此,本發明可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本發明可採用在一個或多個其中包含有電腦可用程式碼的電腦可用儲存媒體(包括但不限於磁碟記憶體、CD-ROM、光學記憶體等)上實施的電腦程式產品的形式。
本發明可以在由電腦執行的電腦可執行指令的一般上下文中描述,例如程式模組。一般地,程式模組包括執行特定任務或實現特定抽象資料類型的常式、程式、物件、組件、資料結構等等。也可以在分散式計算環境中實踐本發明,在這些分散式計算環境中,由透過通信網路而被連接的遠端處理設備來執行任務。在分散式計算環境中,程式模組可以位於包括儲存設備在內的本地和遠端電腦儲存媒體中。
本說明書中的各個實施例均採用遞進的方式描述,各個實施例之間相同相似的部分互相參見即可,每個實施例重點說明的都是與其他實施例的不同之處。尤其,對於系統實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例的部分說明即可。
以上所述僅為本發明的實施例而已,並不用於限制本發明。對於本領域技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本發明的申請專利範圍之範疇之內。
S100‧‧‧步驟
S102‧‧‧步驟
S104‧‧‧步驟
S106‧‧‧步驟
S108‧‧‧步驟
200‧‧‧接收模組
202‧‧‧建立模組
204‧‧‧判斷載入模組
此處所說明的附圖用來提供對本發明的進一步理解,構成本發明的一部分,本發明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在附圖中:
圖1為ImageView控件在獲取影像資源時各類之間的關係的示意圖;
圖2為本說明書實施例提供的影像載入的流程示意圖;
圖3為頁面實例載入應用介面的過程示意圖;
圖4為本說明書提供的ImageView控件在獲取影像資源時,各類之間的關係;
圖5為本說明書實施例提供的一種影像載入的裝置的結構示意圖;以及
圖6為本說明書實施例提供的一種移動終端的結構示意圖。
Claims (11)
- 一種影像載入的方法,包括: 移動終端接收針對應用的啟動指令; 根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒;以及 當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否從快取獲取所述影像; 若是,則將所述影像渲染至所述應用介面中; 若否,則不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
- 如請求項1所述的方法,所述子執行緒在根據影像視圖控件載入所述應用介面中的影像,具體包括: 所述子執行緒根據所述應用的碼,配置用於載入所述應用介面的頁面實例,以使所述頁面實例透過視圖產生器實例,控制所述影像視圖控件載入所述應用介面中的影像。
- 如請求項2所述的方法,判斷是否可以從快取獲取所述影像,具體包括: 根據所述影像視圖控件獲取所述影像的結果,判斷是否可以從快取中獲取所述影像。
- 如請求項3所述的方法,不在所述應用介面中渲染所述影像,具體包括: 根據所述影像視圖控件返回的空字元,確定不在所述應用介面中渲染所述影像。
- 如請求項3所述的方法,所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像,具體包括: 所述影像視圖控件透過非同步執行磁碟讀取操作,根據所述影像的儲存位址,從所述移動終端的非揮發性記憶體中獲取所述影像。
- 一種影像載入的裝置,包括: 接收模組,移動終端接收針對應用的啟動指令; 建立模組,根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒;以及 判斷載入模組,當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否可以從快取獲取所述影像,若是,則將所述影像渲染至所述應用介面中,若否,則不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
- 如請求項6所述的裝置,所述判斷載入模組,所述子執行緒根據所述應用的碼,配置用於載入所述應用介面的頁面實例,以使所述頁面實例透過視圖產生器實例,控制所述影像視圖控件載入所述應用介面中的影像。
- 如請求項7所述的裝置,所述判斷載入模組,根據所述影像視圖控件獲取所述影像的結果,判斷是否可以從快取中獲取所述影像。
- 如請求項7所述的裝置,所述判斷載入模組,根據所述影像視圖控件返回的空字元,確定不在所述應用介面中渲染所述影像。
- 如請求項7所述的裝置,所述判斷載入模組,所述影像視圖控件透過非同步執行磁碟讀取操作,根據所述影像的儲存位址,從所述移動終端的非揮發性記憶體中獲取所述影像。
- 一種移動終端,其中,所述移動終端包括:一個或多個處理器及記憶體,記憶體儲存有程式,並且被配置成由一個或多個處理器執行以下步驟: 接收針對應用的啟動指令; 根據所述啟動指令,分別建立所述應用的主執行緒,以及載入應用介面的子執行緒;以及 當所述子執行緒在根據影像視圖控件載入所述應用介面中的影像時,判斷是否可以從快取獲取所述影像; 若是,則將所述影像渲染至所述應用介面中; 若否,則不在所述應用介面中渲染所述影像,並在所述影像視圖控件非同步的從所述移動終端的非揮發性記憶體中獲取所述影像後,將所述影像渲染至所述應用介面中。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810220488.7A CN108549562A (zh) | 2018-03-16 | 2018-03-16 | 一种图像加载的方法及装置 |
??201810220488.7 | 2018-03-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201939275A true TW201939275A (zh) | 2019-10-01 |
Family
ID=63516557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108100045A TW201939275A (zh) | 2018-03-16 | 2019-01-02 | 一種影像載入的方法及裝置 |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN108549562A (zh) |
TW (1) | TW201939275A (zh) |
WO (1) | WO2019174394A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108549562A (zh) * | 2018-03-16 | 2018-09-18 | 阿里巴巴集团控股有限公司 | 一种图像加载的方法及装置 |
CN109801210A (zh) * | 2019-01-31 | 2019-05-24 | 北京字节跳动网络技术有限公司 | 图像处理方法、装置、电子设备及计算机可读存储介质 |
CN110399582B (zh) * | 2019-07-30 | 2020-12-29 | 北京三快在线科技有限公司 | 一种页面展示的方法及装置 |
CN112825538B (zh) * | 2019-11-20 | 2022-04-12 | Oppo(重庆)智能科技有限公司 | 一种应用启动方法、装置、终端设备及存储介质 |
CN111459570B (zh) * | 2020-03-30 | 2023-03-17 | 掌阅科技股份有限公司 | Pdf插件加载方法、电子设备和计算机存储介质 |
CN115145647A (zh) * | 2021-03-30 | 2022-10-04 | 华为技术有限公司 | 应用程序的组件加载方法及相关装置 |
CN113535307A (zh) * | 2021-07-23 | 2021-10-22 | 深圳小湃科技有限公司 | 一种界面加载方法、设备及存储介质 |
CN113886228B (zh) * | 2021-09-26 | 2022-11-04 | 北京三快在线科技有限公司 | 一种兼容性检测方法、装置、存储介质及电子设备 |
CN113838182B (zh) * | 2021-11-24 | 2022-03-22 | 之江实验室 | 基于多线程的磁共振3d图像大数据量渲染方法及系统 |
CN114489641B (zh) * | 2021-12-31 | 2022-11-08 | 北京五八信息技术有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103034465B (zh) * | 2011-09-29 | 2016-04-27 | 腾讯科技(深圳)有限公司 | 图像浏览方法及浏览系统 |
CN103902318A (zh) * | 2012-12-30 | 2014-07-02 | 青岛海尔软件有限公司 | 基于Android平台的图片加载方法 |
WO2014205688A1 (en) * | 2013-06-26 | 2014-12-31 | Verizon Patent And Licensing Inc. | Image decoding method and apparatus for browser |
CN104657380A (zh) * | 2013-11-20 | 2015-05-27 | 青岛海信移动通信技术股份有限公司 | 一种图片加载方法和装置 |
CN105389159A (zh) * | 2014-09-03 | 2016-03-09 | 优视科技有限公司 | 图片渲染方法、装置和移动终端 |
CN104834544B (zh) * | 2015-05-04 | 2018-03-13 | 广州杰赛科技股份有限公司 | 数据加载方法及装置 |
CN105549820B (zh) * | 2015-12-11 | 2019-04-16 | 魅族科技(中国)有限公司 | 一种显示图形用户界面的方法及终端 |
CN107102846A (zh) * | 2016-02-19 | 2017-08-29 | 青岛海信移动通信技术股份有限公司 | 一种应用程序界面显示方法及终端 |
CN105740222A (zh) * | 2016-03-01 | 2016-07-06 | 广州阿里巴巴文学信息技术有限公司 | 用于阅读器排版的方法、设备、阅读器和电子设备 |
CN108549562A (zh) * | 2018-03-16 | 2018-09-18 | 阿里巴巴集团控股有限公司 | 一种图像加载的方法及装置 |
-
2018
- 2018-03-16 CN CN201810220488.7A patent/CN108549562A/zh active Pending
-
2019
- 2019-01-02 TW TW108100045A patent/TW201939275A/zh unknown
- 2019-01-16 WO PCT/CN2019/071871 patent/WO2019174394A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2019174394A1 (zh) | 2019-09-19 |
CN108549562A (zh) | 2018-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201939275A (zh) | 一種影像載入的方法及裝置 | |
TWI677215B (zh) | 基於即時通信的圖片發送方法和設備 | |
WO2018161813A1 (zh) | 一种资源加载方法及装置 | |
CN110496395B (zh) | 一种针对虚幻引擎的组件运行方法、系统及设备 | |
US10019298B2 (en) | Middleware interface and middleware interface generator | |
WO2021143371A1 (zh) | 一种小程序页面的生成方法、装置及设备 | |
CN110865863B (zh) | 快应用的界面显示方法、装置及存储介质 | |
CN110874217A (zh) | 快应用的界面显示方法、装置及存储介质 | |
US20190080017A1 (en) | Method, system, and device that invokes a web engine | |
CN114047960B (zh) | 操作系统运行方法及装置、电子设备和存储介质 | |
TW201941132A (zh) | 資訊展示方法、裝置及設備 | |
WO2022199284A1 (zh) | 调用栈回溯方法、装置、设备和介质 | |
CN117093352A (zh) | 基于模板的计算集群作业调度系统及方法、装置 | |
CN112256421A (zh) | 通信处理方法、装置、存储介质及电子设备 | |
CN110262749A (zh) | 一种网页操作方法、装置、容器、设备及介质 | |
CN111008050B (zh) | 页面任务执行方法、装置、终端及存储介质 | |
WO2024183458A1 (zh) | 控件处理方法、设备、系统及存储介质 | |
CN115994007B (zh) | 动画效果显示方法及电子设备 | |
CN104714806A (zh) | 基于人机界面系统的脚本处理方法及装置 | |
CN115391185A (zh) | 一种小程序的压力测试方法、装置以及设备 | |
CN117992189A (zh) | 多系统下的窗口实现方法及电子设备 | |
CN116302230A (zh) | 一种页面展示方法、装置及设备 | |
CN114860377A (zh) | 一种针对容器运维的业务处理方法、装置以及设备 | |
CN114675786A (zh) | 一种大容量存储挂载方法、装置、终端及介质 | |
CN115437551A (zh) | 数据克隆的方法、设备、存储介质及计算机程序产品 |