本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種用于對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試的方法和設(shè)備。
背景技術(shù):
目前,在對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試時(shí),調(diào)試人員可能需要根據(jù)調(diào)試結(jié)果來(lái)對(duì)移動(dòng)應(yīng)用所對(duì)應(yīng)的程序文件進(jìn)行多次修改,并且,隨著移動(dòng)應(yīng)用中功能的不斷完善和增加,移動(dòng)應(yīng)用中經(jīng)常會(huì)存在各種非Native語(yǔ)言開發(fā)的功能,如線上修復(fù)邏輯、動(dòng)態(tài)增加功能等;然而,現(xiàn)有的集成開發(fā)環(huán)境的編譯調(diào)試功能無(wú)法實(shí)現(xiàn)針對(duì)非Native語(yǔ)言開發(fā)的功能的調(diào)試,且在調(diào)試過程中,每當(dāng)修改移動(dòng)應(yīng)用所對(duì)應(yīng)的程序文件之后,均需進(jìn)行重新編譯,才能基于重新編譯后啟動(dòng)的移動(dòng)應(yīng)用來(lái)進(jìn)行調(diào)試,這使得調(diào)試過程中可能需要多次執(zhí)行重新編譯操作,時(shí)間花銷極大,且調(diào)試流程復(fù)雜,干擾因素較多。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是提供一種用于對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試的方法和設(shè)備。
根據(jù)本發(fā)明的一個(gè)方面,提供一種用于對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試的方法,其中,該方法包括以下步驟:
當(dāng)監(jiān)聽到鍵盤事件信息時(shí),移動(dòng)應(yīng)用根據(jù)所述鍵盤事件信息,向已啟動(dòng)的本地服務(wù)器發(fā)送文件請(qǐng)求;
所述本地服務(wù)器接收來(lái)自所述移動(dòng)應(yīng)用的文件請(qǐng)求,并向所述移動(dòng)應(yīng)用提供與所述文件請(qǐng)求相對(duì)應(yīng)的本地文件;
所述移動(dòng)應(yīng)用獲得來(lái)自所述本地服務(wù)器的本地文件,并根據(jù)所述本 地文件執(zhí)行相應(yīng)操作,以無(wú)需重新編譯來(lái)對(duì)所述移動(dòng)應(yīng)用進(jìn)行調(diào)試。
根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種用于對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試的設(shè)備,其中,該設(shè)備包括:
監(jiān)聽裝置,用于當(dāng)監(jiān)聽到鍵盤事件信息時(shí),根據(jù)所述鍵盤事件信息,向已啟動(dòng)的本地服務(wù)器發(fā)送文件請(qǐng)求;
本地服務(wù)器,用于接收來(lái)自移動(dòng)應(yīng)用的文件請(qǐng)求,并向所述移動(dòng)應(yīng)用提供與所述文件請(qǐng)求相對(duì)應(yīng)的本地文件;
獲得裝置,用于獲得來(lái)自所述本地服務(wù)器的本地文件,并根據(jù)所述本地文件執(zhí)行相應(yīng)操作,以無(wú)需重新編譯來(lái)對(duì)所述移動(dòng)應(yīng)用進(jìn)行調(diào)試。
與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn):能夠通過監(jiān)聽鍵盤事件信息,來(lái)進(jìn)行移動(dòng)應(yīng)用與本地服務(wù)器進(jìn)行交互,從而使得在調(diào)試過程中,調(diào)試人員不需要基于修改后的本地文件進(jìn)行重新編譯,便能實(shí)現(xiàn)對(duì)移動(dòng)應(yīng)用的調(diào)試,該調(diào)試方式能夠大大減少重新編譯的次數(shù),以減少重新編譯帶來(lái)的時(shí)間花銷,調(diào)試流程簡(jiǎn)單,極便于調(diào)試人員對(duì)移動(dòng)應(yīng)用的調(diào)試。
附圖說(shuō)明
通過閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
圖1為本發(fā)明一個(gè)實(shí)施例的用于對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試的方法的流程示意圖;
圖2為本發(fā)明一個(gè)實(shí)施例的用于對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試的設(shè)備的結(jié)構(gòu)示意圖。
附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述。
圖1為本發(fā)明一個(gè)實(shí)施例的用于對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試的方法的流 程示意圖。
其中,本實(shí)施例的方法主要在用于對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試的設(shè)備(以下簡(jiǎn)稱為調(diào)試設(shè)備)中實(shí)現(xiàn),其中,所述調(diào)試為模擬器調(diào)試,也即,調(diào)試設(shè)備上運(yùn)行有模擬器,移動(dòng)應(yīng)用在所述模擬器中運(yùn)行;其中,所述調(diào)試設(shè)備中運(yùn)行有用于進(jìn)行調(diào)試的軟件開發(fā)環(huán)境,調(diào)試人員可在該軟件開發(fā)環(huán)境中進(jìn)行針對(duì)移動(dòng)應(yīng)用的調(diào)試操作,優(yōu)選地,所述軟件開發(fā)環(huán)境為集成軟件開發(fā)環(huán)境(如Xcode、Eclipse等),以便于調(diào)試人員能夠在調(diào)試過程中對(duì)與移動(dòng)應(yīng)用相對(duì)應(yīng)的本地文件進(jìn)行修改。其中,所述移動(dòng)應(yīng)用可為適用于任何系統(tǒng)的應(yīng)用,如IOS系統(tǒng)、Android系統(tǒng)等;其中,所述移動(dòng)應(yīng)用包括任何能夠在移動(dòng)設(shè)備中運(yùn)行的應(yīng)用,如移動(dòng)端Web App和客戶端應(yīng)用程序;優(yōu)選地,在移動(dòng)端Web App的開發(fā)過程中,能夠通過調(diào)起協(xié)議來(lái)調(diào)用客戶端能力。以下給出一個(gè)示例的Web App的開發(fā)過程:針對(duì)Web端和客戶端分別提供云端SDK和Native SDK,其中,云端SDK和Native SDK可互相通信;在Web端開發(fā)時(shí)開發(fā)方僅需集成云端SDK,便可通過云端SDK和Native SDK之間的通信來(lái)調(diào)用客戶端能力;其中,當(dāng)需要調(diào)用客戶端能力時(shí),可查詢集成的Web JS庫(kù)中現(xiàn)有的API文檔,如果Web JS庫(kù)中存在需要調(diào)用的API則直接調(diào)用,如果Web JS庫(kù)中不存在需要調(diào)用的API,則向平臺(tái)方提出需求,以實(shí)現(xiàn)調(diào)用客戶端能力,其中,該平臺(tái)方可向開發(fā)方提供多種系統(tǒng)的API;上述示例的開發(fā)方案無(wú)需關(guān)注系統(tǒng)平臺(tái),可實(shí)現(xiàn)跨平臺(tái)的調(diào)用客戶端能力,能夠有效降低開發(fā)方的開發(fā)聯(lián)調(diào)成本,提升客戶端功能的可擴(kuò)展性以及云端對(duì)Native App的控制能力,并能夠有效降低開發(fā)方的平臺(tái)兼容成本。
根據(jù)本實(shí)施例的方法包括步驟S1、步驟S2和步驟S3。
在步驟S1中,當(dāng)監(jiān)聽到鍵盤事件信息時(shí),移動(dòng)應(yīng)用根據(jù)所述鍵盤事件信息,向已啟動(dòng)的本地服務(wù)器發(fā)送文件請(qǐng)求。
具體地,當(dāng)監(jiān)聽到鍵盤事件信息時(shí),移動(dòng)應(yīng)用根據(jù)所述鍵盤事件信息,確定與該鍵盤事件信息相對(duì)應(yīng)的至少一個(gè)本地文件,并向已啟動(dòng)的本地服務(wù)器發(fā)送用于請(qǐng)求該至少一個(gè)本地文件的文件請(qǐng)求。
其中,所述鍵盤事件信息包括任何用于指示鍵盤事件的信息,如當(dāng)前被按下的按鍵、短時(shí)間內(nèi)連續(xù)按下的多個(gè)按鍵等;也即,鍵盤事件可為當(dāng)前發(fā)生的本次按鍵事件,或者在短時(shí)間內(nèi)發(fā)生的連續(xù)的按鍵事件。其中,移動(dòng)應(yīng)用中預(yù)先存儲(chǔ)有多個(gè)預(yù)定指令以及該多個(gè)預(yù)定指令所分別對(duì)應(yīng)的鍵盤事件;例如,預(yù)定指令“刷新當(dāng)前界面”所對(duì)應(yīng)的鍵盤事件為按鍵“shift”和“R”被同時(shí)按下;又例如,預(yù)定指令“加載指定文件”所對(duì)應(yīng)的鍵盤事件為短時(shí)間內(nèi)連接按下的多個(gè)按鍵依次為“file+XXX#”,其中,“XXX”表示設(shè)備的操作人員(也即調(diào)試人員)指定的要加載的文件名稱,#表示結(jié)束按鍵操作;再例如,預(yù)定指令“重新加載”所對(duì)應(yīng)的鍵盤事件為按鍵“shift”和“T”被同時(shí)按下,該預(yù)定指令指示重載加載移動(dòng)應(yīng)用所對(duì)應(yīng)的全部本地文件。
其中,所述文件請(qǐng)求用于向本地服務(wù)器請(qǐng)求本地文件。優(yōu)選地,所述本地文件不需要進(jìn)行編譯即可應(yīng)用于所述移動(dòng)應(yīng)用,更優(yōu)選地,所述本地文件為采用非native語(yǔ)言編寫的文件,如JS格式的文件。
其中,本地服務(wù)器(sever)可在啟動(dòng)針對(duì)移動(dòng)應(yīng)用的調(diào)試之前啟動(dòng),或者在調(diào)試過程中啟動(dòng)。
優(yōu)選地,在步驟S1之前,在調(diào)試設(shè)備中通過執(zhí)行腳本來(lái)啟動(dòng)本地服務(wù)器。
優(yōu)選地,在調(diào)試設(shè)備上運(yùn)行的集成開發(fā)環(huán)境中通過執(zhí)行腳本來(lái)在該調(diào)試設(shè)備中啟動(dòng)本地服務(wù)器。
例如,調(diào)試設(shè)備中運(yùn)行Xcode,在Xcode中通過執(zhí)行腳本用Node.js啟動(dòng)本地服務(wù)器。
具體地,當(dāng)監(jiān)聽到鍵盤事件信息時(shí),移動(dòng)應(yīng)用根據(jù)所述鍵盤事件信息,向已啟動(dòng)的本地服務(wù)器發(fā)送文件請(qǐng)求的實(shí)現(xiàn)方式包括但不限于:
1)當(dāng)監(jiān)聽到鍵盤事件信息,且所述鍵盤事件信息指示重新加載指定的本地文件時(shí),移動(dòng)應(yīng)用向已啟動(dòng)的本地服務(wù)器發(fā)送用于指示請(qǐng)求所述指定的本地文件的文件請(qǐng)求。
例如,移動(dòng)應(yīng)用監(jiān)聽到鍵盤事件信息,該鍵盤事件信息指示被連 接按下的多個(gè)按鍵依次為“file+test#”,移動(dòng)應(yīng)用根據(jù)該鍵盤事件信息以及預(yù)定指令確定該鍵盤事件信息指示重新加載本地文件“test.js”,則移動(dòng)應(yīng)用向已啟動(dòng)的本地sever發(fā)送文件請(qǐng)求,該文件請(qǐng)求用于向本地sever請(qǐng)求“test.js”。
2)當(dāng)監(jiān)聽到鍵盤事件信息,且所述鍵盤事件信息指示刷新所述移動(dòng)應(yīng)用的當(dāng)前頁(yè)面時(shí),移動(dòng)應(yīng)用根據(jù)所述當(dāng)前頁(yè)面,確定需要請(qǐng)求的至少一個(gè)本地文件;接著,移動(dòng)應(yīng)用向已啟動(dòng)的本地服務(wù)器發(fā)送用于指示請(qǐng)求所述至少一個(gè)本地文件的文件請(qǐng)求。
例如,移動(dòng)應(yīng)用監(jiān)聽到鍵盤事件信息,該鍵盤事件信息指示按鍵“shift”和“R”被同時(shí)按下,移動(dòng)應(yīng)用根據(jù)該鍵盤事件信息以及預(yù)定指令確定該鍵盤事件信息指示刷新移動(dòng)應(yīng)用的當(dāng)前頁(yè)面,則移動(dòng)應(yīng)用根據(jù)當(dāng)前頁(yè)面,確定與當(dāng)前頁(yè)面的顯示相關(guān)的兩個(gè)本地文件包括:T1.js、T2.js;接著,移動(dòng)應(yīng)用向本地sever發(fā)送文件請(qǐng)求,該文件請(qǐng)求用于向本地sever請(qǐng)求上述兩個(gè)本地文件。
需要說(shuō)明的是,上述舉例僅為更好地說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)本發(fā)明的限制,本領(lǐng)域技術(shù)人員應(yīng)該理解,任何當(dāng)監(jiān)聽到鍵盤事件信息時(shí),移動(dòng)應(yīng)用根據(jù)所述鍵盤事件信息,向已啟動(dòng)的本地服務(wù)器發(fā)送文件請(qǐng)求的實(shí)現(xiàn)方式,均應(yīng)包含在本發(fā)明的范圍內(nèi)。
在步驟S2中,本地服務(wù)器接收來(lái)自移動(dòng)應(yīng)用的文件請(qǐng)求,并向所述移動(dòng)應(yīng)用提供與所述文件請(qǐng)求相對(duì)應(yīng)的本地文件。
例如,本地服務(wù)器接收來(lái)自移動(dòng)應(yīng)用的文件請(qǐng)求,該文件請(qǐng)求用于請(qǐng)求本地文件“test.js”,則本地sever將當(dāng)前的本地文件“test.js”提供給移動(dòng)應(yīng)用。
需要說(shuō)明的是,在本步驟中,本地服務(wù)器向移動(dòng)應(yīng)用返回的是最新的本地文件;也即,在步驟S2之前,若在調(diào)試過程中,調(diào)試人員對(duì)本地文件進(jìn)行了修改,則在步驟S2中,本地服務(wù)器向移動(dòng)應(yīng)用返回的是修改后的本地文件,而并非是移動(dòng)應(yīng)用最近一次被編譯時(shí)所使用的本地文件。
在步驟S3中,移動(dòng)應(yīng)用獲得來(lái)自本地服務(wù)器的本地文件,并根 據(jù)所獲得本地文件執(zhí)行相應(yīng)操作,以無(wú)需重新編譯來(lái)對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試。
其中,所述相應(yīng)操作包括任何與針對(duì)移動(dòng)應(yīng)用進(jìn)行的調(diào)試相關(guān)的操作,優(yōu)選地,所述相應(yīng)操作包括但不限于:
1)重新加載本地文件。需要說(shuō)明的是,移動(dòng)應(yīng)用需重新加載本地服務(wù)器所提供的所有本地文件。
2)根據(jù)本地文件刷新移動(dòng)應(yīng)用的當(dāng)前頁(yè)面。需要說(shuō)明的是,移動(dòng)應(yīng)用根據(jù)本地文件刷新其當(dāng)前頁(yè)面之前,必須先重新加載本地文件;并且,移動(dòng)應(yīng)用可基于其所獲得的全部或部分本地文件來(lái)刷新其當(dāng)前頁(yè)面;也即,并非移動(dòng)應(yīng)用所獲得的全部本地文件均需用于刷新當(dāng)前頁(yè)面。
優(yōu)選地,移動(dòng)應(yīng)用結(jié)合鍵盤事件信息,來(lái)根據(jù)所獲得本地文件執(zhí)行相應(yīng)操作,以無(wú)需重新編譯來(lái)對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試。
作為一個(gè)示例,在步驟S1中,當(dāng)監(jiān)聽到鍵盤事件信息,且該鍵盤事件信息指示重新加載指定的本地文件時(shí),移動(dòng)應(yīng)用向本地服務(wù)器發(fā)送文件請(qǐng)求,來(lái)請(qǐng)求加載本地文件“test.js”;在步驟S2中,本地服務(wù)器向移動(dòng)應(yīng)用提供當(dāng)前的本地文件“test.js”;在步驟S3中,移動(dòng)應(yīng)用獲得來(lái)自本地服務(wù)器的本地文件,并結(jié)合鍵盤事件信息,重新加載本地文件“test.js”,以基于重新加載的該本地文件來(lái)進(jìn)行后續(xù)的調(diào)試,而無(wú)需重新進(jìn)行編譯。
作為另一個(gè)示例,在步驟S1中,當(dāng)監(jiān)聽到鍵盤事件信息,且該鍵盤事件信息指示刷新移動(dòng)應(yīng)用的當(dāng)前頁(yè)面時(shí),移動(dòng)應(yīng)用向本地服務(wù)器發(fā)送文件請(qǐng)求,來(lái)請(qǐng)求與當(dāng)前頁(yè)面相對(duì)應(yīng)的本地文件“T1.js”和“T2.js”;在步驟S2中,本地服務(wù)器向移動(dòng)應(yīng)用提供當(dāng)前的本地文件“T1.js”和“T2.js”;在步驟S3中,移動(dòng)應(yīng)用獲得來(lái)自本地服務(wù)器的本地文件,并結(jié)合鍵盤事件信息,重新加載本地文件“T1.js”和“T2.js”,并在不重新編譯的情況下,直接基于重新加載的本地文件“T1.js”和“T2.js”來(lái)刷新當(dāng)前頁(yè)面。
需要說(shuō)明的是,上述舉例僅為更好地說(shuō)明本發(fā)明的技術(shù)方案,而非 對(duì)本發(fā)明的限制,本領(lǐng)域技術(shù)人員應(yīng)該理解,任何移動(dòng)應(yīng)用獲得來(lái)自所述本地服務(wù)器的本地文件,并根據(jù)所述本地文件執(zhí)行相應(yīng)操作,以無(wú)需重新編譯來(lái)對(duì)所述移動(dòng)應(yīng)用進(jìn)行調(diào)試的實(shí)現(xiàn)方式,均應(yīng)包含在本發(fā)明的范圍內(nèi)。
根據(jù)本實(shí)施例的方案,能夠通過監(jiān)聽鍵盤事件信息,來(lái)進(jìn)行移動(dòng)應(yīng)用與本地服務(wù)器進(jìn)行交互,從而使得在調(diào)試過程中,調(diào)試人員不需要基于修改后的本地文件進(jìn)行重新編譯,便能實(shí)現(xiàn)對(duì)移動(dòng)應(yīng)用的調(diào)試,該調(diào)試方式能夠大大減少重新編譯的次數(shù),以減少重新編譯帶來(lái)的時(shí)間花銷,調(diào)試流程簡(jiǎn)單,極便于調(diào)試人員對(duì)移動(dòng)應(yīng)用的調(diào)試。
圖2為本發(fā)明一個(gè)實(shí)施例的用于對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試的設(shè)備的結(jié)構(gòu)示意圖,該用于對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試的設(shè)備(以下簡(jiǎn)稱為“調(diào)試設(shè)備”)包括監(jiān)聽裝置1、本地服務(wù)器2和獲得裝置3。需要說(shuō)明的是,所述監(jiān)聽裝置1和獲得裝置3均集成至在調(diào)試設(shè)備上的模擬器中運(yùn)行的移動(dòng)應(yīng)用中。
當(dāng)監(jiān)聽到鍵盤事件信息時(shí),監(jiān)聽裝置1根據(jù)所述鍵盤事件信息,向已啟動(dòng)的本地服務(wù)器發(fā)送文件請(qǐng)求。
具體地,當(dāng)監(jiān)聽到鍵盤事件信息時(shí),監(jiān)聽裝置1根據(jù)所述鍵盤事件信息,確定與該鍵盤事件信息相對(duì)應(yīng)的至少一個(gè)本地文件,并向已啟動(dòng)的本地服務(wù)器發(fā)送用于請(qǐng)求該至少一個(gè)本地文件的文件請(qǐng)求。
其中,所述鍵盤事件信息包括任何用于指示鍵盤事件的信息,如當(dāng)前被按下的按鍵、短時(shí)間內(nèi)連續(xù)按下的多個(gè)按鍵等;也即,鍵盤事件可為當(dāng)前發(fā)生的本次按鍵事件,或者在短時(shí)間內(nèi)發(fā)生的連續(xù)的按鍵事件。其中,移動(dòng)應(yīng)用中預(yù)先存儲(chǔ)有多個(gè)預(yù)定指令以及該多個(gè)預(yù)定指令所分別對(duì)應(yīng)的鍵盤事件;例如,預(yù)定指令“刷新當(dāng)前界面”所對(duì)應(yīng)的鍵盤事件為按鍵“shift”和“R”被同時(shí)按下;又例如,預(yù)定指令“加載指定文件”所對(duì)應(yīng)的鍵盤事件為短時(shí)間內(nèi)連接按下的多個(gè)按鍵依次為“file+XXX#”,其中,“XXX”表示設(shè)備的操作人員(也即調(diào)試人員)指定的要加載的文件名稱,#表示結(jié)束按鍵操作;再例如,預(yù)定指令“重新加載”所對(duì)應(yīng)的鍵盤事件為按鍵“shift”和“T”被同時(shí)按下,該預(yù)定指 令指示重載加載移動(dòng)應(yīng)用所對(duì)應(yīng)的全部本地文件。
其中,所述文件請(qǐng)求用于向本地服務(wù)器請(qǐng)求本地文件。優(yōu)選地,所述本地文件不需要進(jìn)行編譯即可應(yīng)用于所述移動(dòng)應(yīng)用,更優(yōu)選地,所述本地文件為采用非native語(yǔ)言編寫的文件,如JS格式的文件。
其中,本地服務(wù)器(sever)可在啟動(dòng)針對(duì)移動(dòng)應(yīng)用的調(diào)試之前啟動(dòng),或者在調(diào)試過程中啟動(dòng)。
優(yōu)選地,調(diào)試設(shè)備還包括在監(jiān)聽裝置1之前執(zhí)行操作的啟動(dòng)裝置(圖未示)。啟動(dòng)裝置通過執(zhí)行腳本來(lái)啟動(dòng)本地服務(wù)器。
優(yōu)選地,啟動(dòng)裝置集成至在調(diào)試設(shè)備上運(yùn)行的集成開發(fā)環(huán)境中,并通過執(zhí)行腳本來(lái)在該調(diào)試設(shè)備中啟動(dòng)本地服務(wù)器。
例如,調(diào)試設(shè)備中運(yùn)行Xcode,在Xcode中的啟動(dòng)裝置通過執(zhí)行腳本用Node.js啟動(dòng)本地服務(wù)器。
具體地,當(dāng)監(jiān)聽到鍵盤事件信息時(shí),監(jiān)聽裝置1根據(jù)所述鍵盤事件信息,向已啟動(dòng)的本地服務(wù)器發(fā)送文件請(qǐng)求的實(shí)現(xiàn)方式包括但不限于:
1)監(jiān)聽裝置1包括第一發(fā)送裝置(圖未示)。當(dāng)監(jiān)聽到鍵盤事件信息,且所述鍵盤事件信息指示重新加載指定的本地文件時(shí),第一發(fā)送裝置向已啟動(dòng)的本地服務(wù)器發(fā)送用于指示請(qǐng)求所述指定的本地文件的文件請(qǐng)求。
例如,第一發(fā)送裝置監(jiān)聽到鍵盤事件信息,該鍵盤事件信息指示被連接按下的多個(gè)按鍵依次為“file+test#”,第一發(fā)送裝置根據(jù)該鍵盤事件信息以及預(yù)定指令確定該鍵盤事件信息指示重新加載本地文件“test.js”,則第一發(fā)送裝置向已啟動(dòng)的本地sever發(fā)送文件請(qǐng)求,該文件請(qǐng)求用于向本地sever請(qǐng)求“test.js”。
2)監(jiān)聽裝置1包括確定裝置(圖未示)和第二發(fā)送裝置(圖未示)。當(dāng)監(jiān)聽到鍵盤事件信息,且所述鍵盤事件信息指示刷新所述移動(dòng)應(yīng)用的當(dāng)前頁(yè)面時(shí),確定裝置根據(jù)所述當(dāng)前頁(yè)面,確定需要請(qǐng)求的至少一個(gè)本地文件;接著,第二發(fā)送裝置向已啟動(dòng)的本地服務(wù)器發(fā)送用于指示請(qǐng)求所述至少一個(gè)本地文件的文件請(qǐng)求。
例如,確定裝置監(jiān)聽到鍵盤事件信息,該鍵盤事件信息指示按鍵“shift”和“R”被同時(shí)按下,確定裝置根據(jù)該鍵盤事件信息以及預(yù)定指令確定該鍵盤事件信息指示刷新移動(dòng)應(yīng)用的當(dāng)前頁(yè)面,則確定裝置根據(jù)當(dāng)前頁(yè)面,確定與當(dāng)前頁(yè)面的顯示相關(guān)的兩個(gè)本地文件包括:T1.js、T2.js;接著,第二發(fā)送裝置向本地sever發(fā)送文件請(qǐng)求,該文件請(qǐng)求用于向本地sever請(qǐng)求上述兩個(gè)本地文件。
需要說(shuō)明的是,上述舉例僅為更好地說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)本發(fā)明的限制,本領(lǐng)域技術(shù)人員應(yīng)該理解,任何當(dāng)監(jiān)聽到鍵盤事件信息時(shí),移動(dòng)應(yīng)用根據(jù)所述鍵盤事件信息,向已啟動(dòng)的本地服務(wù)器發(fā)送文件請(qǐng)求的實(shí)現(xiàn)方式,均應(yīng)包含在本發(fā)明的范圍內(nèi)。
本地服務(wù)器2接收來(lái)自移動(dòng)應(yīng)用的文件請(qǐng)求,并向所述移動(dòng)應(yīng)用提供與所述文件請(qǐng)求相對(duì)應(yīng)的本地文件。
例如,本地服務(wù)器2接收來(lái)自移動(dòng)應(yīng)用的文件請(qǐng)求,該文件請(qǐng)求用于請(qǐng)求本地文件“test.js”,則本地sever將當(dāng)前的本地文件“test.js”提供給移動(dòng)應(yīng)用。
需要說(shuō)明的是,本地服務(wù)器2向移動(dòng)應(yīng)用返回的是調(diào)試設(shè)備中的最新的本地文件;也即,若在調(diào)試過程中,調(diào)試人員對(duì)本地文件進(jìn)行了修改,則本地服務(wù)器2向移動(dòng)應(yīng)用返回的是修改后的本地文件,而并非是移動(dòng)應(yīng)用最近一次被編譯時(shí)所使用的本地文件。
獲得裝置3獲得來(lái)自本地服務(wù)器2的本地文件,并根據(jù)所獲得的本地文件執(zhí)行相應(yīng)操作,以無(wú)需重新編譯來(lái)對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試。
其中,所述相應(yīng)操作包括任何與針對(duì)移動(dòng)應(yīng)用進(jìn)行的調(diào)試相關(guān)的操作,優(yōu)選地,所述相應(yīng)操作包括但不限于:
1)重新加載本地文件。需要說(shuō)明的是,獲得裝置3需重新加載本地服務(wù)器所提供的所有本地文件。
2)根據(jù)本地文件刷新移動(dòng)應(yīng)用的當(dāng)前頁(yè)面。需要說(shuō)明的是,獲得裝置3根據(jù)本地文件刷新其當(dāng)前頁(yè)面之前,必須先重新加載本地文件;并且,獲得裝置3可基于其所獲得的全部或部分本地文件來(lái)刷新其當(dāng)前頁(yè)面;也即,并非移動(dòng)應(yīng)用所獲得的全部本地文件均需用于刷 新當(dāng)前頁(yè)面。
優(yōu)選地,獲得裝置3結(jié)合鍵盤事件信息,來(lái)根據(jù)所獲得本地文件執(zhí)行相應(yīng)操作,以無(wú)需重新編譯來(lái)對(duì)移動(dòng)應(yīng)用進(jìn)行調(diào)試。
作為一個(gè)示例,當(dāng)監(jiān)聽到鍵盤事件信息,且該鍵盤事件信息指示重新加載指定的本地文件時(shí),監(jiān)聽裝置1向本地服務(wù)器發(fā)送文件請(qǐng)求,來(lái)請(qǐng)求加載本地文件“test.js”;本地服務(wù)器2向移動(dòng)應(yīng)用提供當(dāng)前的本地文件“test.js”;獲得裝置3獲得來(lái)自本地服務(wù)器2的本地文件,并結(jié)合鍵盤事件信息,重新加載本地文件“test.js”,以基于重新加載的該本地文件來(lái)進(jìn)行后續(xù)的調(diào)試,而無(wú)需重新進(jìn)行編譯。
作為另一個(gè)示例,當(dāng)監(jiān)聽到鍵盤事件信息,且該鍵盤事件信息指示刷新移動(dòng)應(yīng)用的當(dāng)前頁(yè)面時(shí),監(jiān)聽裝置1向本地服務(wù)器發(fā)送文件請(qǐng)求,來(lái)請(qǐng)求與當(dāng)前頁(yè)面相對(duì)應(yīng)的本地文件“T1.js”和“T2.js”;本地服務(wù)器2向移動(dòng)應(yīng)用提供當(dāng)前的本地文件“T1.js”和“T2.js”;獲得裝置3獲得來(lái)自本地服務(wù)器2的本地文件,并結(jié)合鍵盤事件信息,重新加載本地文件“T1.js”和“T2.js”,并在不重新編譯的情況下,直接基于重新加載的本地文件“T1.js”和“T2.js”來(lái)刷新當(dāng)前頁(yè)面。
需要說(shuō)明的是,上述舉例僅為更好地說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)本發(fā)明的限制,本領(lǐng)域技術(shù)人員應(yīng)該理解,任何移動(dòng)應(yīng)用獲得來(lái)自所述本地服務(wù)器的本地文件,并根據(jù)所述本地文件執(zhí)行相應(yīng)操作,以無(wú)需重新編譯來(lái)對(duì)所述移動(dòng)應(yīng)用進(jìn)行調(diào)試的實(shí)現(xiàn)方式,均應(yīng)包含在本發(fā)明的范圍內(nèi)。
根據(jù)本實(shí)施例的方案,能夠通過監(jiān)聽鍵盤事件信息,來(lái)進(jìn)行移動(dòng)應(yīng)用與本地服務(wù)器進(jìn)行交互,從而使得在調(diào)試過程中,調(diào)試人員不需要基于修改后的本地文件進(jìn)行重新編譯,便能實(shí)現(xiàn)對(duì)移動(dòng)應(yīng)用的調(diào)試,該調(diào)試方式能夠大大減少重新編譯的次數(shù),以減少重新編譯帶來(lái)的時(shí)間花銷,調(diào)試流程簡(jiǎn)單,極便于調(diào)試人員對(duì)移動(dòng)應(yīng)用的調(diào)試。
需要注意的是,本發(fā)明可在軟件和/或軟件與硬件的組合體中被實(shí)施,例如,本發(fā)明的各個(gè)裝置可采用專用集成電路(ASIC)或任何其 他類似硬件設(shè)備來(lái)實(shí)現(xiàn)。在一個(gè)實(shí)施例中,本發(fā)明的軟件程序可以通過處理器執(zhí)行以實(shí)現(xiàn)上文所述步驟或功能。同樣地,本發(fā)明的軟件程序(包括相關(guān)的數(shù)據(jù)結(jié)構(gòu))可以被存儲(chǔ)到計(jì)算機(jī)可讀記錄介質(zhì)中,例如,RAM存儲(chǔ)器,磁或光驅(qū)動(dòng)器或軟磁盤及類似設(shè)備。另外,本發(fā)明的一些步驟或功能可采用硬件來(lái)實(shí)現(xiàn),例如,作為與處理器配合從而執(zhí)行各個(gè)步驟或功能的電路。
對(duì)于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實(shí)施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實(shí)現(xiàn)本發(fā)明。因此,無(wú)論從哪一點(diǎn)來(lái)看,均應(yīng)將實(shí)施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說(shuō)明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化涵括在本發(fā)明內(nèi)。不應(yīng)將權(quán)利要求中的任何附圖標(biāo)記視為限制所涉及的權(quán)利要求。此外,顯然“包括”一詞不排除其他單元或步驟,單數(shù)不排除復(fù)數(shù)。系統(tǒng)權(quán)利要求中陳述的多個(gè)單元或裝置也可以由一個(gè)單元或裝置通過軟件或者硬件來(lái)實(shí)現(xiàn)。第一,第二等詞語(yǔ)用來(lái)表示名稱,而并不表示任何特定的順序。