TW201833768A - 資源載入方法及裝置 - Google Patents

資源載入方法及裝置 Download PDF

Info

Publication number
TW201833768A
TW201833768A TW106137518A TW106137518A TW201833768A TW 201833768 A TW201833768 A TW 201833768A TW 106137518 A TW106137518 A TW 106137518A TW 106137518 A TW106137518 A TW 106137518A TW 201833768 A TW201833768 A TW 201833768A
Authority
TW
Taiwan
Prior art keywords
thread
request
event
module
web
Prior art date
Application number
TW106137518A
Other languages
English (en)
Inventor
閔洪波
朱永盛
魯振華
林志平
蔡艷明
曾旭
Original Assignee
香港商阿里巴巴集團服務有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 香港商阿里巴巴集團服務有限公司 filed Critical 香港商阿里巴巴集團服務有限公司
Publication of TW201833768A publication Critical patent/TW201833768A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/548Queue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本發明揭露了一種資源載入方法及裝置,應用於電腦技術領域。本發明中,第一執行緒向第二執行緒發送資源載入請求,其中,所述第一執行緒和所述第二執行緒位於同一程序,所述第一執行緒運行於動態語言應用運行平臺;所述第一執行緒接收所述第二執行緒根據所述資源載入請求返回的指示;所述第一執行緒根據所述指示,基於所述程序預載入的資源,對所述資源載入請求所請求載入的資源進行載入,其中,所述程序預載入的模組中包括Web引擎。採用本發明可實現Web引擎與Node.js的融合。

Description

資源載入方法及裝置
本發明關於電腦技術領域,尤其關於一種資源載入方法及裝置。
隨著移動網際網路的快速發展與HTML5(HTML是HyperText Markup Language的英文縮寫,即超文字標記語言)技術的逐步成熟,全球資訊網路(Web)應用已經成為移動端跨平臺應用開發的熱門解決方案。   Web應用透過瀏覽器獲取和顯示Web資源,以頁面形式顯示Web資源。瀏覽器的功能可透過Web引擎實現。Web引擎包含了各種元件,例如用於實現頁面渲染的渲染引擎、用於進行管理和控制的瀏覽器引擎等。   Node.js是JavaScript運行環境(runtime),也稱運行平臺,提供了多種系統級的應用程式設計發展介面(Application Programming Interface,API),用於方便地搭建回應速度快、易於擴展的網路應用。
本發明實施例提供一種資源載入方法及裝置。   本發明實施例提供了一種資源載入方法,包括:   第一執行緒向第二執行緒發送資源載入請求;其中,所述第一執行緒和所述第二執行緒位於同一程序,所述第一執行緒運行於動態語言應用運行平臺;   所述第一執行緒接收所述第二執行緒根據所述資源載入請求返回的指示;   所述第一執行緒根據所述指示,基於所述程序預載入的資源,對所述資源載入請求所請求載入的資源進行載入,其中,所述程序預載入的資源中包括Web引擎。   本發明實施例提供的一種資源載入裝置,包括:第一執行緒單元和第二執行緒單元;   所述第一執行緒單元,用於:   向所述第二執行緒單元發送資源載入請求;其中,所述第一執行緒單元和所述第二執行緒單元屬於同一程序單元,所述第一執行緒單元運行於動態語言應用運行平臺;   接收所述第二執行緒單元根據所述資源載入請求返回的指示;以及,   根據所述指示,基於所述程序單元預載入的資源,對所述資源載入請求所請求載入的資源進行載入;其中,所述程序單元預載入的模組中包括Web引擎。   本發明實施例提供的一個或多個電腦可讀媒體,所述可讀媒體上儲存有指令,所述指令被一個或多個處理器執行時,使得通訊設備執行上述方法。   本發明實施例提供的一種通訊設備,包括:一個或多個處理器;以及,一個或多個電腦可讀媒體,所述可讀媒體上儲存有指令,所述指令被所述一個或多個處理器執行時,使得所述裝置執行上述方法。   本發明的上述實施例中,應用程式的程序預載入有資源,其中,所述程序預載入的資源中包括Web引擎。同一程序中的第一執行緒向第二執行緒發送資源載入請求,所述第一執行緒運行於動態語言應用運行平臺;所述第一執行緒接收所述第二執行緒根據所述資源載入請求返回的指示;所述第一執行緒根據所述指示,基於所述程序預載入的模組和/或資源,對所述資源載入請求所請求載入的資源進行載入,從而實現了Web引擎與所述動態語言應用運行平臺的融合。
雖然本發明的概念易於進行各種修改和替代形式,但是其具體實施例已經透過附圖中的實例顯示並且將在本文中詳細描述。然而,應當理解,沒有意圖將本發明的概念限制為所揭露的特定形式,而是相反,意圖是覆蓋與本發明以及所附申請專利範圍一致的所有修改、等同物和替代物。   說明書中對“一個實施例”、“實施例”、“說明性實施例”等的引用,指示所描述的實施例可包括特定特徵、結構或特性,但是每個實施例可以或可以不必包括特定特徵、結構或特性。此外,這樣的短語不一定指的是相同的實施例。進一步地,認為在本領域技術人員的知識範圍內,當結合實施例描述特定特徵、結構或特性時,結合無論是否明確描述的其它實施例影響這樣的特徵,結構或特性。另外,應當理解,以“A、B和C中的至少一個”的形式包括在列表中的專案可以表示(A);(B);(C);(A和B);(A和C);(B和C);或(A、B和C)。類似地,以“A、B或C中的至少一個”的形式列出的專案可以表示(A);(B);(C);(A和B);(A和C);(B和C)或(A、B和C)。   在一些情況下,所揭露的實施例可以在硬體、韌體、軟體或其任何組合中實現。所揭露的實施例還可以被實現為由一個或多個暫時性或非暫時性機器可讀(例如,電腦可讀)儲存媒體攜帶或儲存的指令,其可以由一個或多個處理器讀取和執行。機器可讀儲存媒體可以體現為用於以機器可讀形式(例如,揮發性或非揮發性記憶體、媒體盤或其他媒體)儲存或傳輸資訊的任何儲存設備、機制或其他物理結構的設備)。   在附圖中,一些結構或方法特徵可以以特定佈置和/或順序顯示。然而,應當理解,可能不需要這樣的具體佈置和/或排序。相反,在一些實施例中,這些特徵可以以與說明性附圖中所示不同的方式和/或順序來佈置。另外,在特定圖中包括結構或方法特徵並不意味著暗示這種特徵在所有實施例中都是需要的,並且在一些實施例中可以不包括或可以與其他特徵組合。   作業系統用於向用戶應用提供作業系統的基礎能力,可基於動態語言應用運行平臺實現,從而為動態語言應用提供運行環境。其中,Node.js即為JavaScript的運行環境或運行平臺。   其中,動態語言是電腦程式設計語言中的一個語言類別,是一類在運行時可以動態地改變類型、結構的語言,在運行時函數和屬性可以被增加、修改和刪除。例如JavaScript、Python、Ruby等都屬於動態語言。動態語言不需要編譯即可運行,在運行時需要運行環境的支援,這個環境叫做運行時環境,它包含動態語言運行所需要的所有要素,例如Java虛擬機器、JavaScript引擎等。   以雲端作業系統(雲端OS)中的Host系統為例,它可基於Node.js實現。Node.js是JavaScript的運行環境,是建立在Chrome上的JavaScript引擎的Web應用程式框架,也就是說,作業系統基於Node.js向用戶應用提供作業系統的基礎能力。Node.js中包括多種模組,這些模組可透過將用於實現特定功能的程式碼(例如實現作業系統級服務功能的程式碼)進行封裝得到,例如可封裝為元件形式,例如這些模組中可包括實現全球定位系統(Global Positioning System,簡稱GPS)定位功能的元件、實現電源管理功能的元件等。這些模組的介面被暴露給應用層,應用層中的應用程式(例如Web應用)可透過呼叫這些模組的介面,透過JavaScript引擎解析模組中的程式碼,執行這些模組提供的方法,從而實現這些模組提供的功能。   對於Web應用來說,Web資源的載入(例如Web頁面的獲取、渲染等操作)由瀏覽器實現,瀏覽器則基於Web引擎(web engine)實現Web資源載入。目前,傳統的HTML5瀏覽器,其Web引擎中的執行緒包括兩種類型:Browser執行緒(瀏覽器執行緒)和Render執行緒(渲染執行緒)。其中,Browser執行緒為主執行緒,可為各個Web頁面的渲染提供服務和管理能力;Render執行緒為子執行緒,可基於Web引擎進行頁面渲染以及執行JavaScript程式碼。Browser執行緒可創建一個或多個Render執行緒。例如,在載入一個Web頁面的過程中,Browser執行緒創建一個Render執行緒,由該Render執行緒對該Web頁面進行渲染。如果需要載入多個Web頁面,則Browser執行緒創建多個Render執行緒,每個Render執行緒對一個Web頁面進行渲染。   圖1實例性地顯示了一種作業系統架構100。架構100包括應用層10、應用框架層20和作業系統層30。應用層10中包括一個或多個應用,其中可包括瀏覽器。程式框架層20包括動態語言應用運行平臺(例如Node.js)。作業系統層30主要用於提供作業系統層級的程式碼庫以及基本的系統服務,例如提供的系統服務可包括設備驅動服務、事件管理服務等。   瀏覽器中的Web引擎處於應用層,不具備使用Node.js提供的系統服務的能力。如果需要使Web引擎中的渲染(Render)執行緒能夠使用Node.js提供的能力,則需要在Render執行緒啟動過程中啟動Node.js。考慮到每載入一個Web頁面就會啟動一個Render執行緒,也就需要啟動一次Node.js,因此導致載入Web頁面的資源開銷和時間開銷較大。   如何將Web引擎與Node.js融合,將Web引擎作為系統服務的一部分,使基於HTML請求的web頁面存取處理過程能夠使用系統提供的各種能力,是目前業界面臨的問題。   本發明實施例基於上述架構,使Web引擎可以存取到Node.js提供的能力,進一步地與上述方式相比還可以減少資源開銷和時間開銷。下面結合附圖對本發明實施例進行詳細描述。   本發明實施例中,動態語言應用運行平臺啟動時可預載入各種資源,其中包括Web引擎。   以動態語言應用運行平臺為Node.js為例,Node.js啟動過程中,Node.js程序被創建。Node.js程序預載入各種能力,這裡所說的“能力”也可稱為資源,可包括前述所描述的用於實現特定功能的模組(例如元件),還可以包括一些配置資訊等,例如上下文、事件佇列等。Node.js所預載入的能力中至少包括Web引擎(例如Android系統中的Webview元件(即web視圖元件)),進一步還可包括Node.js提供的能力。其中,Node.js提供的能力可包括:Node.js中的模組(例如用於提供特定功能或服務的元件)和/或JavaScript運行環境相關資訊。Node.js中的模組可透過對用於實現特定功能的JavaScript程式碼封裝得到。每個模組均具有介面(例如API),可提供給應用層供應用程式呼叫。JavaScript運行環境相關資訊可包括但不限於JavaScript引擎的上下文、事件迴圈相關配置中的一種或多種。其中,上下文用於描述引擎內部的各種物件、狀態和功能。JavaScript引擎的上下文中可包括由Node.js程序所預載入的模組的介面(如API)。事件迴圈相關配置具體可包括Node.js的事件佇列的配置,例如事件佇列所在的記憶體區域位置、佇列大小等,以便向該事件佇列中存取Node.js事件請求和Web事件請求。   在一些實施例中,可將預載入的能力(例如Web引擎)封裝為動態語言應用運行平臺中的標準模組,作為該平臺的一個標準模組預載入到該平臺中。圖2以該平臺為Node.js為例,實例性地顯示了預載入有Web引擎的Node.js的示意圖。   在一些實施例中,Web引擎由c/c++語言編寫,而Node.js支援JavaScript語言,因此需要將Web引擎的符合c/c++標準的API映射為Node.js中符合JavaScript標準的API,並將映射得到的符合JavaScript標準的API提供給應用層,Node.js中保存該API的映射關係。圖3實例性地顯示了Web引擎的API映射關係示意圖。其中,Web引擎中可包括多種元件,例如Window system元件(視窗系統元件)、UI Elements元件(用戶介面部件元件)、Layout元件(佈局元件)、Event Handling元件(事件處理元件)等,這些符合c/c++標準的元件的API被一一映射為對應的符合JavaScript標準的API。   在一些實施例中,進一步地,預載入的能力還可包括但不限於以下中的一種或多種組合:   - 作業系統提供的能力   作業系統提供的能力可包括:作業系統層提供的系統服務等。作業系統層中可包括用於提供系統服務的模組,這些模組可由用於實現特定能力的程式碼封裝得到。每個模組均具有介面(例如API)。本發明實施例中,可透過將作業系統層中的模組的API添加到動態語言引擎(例如JavaScript引擎)的上下文中,實現對作業系統能力的預載入。   - 用戶自訂的能力   用戶自訂的能力,即用戶自訂的用於實現特定功能的程式碼,可被封裝為模組,每個模組均具有介面(如API)。本發明實施例中,可透過將用戶自訂的模組的API添加到動態語言引擎(例如JavaScript引擎)的上下文中,實現對用戶自訂能力的預載入。   在一些實施例中,Node.js中的JavaScript上下文中的模組介面(例如API)被添加到Web引擎的JavaScript上下文中,這樣,對於應用程式的開發者來說,可利用Web引擎的JavaScript上下文中包含的API進行應用程式開發,當該應用程式運行時,Node.js執行緒可透過這些介面呼叫相應的模組實現相應的功能,即存取這些介面對應的能力。由於Node.js的上行文中的模組介面可包括Node.js中的模組介面,還可包括作業系統提供的模組介面以及用戶自訂的模組的介面,從而使得Node.js執行緒能夠存取的能力更加豐富。Node.js的JavaScript上下文中包含有Web引擎的JavaScript上下文中的模組介面也可被添加到Node.js的JavaScript上下文中。   Node.js程序中的主執行緒稱為Node.js執行緒,它可以共用Node.js程序的運行環境以及Node.js程序預載入的能力。也就是說,Node.js執行緒可以存取Node.js程序所預載入的各種能力。由於Node.js程序預載入了Web引擎,因此,Node.js執行緒可以基於Web引擎實現Web引擎所提供的功能,例如頁面渲染功能。   圖4實例性地顯示了預載入Web引擎後Node.js執行緒和瀏覽器執行緒(Browser執行緒)及相關資源的示意圖。如圖所示,應用程序中包括Node.js執行緒和Brower執行緒,Node.js執行緒和Browser執行緒之間可以通訊。Node.js執行緒基於Node.js的事件迴圈機制進行事件的處理。Node.js執行緒可基於Web引擎實現Web資源載入的操作。作為一個例子,Node.js執行緒可透過呼叫Web引擎提供的頁面載入方法,實現頁面載入。在頁面載入方法的執行過程中,Node.js執行緒可基於Web引擎中的JavaScript上下文中的API,呼叫相應的模組(元件)。JavaScript引擎對被呼叫的模組進行解析,獲得作業系統層提供給JavaScript引擎的介面,並基於該介面呼叫作業系統層提供的能力(例如圖中的設備能力、網路服務、電源管理等),以實現頁面載入操作。對於圖4中所示的應用程序來說,其中的Node.js執行緒為主執行緒,Browser執行緒為子執行緒,即Browser執行緒可由Node.js執行緒創建得到,它們之間可基於執行緒間通訊機制進行通訊。該應用程序與其他程序(例如圖中位於作業系統層的網路服務模組對應的程序)之間基於程序間通訊(Inter-Process Communication,IPC)機制進行通訊。   例如,Node.js執行緒可呼叫圖4中的模組1(網路模組)以執行頁面獲取方法,在該方法的執行過程中,可基於作業系統層提供的介面呼叫作業系統層提供的網路服務,以獲取所請求的頁面。再例如,Node.js執行緒可呼叫圖4中的模組2(能力獲取模組)以執行設備能力(例如顯示幕幕大小等設備資訊)的獲取方法以及根據該設備能力確定顯示模式,在該方法的執行過程中,可基於作業系統層提供的介面呼叫作業系統層提供的設備能力,以獲取設備能力資訊。   圖5a實例性地顯示了本發明實施例提供的預載入流程。如圖所示,在S510中,程序啟動(例如接收到在瀏覽器視窗中打開一個頁面的事件後啟動一個Node.js程序)。在S511~S514中,該程序執行初始化過程,在該過程中,該程序預載入網路模組、系統模組、渲染引擎等模組,具體預載入過程可參見前述實施例的描述。該程序可以是Node.js程序。   進一步地,在S511~S514中,第一執行緒被創建。第一執行緒透過呼叫Web引擎提供的新建物件的方法創建Web元件物件,並啟動該Web元件物件,創建第二執行緒。此後第一執行緒即可基於該Web元件物件,透過呼叫該物件提供的資源載入方法,在瀏覽器視窗中載入頁面。其中,第一執行緒可以是Node.js執行緒,第二執行緒可以是Browser執行緒。   圖5b實例性地顯示了本發明實施例提供的資源載入流程。如圖所示,在S520~S523中,當第一執行緒獲得Web事件請求後(例如用戶透過瀏覽器發送HTML請求,以請求打開一個web頁面,則用戶的上述操作觸發生成web事件請求),執行資源載入過程,以載入所請求的web頁面,該資源載入過程可包括資源的獲取以及頁面的渲染等。在該資源載入過程中,第一執行緒向第二執行緒發送資源載入請求,接收第二執行緒根據該資源載入請求返回的指示,根據該指示,基於第一執行緒所在的程序預載入的資源,對資源載入請求所請求載入的資源進行載入。該過程中,第二執行緒主要用於實現管理和控制功能可指示第一執行緒呼叫資源載入過程所需的系統模組,以實現該資源載入過程;資源獲取以及頁面渲染等操作由第一執行緒執行。第一執行緒可透過呼叫預載入的模組,例如網路模組、系統模組等,執行相應的任務。需要說明的是,第一執行緒每次獲得Web事件請求後,可根據預載入的模組對該事件請求進行回應。   上述過程中,第二執行緒向第一執行緒發送的指示可包括有關資源載入的控制資訊(例如控制指令),或者資源載入操作需要使用的資源的指示資訊(例如需要呼叫的API),或者資源載入所需的系統資訊。作為一個例子,第二執行緒可以向第一執行緒發送的指示中可包括以下控制資訊中的一種,以控制第一執行緒的網頁載入操作:開始載入網頁的控制資訊、停止載入網頁的控制資訊,載入上一頁或下一頁的資訊。作為另一個例子,第二執行緒向第一執行緒發送的指示中可攜帶系統模組提供的API,使得第一執行緒可以利用該API呼叫相關系統模組的函數,以實現諸如加減音量、動態獲取設備電池情況、即時獲取地理位置或設備震動等功能。再例如,第二執行緒向第一執行緒發送的指示也可以包括系統資訊(即第第二執行緒將系統資訊傳遞給第一執行緒),該系統資訊可供第一執行緒使用,例如該系統資訊可包括設備的媒體存取控制(Media Access Control,MAC)位址、設備標識,用戶帳戶資訊等。   作為一個例子,web頁面載入過程可包括:Node.js執行緒基於網路模組獲取Web事件請求所請求的HTML文件;解析獲得到的HTML文件,將HTML文件中的標籤轉換為文件物件模型(Document Object Model,DOM)樹中的DOM節點,得到DOM樹結構;解析層疊樣式表(Cascading Style Sheets,簡稱CSS)檔,解析得到的資訊與HTML文件中可見的指令(如<b></b>等)被用來構建渲染樹(Render樹),這棵樹主要由一些包含顏色和寬高等屬性組成的矩形組成,它們將依次按順序顯示在螢幕上;Node.js執行緒根據Render樹執行佈局過程,確定每個節點在螢幕上對應的座標及其覆蓋和回流情況等,遍歷該Render樹,使用UI後端層繪製每個節點。   在一些實施例中,在S521中,Node.js執行緒可使用Node.js中預載入的資源執行該方法。例如,Node.js執行緒可基於Web引擎的JavaScript上下文中模組的介面,透過呼叫對應模組提供的方法,載入所請求的資源。由於Web引擎的JavaScript上下文中的介面,可包括Node.js中原有的模組的介面,還可包括作業系統層中的模組的介面以及用戶自訂的模組的介面,從而將各種能力融合在Web引擎中。   在另一些實施例中,在S521中,Node.js執行緒可基於在Node.js啟動過程中初始化的Node.js中的JavaScript引擎,對所請求載入的Web資源進行載入,而無需再次初始化該JavaScript引擎。具體地,Node.js執行緒可根據Web引擎提供的用於資源載入的模組的介面,呼叫相應的模組;透過Node.js程序預載入的JavaScript引擎對該模組進行解析,得到該模組所呼叫的作業系統中的模組介面;根據解析得到的模組介面呼叫作業系統中的相應模組。   Node.js和Web引擎均採用事件迴圈(Event loop)機制。現有技術中,Web引擎的事件迴圈與Node.js的事件迴圈彼此獨立。本發明實施例中,Web引擎被預載入到動態語言應用運行平臺(如Node.js)中,因此Web引擎的事件與該平臺的事件可基於事件佇列進行事件迴圈。在沒有事件發生的情況下,事件迴圈處於等候狀態並阻塞,當有事件發生時(例如Web引擎有事件發生時),會將事件迴圈喚醒。例如,當Web引擎有事件發生時,可透過非同步方式喚醒事件迴圈,該Web引擎的事件被儲存於事件佇列。該事件佇列通常採用先進先出的機制。   圖6以Node.js為例,實例性地顯示了本發明實施例的事件迴圈機制。如圖所示,Node.js事件請求和Web事件請求按照發生的先後順序被儲存在事件佇列中。在本發明實施例中,將Web事件請求作為一個整體參與事件迴圈。例如可以將Web引擎事件儲存為一個子佇列。Node.js執行緒從事件佇列中讀取事件進行回應時,如果當前讀取到的是該子佇列,根據排程策略的規定,將該子佇列中的全部事件請求取出,Web引擎事件關聯的處理常式(Handler)會處理該子佇列中的所有事件請求,在全部回應完成後,返回到事件迴圈,從事件佇列繼續讀取其他的事件請求進行回應,實現了將Web引擎中的事件處理融入到了Node的事件迴圈中。在另外的例子中,排程策略也可以規定:如果當前讀取到的是Web引擎對應的子佇列,則根據預設的處理能力(例如規定一次取出K個事件請求進行回應,K的取值可設置),將該子佇列中的相應數量的事件請求取出,Web事件請求的處理常式(Handler)會處理所取出的Web事件請求,在回應這些事件請求後,返回到事件迴圈。   透過以上描述可以看出,本發明的上述實施例中,Node.js程序預載入有資源,其中,所述Node.js程序預載入的資源中包括Web引擎。同一Node.js程序中的Node.js執行緒向瀏覽器執行緒發送資源載入請求,其中,所述Node.js執行緒為主執行緒,所述瀏覽器執行緒為子執行緒;所述Node.js執行緒接收所述瀏覽器執行緒根據所述資源載入請求返回的指示;所述Node.js執行緒根據所述指示,基於所述Node.js程序預載入的資源,對所述資源載入請求所請求載入的資源進行載入,從而實現了Web引擎與Node.js的融合。   由於Web引擎的通用性,因此具有較好的跨平臺能力。本發明實施例可在保證Web引擎跨平臺應用的前提下,將其融入Node.js,使其能夠存取Node.js提供的能力,為提供功能更加靈活和豐富的應用提供了可能性。   本發明的上述實施例可應用於行動終端,例如手機、智慧穿戴設備、車載設備、個人數位助理(Personal Digital Assistant,PDA)等。以應用於基於雲端作業系統的手機為例,採用本發明實施例,可由Node.js的主執行緒基於Web引擎實現頁面渲染,從而使得頁面渲染操作可使用Node.js主執行緒所能存取的能力,實現了Node.js與Web引擎的融合。   基於相同的技術構思,本發明實施例還提供了一種資源載入裝置,可實現前述實施例描述的資源載入流程。   圖7實例性地顯示了本發明實施例提供的資源載入裝置的結構示意圖。該裝置可包括:第一執行緒單元701和第二執行緒單元702,第一執行緒單元701和所述第二執行緒單元702屬於同一程序單元,所述第一執行緒單元運行於動態語言應用運行平臺。進一步地,還裝置還可包括事件排程單元703。   第一執行緒單元701用於:向所述第二執行緒單元發送資源載入請求,接收第二執行緒單元702根據所述資源載入請求返回的指示;以及,根據所述指示,基於所述程序單元預載入的資源,對所述資源載入請求所請求載入的資源進行載入;其中,所述程序單元預載入的模組中包括Web引擎。   可選地,所述程序對應的事件佇列中包括所述Web引擎對應的子佇列,所述子佇列中包括Web事件請求。事件排程單元703用於:從所述事件佇列中獲取待處理的事件請求,若獲取到所述子佇列,則按照時間先後順序獲取所述子佇列中的Web事件請求,並將獲取到的Web事件請求發送給所述第一執行緒單元。第一執行緒單元701具體用於:接收到Web事件請求後向所述第二執行緒單元702發送資源載入請求。   可選地,所述程序對應的事件佇列中還包括動態語言應用運行平臺事件請求。事件排程單元703還用於:所述子佇列中的Web事件請求處理完成後,返回到所述事件佇列,並獲取待處理的動態語言應用運行平臺事件請求;或者,所述子佇列中的設定數量的Web事件請求處理完成後,返回到所述事件佇列,並獲取待處理的動態語言應用運行平臺事件請求。   可選地,所述程序單元具體用於:啟動時進行資源的預載入,所預載入的資源中包括所述Web引擎,以及包括動態語言應用運行平臺所提供的模組、作業系統提供的模組、自訂的模組中的一種或多種組合;其中,所述模組透過對實現特定功能的程式碼進行封裝得到。   可選地,所述程序單元具體用於:啟動時進行資源的預載入,所預載入的資源中包括動態語言上下文中包括Web引擎提供的模組的介面,以及所述程序預載入的模組的介面,所述程序預載入的模組包括:動態語言應用運行平臺所提供的模組、作業系統提供的模組、自訂的模組中的一種或多種組合。   可選地,第一執行緒單元701具體用於:根據所述Web引擎提供的介面,呼叫相應的模組,被呼叫的模組用於載入所請求載入的資源;透過所述程序預載入的動態語言引擎對該模組進行解析,得到該模組所呼叫的作業系統中的模組介面;根據解析得到的模組介面呼叫作業系統中的相應模組。   可選地,所述第一執行緒單元具體用於:根據web頁面存取請求,向第二執行緒發送資源載入請求,所述資源載入請求用於請求載入所請求的web頁面的資源。   可選地,所述第一執行緒單元為所在程序中的主執行緒單元,所述第二執行緒單元為所在程序中的子執行緒單元。   可選地,所述動態語言應用運行平臺為Node.js,所述第一執行緒單元為Node.js執行緒單元,所述第二執行緒單元為瀏覽器執行緒單元。   基於相同的技術構思,本發明實施例還提供了一種裝置800,該裝置800可實現前述實施例描述的流程。   圖8實例性地顯示了根據各種實施例的實例裝置800。裝置800可包括一個或多個處理器802,系統控制邏輯801耦接於至少一個處理器802,非揮發性記憶體(non-volatile memory,NMV)/記憶體804耦接於系統控制邏輯801,網路介面806耦接於系統控制邏輯801。   處理器802可包括一個或多個單核處理器或多核處理器。處理器802可包括任何一般用途處理器或專用處理器(如影像處理器、應用處理器基頻處理器等)的組合。   一個實施例中的系統控制邏輯801,可包括任何適當的介面控制器,以提供到處理器802中的至少一個的任何合適的介面,和/或提供到與系統控制邏輯801通訊的任何合適的設備或元件的任何合適的介面。   一個實施例中的系統控制邏輯801,可包括一個或多個記憶體控制器,以提供到系統記憶體803的介面。系統記憶體803用來載入以及儲存資料和/或指令。例如,對應裝置800,在一個實施例中,系統記憶體803可包括任何合適的揮發性記憶體。   NVM/記憶體804可包括一個或多個有形的非暫時的電腦可讀媒體,用於儲存資料和/或指令。例如,NVM/記憶體804可包括任何合適的非揮發性儲存裝置,如一個或多個硬碟(hard disk device,HDD),一個或多個光碟(compact disk,CD),和/或一個或多個數位多功能光碟(digital versatile disk,DVD)。   NVM/記憶體804可包括儲存資源,該儲存資源實體上是該系統所安裝的或者可以被存取的設備的一部分,但不一定是設備的一部分。例如,NVM/記憶體804可經由網路介面806被網路存取。   系統記憶體803以及NVM/記憶體804可分別包括臨時的或持久的指令810的副本。指令810可包括當由處理器802中的至少一個執行時導致裝置800實現圖5a、圖5b描述的方法之一或組合的指令。各實施例中,指令810或硬體、韌體,和/或軟體元件可另外地/可替換地被置於系統控制邏輯801,網路介面806和/或處理器802。   網路介面806可包括一個接收器來為裝置800提供無線介面來與一個或多個網路和/或任何合適的設備進行通訊。網路介面806可包括任何合適的硬體和/或韌體。網路介面806可包括多個天線來提供多輸入多輸出無線介面。在一個實施例中,網路介面806可包括一個網路介面卡、一個無線網路介面卡、一個電話數據機,和/或無線數據機。   在一個實施例中,處理器802中的至少一個可以與用於系統控制邏輯的一個或多個控制器的邏輯一起封裝。在一個實施例中,處理器中的至少一個可以與用於系統控制邏輯的一個或多個控制器的邏輯一起封裝以形成系統級封裝。在一個實施例中,處理器中的至少一個可以與用於系統控制邏輯的一個或多個控制器的邏輯整合在相同的晶粒上。在一個實施例中,處理器中的至少一個可以與用於系統控制邏輯的一個或多個控制器的邏輯整合在相同的晶粒上以形成系統晶片。   裝置800可進一步包括輸入/輸出裝置805。輸入/輸出裝置805可包括用戶介面意於使用戶與裝置800進行互動,可包括週邊元件介面,其被設計為使得週邊元件能夠與系統互動,和/或,可包括感測器,意於確定環境條件和/或有關裝置800的位置資訊。
100‧‧‧雲端作業系統架構
10‧‧‧應用層
20‧‧‧應用框架層
30‧‧‧作業系統層
701‧‧‧第一執行緒單元
702‧‧‧第二執行緒單元
703‧‧‧事件排程單元
800‧‧‧裝置
801‧‧‧系統控制邏輯
802‧‧‧處理器(一個或多個)
803‧‧‧系統記憶體
804‧‧‧NVM/記憶體
805‧‧‧輸入/輸出裝置
806‧‧‧網路介面
810‧‧‧指令
本發明的實施例透過實例而非限制的方式顯示在所附附圖中,類似的附圖標記表示類似的元素。   圖1根據一些實施例實例性地顯示了基於Node.js的雲端作業系統架構100;   圖2根據一些實施例實例性地顯示了預載入有Web引擎的Node.js的示意圖;   圖3根據一些實施例實例性地顯示了Web引擎的API映射關係示意圖;   圖4根據一些實施例實例性地顯示了預載入Web引擎後Node.js執行緒和Browser執行緒及相關資源的示意圖;   圖5a根據一些實施例實例性地顯示了預載入流程示意圖   圖5b根據一些實施例實例性地顯示了Web資源載入流程示意圖;   圖6根據一些實施例實例性地顯示了事件迴圈機制示意圖;   圖7根據一些實施例實例性地顯示了資源載入裝置的結構示意圖;   圖8根據一些實施例實例性地顯示了一種裝置示意圖。

Claims (18)

  1. 一種資源載入方法,包括:   第一執行緒向第二執行緒發送資源載入請求;其中,所述第一執行緒和所述第二執行緒位於同一程序,所述第一執行緒運行於動態語言應用運行平臺;   所述第一執行緒接收所述第二執行緒根據所述資源載入請求返回的指示;   所述第一執行緒根據所述指示,基於所述程序預載入的資源,對所述資源載入請求所請求載入的資源進行載入,其中,所述程序預載入的資源中包括Web引擎。
  2. 如申請專利範圍第1項所述的方法,其中,所述程序對應的事件佇列中包括所述Web引擎對應的子佇列,所述子佇列中包括Web事件請求;   所述第一執行緒向所述第二執行緒發送資源載入請求,包括:   所述第一執行緒從所述事件佇列中獲取待處理的事件請求;   若獲取到所述子佇列,則按照時間先後順序獲取所述子佇列中的Web事件請求,並在獲取到Web事件請求後向所述第二執行緒發送資源載入請求。
  3. 如申請專利範圍第2項所述的方法,其中,所述程序對應的事件佇列中還包括動態語言應用運行平臺事件請求;   所述方法還包括:   所述子佇列中的Web事件請求處理完成後,返回到所述事件佇列,並獲取待處理的動態語言應用運行平臺事件請求;或者,   所述子佇列中的設定數量的Web事件請求處理完成後,返回到所述事件佇列,並獲取待處理的動態語言應用運行平臺事件請求。
  4. 如申請專利範圍第1項所述的方法,其中,還包括:   所述程序啟動時進行資源的預載入,所預載入的資源中包括所述Web引擎,以及包括動態語言應用運行平臺所提供的模組、作業系統提供的模組、自訂的模組中的一種或多種組合;其中,所述模組透過對實現特定功能的程式碼進行封裝得到。
  5. 如申請專利範圍第1項所述的方法,其中,所述對所述資源載入請求所請求載入的資源進行載入,包括:   根據所述Web引擎提供的介面呼叫相應的模組,被呼叫的模組用於載入所請求載入的資源;   透過所述程序預載入的動態語言引擎對該模組進行解析,得到該模組所呼叫的作業系統中的模組介面;   根據解析得到的模組介面呼叫作業系統中的相應模組。
  6. 如申請專利範圍第1至5項中任一項所述的方法,其中,所述第一執行緒向第二執行緒發送資源載入請求,包括:   所述第一執行緒根據web頁面存取請求,向第二執行緒發送資源載入請求,所述資源載入請求用於請求載入所請求的web頁面的資源。
  7. 如申請專利範圍第1至5項中任一項所述的方法,其中,所述第一執行緒為所在程序中的主執行緒,所述第二執行緒為所在程序中的子執行緒。
  8. 如申請專利範圍第1至5項中任一項所述的方法,其中,所述動態語言應用運行平臺為Node.js,所述第一執行緒為Node.js執行緒,所述第二執行緒為瀏覽器執行緒。
  9. 一種資源載入裝置,包括:第一執行緒單元和第二執行緒單元;   所述第一執行緒單元,用於:   向所述第二執行緒單元發送資源載入請求;其中,所述第一執行緒單元和所述第二執行緒單元屬於同一程序單元,所述第一執行緒單元運行於動態語言應用運行平臺;   接收所述第二執行緒單元根據所述資源載入請求返回的指示;以及,   根據所述指示,基於所述程序單元預載入的資源,對所述資源載入請求所請求載入的資源進行載入;其中,所述程序單元預載入的模組中包括Web引擎。
  10. 如申請專利範圍第9項所述的裝置,其中,所述程序對應的事件佇列中包括所述Web引擎對應的子佇列,所述子佇列中包括Web事件請求;   還包括:事件排程單元,所述事件排程單元用於:   從所述事件佇列中獲取待處理的事件請求;   若獲取到所述子佇列,則按照時間先後順序獲取所述子佇列中的Web事件請求,並將獲取到的Web事件請求發送給所述第一執行緒單元;   所述第一執行緒單元具體用於:接收到Web事件請求後向所述第二執行緒單元發送資源載入請求。
  11. 如申請專利範圍第10項所述的裝置,其中,所述程序對應的事件佇列中還包括動態語言應用運行平臺事件請求;   所述事件排程單元還用於:   所述子佇列中的Web事件請求處理完成後,返回到所述事件佇列,並獲取待處理的動態語言應用運行平臺事件請求;或者,   所述子佇列中的設定數量的Web事件請求處理完成後,返回到所述事件佇列,並獲取待處理的動態語言應用運行平臺事件請求。
  12. 如申請專利範圍第9項所述的裝置,其中,所述程序單元具體用於:   啟動時進行資源的預載入,所預載入的資源中包括所述Web引擎,以及包括動態語言應用運行平臺所提供的模組、作業系統提供的模組、自訂的模組中的一種或多種組合;其中,所述模組透過對實現特定功能的程式碼進行封裝得到。
  13. 如申請專利範圍第9項所述的裝置,其中,所述第一執行緒單元具體用於:   根據所述Web引擎提供的介面呼叫相應的模組,被呼叫的模組用於載入所請求載入的資源;   透過所述程序預載入的動態語言引擎對該模組進行解析,得到該模組所呼叫的作業系統中的模組介面;   根據解析得到的模組介面呼叫作業系統中的相應模組。
  14. 如申請專利範圍第9至13項中任一項所述的裝置,其中,所述第一執行緒單元具體用於:根據web頁面存取請求,向第二執行緒發送資源載入請求,所述資源載入請求用於請求載入所請求的web頁面的資源。
  15. 如申請專利範圍第9至13項中任一項所述的裝置,其中,所述第一執行緒單元為所在程序中的主執行緒單元,所述第二執行緒單元為所在程序中的子執行緒單元。
  16. 如申請專利範圍第9至13項中任一項所述的裝置,其中,所述動態語言應用運行平臺為Node.js,所述第一執行緒單元為Node.js執行緒單元,所述第二執行緒單元為瀏覽器執行緒單元。
  17. 一種電腦可讀媒體,所述可讀媒體上儲存有指令,所述指令被一個或多個處理器執行時,使得通訊設備執行如申請專利範圍第1至8項中任一項所述的方法。
  18. 一種通訊設備,包括:   一個或多個處理器;以及   一個或多個電腦可讀媒體,所述可讀媒體上儲存有指令,所述指令被所述一個或多個處理器執行時,使得所述裝置執行如申請專利範圍第1至8項中任一項所述的方法。
TW106137518A 2017-03-08 2017-10-31 資源載入方法及裝置 TW201833768A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710137173.1A CN108572965B (zh) 2017-03-08 2017-03-08 一种资源加载方法及装置
??201710137173.1 2017-03-08

Publications (1)

Publication Number Publication Date
TW201833768A true TW201833768A (zh) 2018-09-16

Family

ID=63448060

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106137518A TW201833768A (zh) 2017-03-08 2017-10-31 資源載入方法及裝置

Country Status (4)

Country Link
US (1) US11210109B2 (zh)
CN (1) CN108572965B (zh)
TW (1) TW201833768A (zh)
WO (1) WO2018161813A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108595228B (zh) 2018-05-10 2021-03-12 Oppo广东移动通信有限公司 应用程序预测模型建立方法、装置、存储介质及移动终端
CN108614722B (zh) 2018-05-10 2020-09-08 上海瑾盛通信科技有限公司 应用程序预加载方法、装置、存储介质及终端
CN108595227A (zh) 2018-05-10 2018-09-28 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及移动终端
CN108710513B (zh) 2018-05-15 2020-07-21 Oppo广东移动通信有限公司 应用程序启动方法、装置、存储介质及终端
CN108762843B (zh) * 2018-05-29 2020-05-05 Oppo广东移动通信有限公司 应用程序的预加载方法、装置、存储介质及智能终端
CN108804157A (zh) 2018-06-05 2018-11-13 Oppo广东移动通信有限公司 应用程序预加载方法、装置、存储介质及终端
US20200186623A1 (en) * 2018-12-11 2020-06-11 Microsoft Technology Licensing, Llc Performant retrieval and presentation of content
US11176204B2 (en) * 2018-12-13 2021-11-16 Business Objects Software Limited Application runtime for cloud-based analytics engine
CN111382381B (zh) * 2018-12-28 2023-07-11 北京字节跳动网络技术有限公司 一种用户数据共享方法、装置、移动终端及存储介质
CN110083416B (zh) * 2019-03-25 2021-10-15 华为技术有限公司 一种资源加载的方法和装置
CN110471757B (zh) * 2019-03-29 2023-04-14 重庆长安汽车股份有限公司 一种车载智能天线***的软件架构及汽车
CN112825538B (zh) * 2019-11-20 2022-04-12 Oppo(重庆)智能科技有限公司 一种应用启动方法、装置、终端设备及存储介质
CN111159615B (zh) * 2019-12-31 2024-01-02 新方正控股发展有限责任公司 网页处理方法和装置
CN111309421B (zh) * 2020-02-11 2021-05-14 腾讯科技(深圳)有限公司 界面资源的加载方法、装置、终端及存储介质
CN111756831B (zh) * 2020-06-22 2023-05-30 北京达佳互联信息技术有限公司 服务器预加载方法、装置、服务器及存储介质
CN114428922A (zh) * 2022-01-24 2022-05-03 中国工商银行股份有限公司 页面加载方法、装置、终端设备及存储介质

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807570B1 (en) * 1997-01-21 2004-10-19 International Business Machines Corporation Pre-loading of web pages corresponding to designated links in HTML
US6988140B2 (en) * 2001-02-23 2006-01-17 Sun Microsystems, Inc. Mechanism for servicing connections by disassociating processing resources from idle connections and monitoring the idle connections for activity
US20090024986A1 (en) 2007-07-19 2009-01-22 Microsoft Corporation Runtime code modification
US8572682B2 (en) 2009-12-21 2013-10-29 Sap Ag System and method of accessing data objects in a dynamic language environment
US20120167122A1 (en) * 2010-12-27 2012-06-28 Nokia Corporation Method and apparatus for pre-initializing application rendering processes
US8910185B2 (en) * 2011-10-28 2014-12-09 International Business Machines Corporation Message queuing application access to specific API services through a generic API interface integrating a message queue
US9171348B2 (en) * 2012-01-23 2015-10-27 Google Inc. Rendering content on computing systems
CN103593238A (zh) * 2012-08-16 2014-02-19 腾讯科技(深圳)有限公司 控制应用程序编程接口调用的方法及装置
US9565233B1 (en) * 2013-08-09 2017-02-07 Google Inc. Preloading content for requesting applications
US9330074B2 (en) * 2013-10-31 2016-05-03 Google Inc. Style sheet speculative preloading
CN104683294B (zh) * 2013-11-27 2019-01-18 阿里巴巴集团控股有限公司 一种数据处理方法和***
US9569191B2 (en) 2014-09-10 2017-02-14 Soundspectrum, Inc. Dynamic programming platform for implementing bulk data operators in a multithreaded environment
CN105607895B (zh) * 2014-11-21 2021-03-02 阿里巴巴集团控股有限公司 一种基于应用程序编程接口的应用程序的运行方法和装置
US10169481B2 (en) * 2015-02-18 2019-01-01 Adobe Systems Incorporated Method for intelligent web reference preloading based on user behavior prediction
CN105701246A (zh) * 2015-11-25 2016-06-22 青岛海信电器股份有限公司 一种基于web应用的终端信息的加载方法与装置
CN105912689B (zh) * 2016-04-20 2020-04-21 郑州悉知信息科技股份有限公司 一种网站显示方法、装置及***

Also Published As

Publication number Publication date
CN108572965B (zh) 2020-03-31
WO2018161813A1 (zh) 2018-09-13
US20200057658A1 (en) 2020-02-20
US11210109B2 (en) 2021-12-28
CN108572965A (zh) 2018-09-25

Similar Documents

Publication Publication Date Title
TW201833768A (zh) 資源載入方法及裝置
WO2018161812A1 (zh) 一种用户界面渲染方法及装置
US20240095043A1 (en) Execution of sub-application processes within application program
US10324734B2 (en) Application containers
WO2016192556A1 (zh) 接口调用方法、装置及终端
US9619304B2 (en) Automatic connections between application components
US8978023B2 (en) Canonical mechanism for securely assembling features into a mobile application
US20240231890A1 (en) Memory management method and electronic device
US9075663B2 (en) Cloud-based web workers and storages
US11706331B2 (en) Information processing method and apparatus, storage medium, and electronic device
US8832690B1 (en) Multi-threaded virtual machine processing on a web page
US10564988B1 (en) Deploying cross-platform applications on mobile devices with native and web components
EP2932390B1 (en) Inversion-of-control component service models for virtual environments
US9081896B1 (en) Generating a replacement binary for emulation of an application
US20140365861A1 (en) Prefetching binary data for use by a browser plugin
US20130219415A1 (en) Method for executing hybrid web application and apparatus therefor
US20140208326A1 (en) File presenting method and apparatus for a smart terminal
CN110780930B (zh) 启动Android***的方法、装置、电子设备及存储介质
CN112256421B (zh) 通信处理方法、装置、存储介质及电子设备
CN113010170A (zh) 一种基于Vue3组件的页面渲染方法、装置、介质及电子设备
WO2023087875A1 (zh) 进程调度方法和终端设备
US20170083387A1 (en) High-performance computing framework for cloud computing environments
WO2021021365A1 (en) Client application for web application execution
CN115421693A (zh) 微前端架构的实现方法、装置、计算机设备和存储介质
CN114138507B (zh) Python程序服务化方法、装置及计算机可读存储介质