一種調試運行在客戶端應用內離線包的方法及裝置與流程
2023-09-24 04:35:00
本申請涉及計算機領域,尤其涉及一種調試運行在客戶端應用內離線包的方法及裝置。
背景技術:
目前,如果用戶想要調試運行在客戶端的應用內的離線包時,首先要獲得調試該應用的權限,再進入相關頁面進行web調試。這裡離線包是指將混合模式移動應用(Hybrid應用)所用的資源打包成一個zip格式的壓縮包,在訪問離線包時不需要任何請求,可以快速打開或者離線使用。例如,用戶在使用支付寶的新版本的過程中,在一個頁面的右端會出現如圖1所述的8個模塊,其中,每一個模塊便對應一個離線包。
一般用戶在進行web調試對,首先要求用戶當前使用的本地機器具有相應調試的開發環境,在相應的開發環境下才能啟動相應的模擬器,再在該模擬器中檢驗對應客戶端應用的效果,並根據該效果進行相關調試。
但是,當用戶使用的本地機器中不具備相應調試客戶端應用內的離線包的開發環境時,便無法啟動相應的模擬器進行相關調試。例如用戶當前使用的本地機器上只有windows系統而不具有mac的開發環境,用戶無法啟動mac環境下的ios模擬器進行相關應用內的離線包的調試。
技術實現要素:
鑑於上述問題,本申請實施例提出了一種調試運行在客戶端應用內離線包的方法及裝置,解決當用戶使用的本地機器上不具備相應調試的開發環境時用戶無法在本地機器上對運行在客戶端應用內的離線包進行調試的問題。
本申請實施例採用下述技術方案:一種調試運行在客戶端應用的方法,該方法包括:
在本地機器上構建將運行在客戶端應用內的第一離線包;判斷客戶端本地是否具有調試所述第一離線包的模擬器,如果否,則根據與所述第一離線包對應的配置文件在遠程宿主機器內創建用於調試所述第一離線包的模擬器;在所述模擬器內安裝所述應用,並將所述應用中第二離線包的目錄與所述第一離線包建立映射關係,所述第二離線包為與第一離線包對應的離線包;在所述本地機器上對所述遠程宿主機器進行操控,根據所述映射關係實現對所述第一離線包的調試。
優選地,所述在將所述應用中第二離線包的目錄與所述第一離線包建立映射關係之前,所述方法還包括:
將所述應用中的第二離線包進行備份並存儲;
在存儲所述備份的第二離線包之後,將所述應用中的第二離線包刪除。
優選地,所述構建將運行在客戶端應用內的第一離線包具體包括:
將所述客戶端應用內的前端資源文件的格式進行轉換,生成正確格式的資源文件,所述正確格式是指在相關網頁中進行顯示的資源格式;
將所述正確格式的資源文件按照業務規則進行打包,構建出所述運行在客戶端應用內的第一離線包,所述業務規則的數量是一個或多個。
優選地,所述根據所述映射關係實現對所述第一離線包的調試包括:
在調試所述第一離線包的過程中,在所述本地機器上顯示調試頁面。
優選地,所述在本地機器上顯示調試頁面具體包括:
用戶在所述本地機器上調試離線包過程中,在所述本地機器上實時的顯示調試過程和結果。
優選地,所述在所述模擬器內安裝所述應用之前,所述方法還包括:
判斷所述遠程宿主機器上是否安裝所述應用,如果是,則在所述遠程宿主機上不再安裝所述應用;如果否,則在所述遠程宿主機上安裝所述應用。
一種調試運行在客戶端應用內離線包的裝置,所述裝置存在於本地伺服器中,該裝置包括:
構建單元、判斷單元、安裝單元和調試單元;其中,
所述構建單元,用於在本地機器上構建將運行在客戶端應用內的第一離線包;
所述判斷單元,用於判斷客戶端本地是否具有調試所述第一離線包的模擬器,如果否,則根據與所述第一離線包對應的配置文件在遠程宿主機器內創建用於調試所述第一離線包的模擬器;
所述安裝單元,用於在所述模擬器內安裝所述應用,並將所述應用中第二離線包的目錄與所述第一離線包建立映射關係,所述第二離線包為與第一離線包對應的離線包;
所述調試單元,用於在所述本地機器上對所述遠程宿主機器進行操控,根據所述映射關係實現對所述第一離線包的調試。
優選地,所述安裝單元包括:
判斷子單元、備份子單元、刪除子單元和建立子單元;其中,
所述判斷子單元,用於在所述模擬器內安裝所述應用之前,判斷所述遠程宿主機器上是否安裝所述應用,如果是,則在所述遠程宿主機上不再安裝所述應用;如果否,則在所述遠程宿主機上安裝所述應用;
所述備份子單元,用於在將所述應用中第二離線包的目錄與所述第一離線包建立映射關係之前,將所述第二離線包備份並存儲;
所述刪除子單元,用於在存儲所述備份的第二離線包之後,將所述應用中的第二離線包刪除;
所述建立子單元,用於將所述應用中第二離線包的目錄與所述第一離線包建立映射關係
優選地,所述構建單元包括:
轉換子單元和構建子單元;其中,
所述轉換子單元,用於將所述客戶端應用內的前端資源文件的格式進行轉換,生成正確格式的資源文件,所述正確格式是指在相關網頁中進行顯示的資源格式;
所述構建子單元,用於將所述正確格式的資源文件按照業務規則進行打包,從而構建出所述運行在客戶端應用內的第一離線包,所述業務規則的數量是一個或多個。
優選地,所述調試單元用於:
在調試所述第一離線包的過程中,在所述本地機器上顯示調試頁面。
在本申請實施例中當用戶使用的本地機器不具備相應調試的開發環境時,用戶根據配置文件在遠程宿主機器中創建模擬器,使得用戶可以在本地機器上完成對客戶端應用內的離線包的調試,另外,在用戶調試離線包的過程中在本地機器上實時的顯示調試過程和結果,使得用戶在調試過程中可以根據調試結果及時的做出調整。
附圖說明
此處所說明的附圖用來提供對本申請的進一步理解,構成本申請的一部分,本申請的示意性實施例及其說明用於解釋本申請,並不構成對本申請的不當限定。在附圖中:
圖1為支付寶新版本中的離線包截圖;
圖2為本申請實施例1提供的一種調試運行在客戶端應用內離線包的方法的流程示意圖;
圖3為本申請實施例1中在模擬器內安裝應用內離線包的模擬圖;
圖4為本申請實施例1具體流程示意圖;
圖5為本申請實施例2提供的一種調試運行在客戶端應用內離線包的裝置的具體結構示意圖。
具體實施方式
為使本申請的目的、技術方案和優點更加清楚,下面將結合本申請具體實施例及相應的附圖對本申請技術方案進行清楚、完整地描述。顯然,所描述的實施例僅是本申請一部分實施例,而不是全部的實施例。基於本申請中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本申請保護的範圍。
以下結合附圖,詳細說明本申請各實施例提供的技術方案。
針對當用戶使用的本地機器不具備相應的調試開發環境的情形,本申請實施例提供了一種調試運行在客戶端應用內離線包的方法,該方法具體用於用戶在本地機器上完成對運行在客戶端應用內離線包的調試。圖2提供了該方法的流程示意圖,圖4是為了更清楚的說明圖2中的各個步驟提供的具體流程示意圖。該方法具體包括下述步驟:
步驟11:在本地機器上構建將運行在客戶端應用內的第一離線包。
在本步驟中,本地機器根據配置文件中的源碼對前端資源文件進行構建生成相應的離線包,構建的方法可以使用webpack(如圖4中的步驟41),這裡的所述的webpack構建離線包方法只是示例性的說明,並沒有對構建離線包的方法進行限定。該前端文件包括和web頁面相關的文件,該文件可以是CSS文件、JavaScript文件、HTML文件、圖片或者視頻等;webpack可以把各種資源文件的格式進行轉換,最終將前端資源文件轉換成正確的格式的資源文件,這裡所述的正確格式的資源文件是指可以在相關網頁進行顯示的文件,該資源文件的格式可以是JavaScript、HTML或者CSS等;最後將資源文件根據配置文件中業務規則打包成一個離線包(如圖4中的步驟42),這裡所說的業務規則可以是一個或多個,因為在不同開發環境下對同一離線包進行構建所採用的業務規則是不相同的,例如支付寶應用中的同一離線包在windows和mac開發環境下是採用不相同的業務規則進行構建的,本地機器可以根據配置文件中的不同業務規則對同一離線包進行統一構建。
步驟12:判斷客戶端本地是否具有調試所述第一離線包的模擬器,如果否,則根據與所述第一離線包對應的配置文件在遠程宿主機器內創建用於調試所述第一離線包的模擬器。
將離線包創建完成後,系統會讀取用戶配置文件,然後根據配置文件創建模擬器(如圖4中的步驟43),這裡創建模擬器的方法可以包括但不限於以下兩種方式:
一種方式是如果用戶當前使用的本地機器中具有相應調試的開發環境,系統根據配置文件查找在本地機器中是否已經安裝與該配置文件對應的模擬器,如果沒有安裝,用戶可以根據配置文件在該本地機器上創建模擬器。創建模擬器的一般步驟是:每個開發環境一般會提供該環境下對應模擬器的製作模板,用戶根據配置文件在該模板中添加相應的代碼來實現用戶所需模擬器的創建。
另一種方式是如果用戶當前使用的本地機器不具有相應的開發環境,這時用戶可以通過本地機器登錄遠程宿主機進行調試,該遠程宿主機具有調試需要的開發環境,具體操作方法如下:用戶通過在本地機器登錄到該遠程宿主機後,系統查找在該遠程宿主機上是否已經安裝與該配置文件對應的模擬器,如果沒有安裝,用戶將配置文件發送到宿主機上,然後用戶在本地機器上通過遠程控制遠程宿主機根據配置文件在遠程宿主機器上創建模擬器,例如用戶當前使用的機器只有windows系統,不具有mac的開發環境就無法啟動ios模擬器,也就不能進行相關調試工作,這時用戶可以將本地機器連接另外一臺具有mac開發環境的機器進行遠程調試。這裡在遠程宿主機上創建模擬器的方法與在本地機器上創建模擬器的方法相同或類似,這裡不做贅述,但是在遠程宿主機上創建模擬器後會存在被別人非法利用的危險,因此在創建模擬器時可以以用戶為維度進行創建,例如用戶可以採用電子籤名的形式對訪問模擬器的用戶進行校驗,或者可以採用其它授權方法對訪問模擬器的用戶進行授權訪問等。
上述配置文件描述的內容可以包括但不限於以下幾個方面:
一方面當用戶使用的本地機器上不具備調試需要的開發環境需要進行跨 平臺調試時,這時配置文件描述的內容可以是具體的調試平臺,這裡的調試平臺可以是windows、mac等,例如在調試的過程中是否需要由windows系統連接mac開發環境;另一方面配置文件可以描述在調試過程中需要啟動什麼系統,例如需要使用ios9系統或者ios9.0.1系統;再一方面配置文件可以描述啟動什麼應用,以及該應用對應的版本,例如需要對支付寶應用的某項功能進行調試,就先要啟動支付寶應用再進行相關調試;又一方面配置文件描述的內容可以是針對用戶需要對某項應用的功能做改進的具體調試內容,例如ios9.0.1系統在ios9系統中對鬧鐘和計時器有時不會提示的問題做了修復,配置文件將針對鬧鐘和計時器做的修復進行具體的代碼描述,然後系統就會根據配置文件中的描述對ios9系統中的鬧鐘和計時器的功能進行調試。
步驟13:在所述模擬器內安裝所述應用,並將所述應用中第二離線包的目錄與所述第一離線包建立映射關係,所述第二離線包為與第一離線包對應的離線包。
待模擬器創建成功後,系統根據配置文件下載對應版本的應用,並將該應用安裝到該模擬器內(如圖4中的步驟44),例如用戶使用的蘋果手機當前的系統是ios9,用戶想要將系統升級到ios9.0.1,就要對原來ios9系統中的應用進行調試才能應用在ios9.0.1系統中,或者是要對ios9系統下的某個應用進行調試來改進該應用的某項功能,在調試之前首先要下載系統ios9對應版本的應用,下載完成後將該應用安裝到創建的模擬器內,例如用戶想要調試在ios9系統下的支付寶應用中的某一個離線包使該離線包具有新的功能,系統先會下載ios9系統下的支付寶應用,並將該支付寶的應用安裝到根據配置文件創建的ios模擬器後再進行相關調試。
將該應用安裝到創建的模擬器後,系統要分析模擬器中的內部目錄(如圖4中的步驟45),並從中找到將要調試的離線包(如圖4中的步驟46),對該離線包進行備份,將備份的離線包存放在本地機器或者遠程宿主機器的某個硬碟內,備份完成後再將該內部目錄上將要調試的離線包刪掉,刪掉離線包後,將 該刪掉離線包所在的目錄與用戶在本地機器上構建的離線包在本地機器或者遠程宿主機器上建立映射關係,這裡的建立映射關係可以是創建快捷方式,該快捷方式連接到用戶之前在本地機器上構建的離線包(如圖4中的步驟47),這裡快捷方式是示例性的說明,並沒有對上述建立映射關係的方式構成限定。
上述在本地機器或者遠程宿主機器中建立映射關係的方式具體包括:如果是在本地機器中創建模擬器,在刪掉離線包後在本地機器上將該刪掉離線包所在的目錄與用戶之前構建的離線包之間建立映射關係;如果是在遠程宿主機器上創建的模擬器,在刪掉離線包後在遠程機器上將該刪掉離線包所在的目錄與用戶之前構建的離線包之間建立映射關係。例如圖3中的大矩形表示在模擬器中安裝的應用,大矩形中的小矩形表示在該應用下的離線包,假如用戶想要對其中的A1離線包進行調試,首先要對A1離線包進行備份,備份後可以將A1離線包刪除並在該目錄下創建快捷方式,該快捷方式與用戶在本地機器上構建的離線包連接。
上述刪除模擬器內部目錄中的離線包的原因是:想要通過啟動建立的映射關係實現在本地機器上對用戶之前構建的離線包進行調試,如果不刪除內部目錄中的離線包,啟動快捷方式後可能只是啟動在模擬器內的離線包,而不是啟動用戶之前構建的離線包。另外,上述在刪除內部目錄中離線包之前要對該離線包進行備份的目的是:防止用戶在調試的過程中需要再次使用到調試前的離線包,例如用戶在原來離線包的基礎上進行調試,假如調試失敗,用戶想要進行重新調試,就可以找到備份的離線包進行重新調試,可以避免重新下載原有離線包的麻煩。
步驟14:在所述本地機器上對所述遠程宿主機器進行操控,根據所述映射關係實現對所述第一離線包的調試。
在本地創建模擬器或者是在遠程宿主機器上創建模擬器後,用戶通過啟動在本地機器或遠程宿主機上創建的映射關係從而打開用戶在本地機器上構建的離線包,並對該離線包進行相關調試(如圖4中的步驟48)。另外,在本地 調試的過程中,在本地機器的界面上將針對用戶的調試過程和結果進行實時的展示,用戶可以根據調試結果及時的做出修改,提高調試的效率。
採用上述實施例提供的方法達到的有益效果是:當用戶使用的本地機器不具備相應調試的開發環境時,用戶根據配置文件在遠程宿主機器中創建模擬器,使得用戶可以在本地機器上完成對客戶端應用內的離線包的調試,另外,在用戶調試離線包的過程中在本地機器上實時的顯示調試過程和結果,使得用戶在調試過程中可以根據調試結果及時的做出調整。
上述實施例提出了一種調試運行在客戶端應用內離線包的方法,與之相應地,本申請還提供了一種相應的調試運行在客戶端應用內離線包的裝置,該裝置用於用戶在本地機器調試運行在客戶端的應用內的離線包。該裝置的結構示意圖如圖5所示,具體包括:
構建單元51、判斷單元52、安裝單元53和調試單元54;其中,
構建單元51,可以用於在本地機器上構建將運行在客戶端應用內的第一離線包;
判斷單元52,可以用於判斷客戶端本地是否具有調試所述第一離線包的模擬器,如果否,則根據與所述第一離線包對應的配置文件在遠程宿主機器內創建用於調試所述第一離線包的模擬器;
安裝單元53,可以用於在所述模擬器內安裝所述應用,並將所述應用中第二離線包的目錄與所述第一離線包建立映射關係,所述第二離線包為與第一離線包對應的離線包
調試單元54,在所述本地機器上對所述遠程宿主機器進行操控,根據所述映射關係實現對所述第一離線包的調試。
上述裝置實施例的工作過程是:首先由構建單元51根據配置文件在本地機器將前端資源文件構建成相應的離線包,然後由判斷單元52判斷本地機器是否具備調試該構建離線包的開發環境,如果不具備時,在遠程宿主機器上創建用於調試該離線包的模擬器,再由安裝單元53在創建模擬器中安裝對應版 本的應用,並將該應用中與用戶將要調試的離線包對應的離線包所在的目錄與用戶之前構建的離線包之間建立映射關係,最後調試單元54在本地機器上通過對該遠程宿主機的操控,啟動建立的映射關係從而打開用戶在本地機器上構建的離線包,並完成對該構建離線包的調試。
在上述裝置實施例中利用在遠程宿主機器中創建模擬器實現用戶在本地機器上對運行在客戶端應用內的離線包的調試的實施方式也很多種,例如:在一種實施方式中,所述安裝53單元可以用於:
在所述模擬器內安裝所述應用之前,判斷所述遠程宿主機器上是否安裝所述應用,如果是,則在所述遠程宿主機上不再安裝所述應用;如果否,則在所述遠程宿主機上安裝所述應用;
另一種實施方式中,所述安裝單元53還可以用於:
刪除所述模擬器中內部目錄中安裝完成的第二離線包,並在刪除所述第二離線包之前對所述第二離線包進行備份。
這裡備份的目的是防止用戶需要再次使用到調試前的離線包;刪除所述第二離線包的原因是:如果不刪除所述第二離線包,啟動建立的映射關係後可能只是啟動所述模擬器內的第二離線包,而不是用戶在本地機器上構建的第一離線包。
又一種實施方式中,所述構建單元51可以用於:
將所述客戶端應用內的前端資源文件的格式進行轉換,生成正確格式的資源文件,所述正確格式是指在相關網頁中進行顯示的資源格式;
將所述正確格式的資源文件按照業務規則進行打包,從而構建出所述運行在客戶端應用內的第一離線包,所述業務規則的數量是一個或多個。
這裡的構建單元可以根據多個業務規則同時對同一離線包進行統一構建,使得該離線包可以應用於多種開發環境中。
再一種實施方式中,調試單元54可以用於:
在調試所述第一離線包的過程中,在本地機器上顯示調試頁面。
這裡在本地機器上顯示調試頁面具體是指在用戶調試離線包的過程中在本地機器上實時的顯示調試的過程和結果,使得用戶根據調試結果及時的做出調整,提高調試效率。
上述裝置實施例獲得的有益效果與前述的方法實施例獲得的有益效果相同或者類似,為避免重複,這裡不做贅述。
本領域內的技術人員應明白,本申請的實施例可提供為方法、系統。因此,本申請可採用完全硬體實施例、完全軟體實施例、或結合軟體和硬體方面的實施例的形式。而且,本申請可採用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限於磁碟存儲器、CD-ROM、光學存儲器等)上實施的電腦程式產品的形式。
本申請是參照根據本申請實施例的方法、設備(系統)、和電腦程式產品的流程圖和/或方框圖來描述的。應理解可由電腦程式指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些電腦程式指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些電腦程式指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的製造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些電腦程式指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用於實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
在一個典型的配置中,計算設備包括一個或多個處理器(CPU)、輸入/輸出接口、網絡接口和內存。
內存可能包括計算機可讀介質中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內存等形式,如只讀存儲器(ROM)或快閃記憶體(flash RAM)。內存是計算機可讀介質的示例。
計算機可讀介質包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術來實現信息存儲。信息可以是計算機可讀指令、數據結構、程序的模塊或其他數據。計算機的存儲介質的例子包括,但不限於相變內存(PRAM)、靜態隨機存取存儲器(SRAM)、動態隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPROM)、快閃記憶體或其他內存技術、只讀光碟只讀存儲器(CD-ROM)、數字多功能光碟(DVD)或其他光學存儲、磁盒式磁帶,磁帶磁磁碟存儲或其他磁性存儲設備或任何其他非傳輸介質,可用於存儲可以被計算設備訪問的信息。按照本文中的界定,計算機可讀介質不包括暫存電腦可讀媒體(transitory media),如調製的數據信號和載波。
還需要說明的是,術語「包括」、「包含」或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、商品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、商品或者設備所固有的要素。在沒有更多限制的情況下,由語句「包括一個……」限定的要素,並不排除在包括要素的過程、方法、商品或者設備中還存在另外的相同要素。
本領域技術人員應明白,本申請的實施例可提供為方法、系統或電腦程式產品。因此,本申請可採用完全硬體實施例、完全軟體實施例或結合軟體和硬體方面的實施例的形式。而且,本申請可採用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限於磁碟存儲器、CD-ROM、光學存儲器等)上實施的電腦程式產品的形式。
以上僅為本申請的實施例而已,並不用於限制本申請。對於本領域技術人員來說,本申請可以有各種更改和變化。凡在本申請的精神和原理之內所作的任何修改、等同替換、改進等,均應包含在本申請的權利要求範圍之內。