欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于軟件版本升級的方法及裝置與流程

文檔序號:12550401閱讀:275來源:國知局
用于軟件版本升級的方法及裝置與流程

本發(fā)明涉及網(wǎng)絡(luò)通訊技術(shù),具體涉及一種用于軟件版本升級的方法以及用于軟件版本升級的裝置。



背景技術(shù):

隨著智能移動(dòng)電話、平板電腦以及智能車輛中的智能駕駛系統(tǒng)等智能電子設(shè)備的普及,智能電子設(shè)備中安裝的應(yīng)用等軟件也日漸豐富。

安裝于智能電子設(shè)備中的軟件通常會存在版本升級需求,如智能電子設(shè)備中已安裝的固件以及應(yīng)用等軟件由于需要消除Bug或者增加新功能等因素,而需要智能電子設(shè)備通過OTA(Over-The-Air,空中下載)技術(shù)從相應(yīng)的服務(wù)器處下載新版本的固件或者相應(yīng)應(yīng)用的差分升級包或者全量升級包,智能電子設(shè)備在成功下載了新版本的升級包后,通過執(zhí)行升級包的安裝操作,實(shí)現(xiàn)智能電子設(shè)備中的固件或者相應(yīng)應(yīng)用的版本升級。

發(fā)明人在實(shí)現(xiàn)本發(fā)明過程中發(fā)現(xiàn):在軟件版本升級過程中,通常需要網(wǎng)絡(luò)側(cè)的不同部門的工作人員之間進(jìn)行協(xié)作配合,如軟件部門的工作人員與OTA管理服務(wù)器部門的工作人員之間的協(xié)作配合等,這不但會提高軟件版本升級的人工成本,而且還會存在由于人為錯(cuò)誤而導(dǎo)致的升級包異常等問題。



技術(shù)實(shí)現(xiàn)要素:

鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的用于軟件版本升級的方法及裝置。

依據(jù)本發(fā)明的其中一個(gè)方面,提供了一種用于軟件版本升級的方法,該方法包括:在檢測到源碼管理服務(wù)器接收到用戶提交的源碼文件以及源碼配置信息的情況下,將所述源碼文件以及源碼配置信息傳輸給編譯服務(wù)器;在檢測到所述編譯服務(wù)器從源碼管理服務(wù)器處獲取到所述源碼文件以及源碼配置信息的情況下,對所述源碼文件進(jìn)行編譯形成當(dāng)前編譯文件,在編譯成功后,在所述源碼配置信息中增加本次編譯信息形成當(dāng)前編譯配置信息,并將所述當(dāng)前編譯配置信息提交給空中下載OTA管理服務(wù)器;在檢測到OTA管理服務(wù)器根據(jù)所述當(dāng)前編譯配置信息確定生成軟件升級包的情況下,根據(jù)從編譯服務(wù)器處獲取的當(dāng)前編譯文件以及相應(yīng)的歷史編譯文件生成軟件升級包。

可選的,上述用于軟件版本升級的方法,其中,所述將所述源碼文件以及源碼配置信息傳輸給編譯服務(wù)器的步驟包括:通過源碼管理服務(wù)器向編譯服務(wù)器發(fā)送編譯通知,所述編譯通知包括:源碼文件以及源碼配置信息的統(tǒng)一資源定位符URL;在檢測到所述編譯服務(wù)器接收到所述編譯通知的情況下,根據(jù)所述編譯通知中的URL從源碼管理服務(wù)器處下載所述源碼文件以及源碼配置信息。

可選的,上述用于軟件版本升級的方法,其中,所述源碼配置信息包括:表示源碼文件所針對的車輛中的元部件的信息、源碼文件所對應(yīng)的軟件版本號以及表示源碼文件為測試版/正式版源碼文件的信息。

可選的,上述用于軟件版本升級的方法,其中,所述本次編譯信息包括:本次編譯時(shí)間、執(zhí)行本次編譯操作的編譯服務(wù)器信息以及針對所述元部件對應(yīng)源碼文件的編譯順序號。

可選的,上述用于軟件版本升級的方法,其中,所述在檢測到OTA管理服務(wù)器根據(jù)所述當(dāng)前編譯配置信息確定生成軟件升級包的情況下,根據(jù)從編譯服務(wù)器處獲取當(dāng)前編譯文件以及相應(yīng)的歷史編譯文件生成軟件升級包的步驟包括:根據(jù)當(dāng)前編譯配置信息從配置信息集合中獲取至少一個(gè)歷史編譯配置信息,并顯示所述當(dāng)前編譯配置信息以及各歷史編譯配置信息;根據(jù)用戶基于所述顯示的信息而選擇的歷史編譯配置信息從編譯服務(wù)器處獲取當(dāng)前編譯文件以及相應(yīng)的歷史編譯文件,并根據(jù)獲取到的編譯文件生成差分升級包。

可選的,上述用于軟件版本升級的方法,其中,所述在檢測到OTA管理服務(wù)器根據(jù)所述當(dāng)前編譯配置信息確定生成軟件升級包的情況下,根據(jù)從編譯服務(wù)器處獲取當(dāng)前編譯文件以及相應(yīng)的歷史編譯文件生成軟件升級包的步驟還包括:在檢測到成功生成所述差分升級包的信息的情況下,通知測試服務(wù)器對所述差分升級包進(jìn)行測試。

可選的,上述用于軟件版本升級的方法,其中,所述在檢測到OTA管理服務(wù)器根據(jù)所述當(dāng)前編譯配置信息確定生成軟件升級包的情況下,根據(jù)從編譯服務(wù)器處獲取當(dāng)前編譯文件以及相應(yīng)的歷史編譯文件生成軟件升級包的步驟還包括:在檢測到所述OTA管理服務(wù)器接收到來自測試服務(wù)器的差分升級包測試失敗的信息的情況下,顯示生成全量升級包的提示信息,并在接收到用戶基于所述提示信息選擇生成全量升級包的情況下,從編譯服務(wù)器處請求當(dāng)前編譯文件以及用于生成全量升級包的歷史編譯文件,并根據(jù)所述當(dāng)前編譯文件以及歷史編譯文件生成全量升級包。

依據(jù)本發(fā)明的另一個(gè)方面,提供了一種用于軟件版本升級的裝置,所述裝置包括:源碼提交模塊,用于在檢測到源碼管理服務(wù)器接收到用戶提交的源碼文件以及源碼配置信息的情況下,將所述源碼文件以及源碼配置信息傳輸給編譯服務(wù)器;編譯模塊,用于在檢測到所述編譯服務(wù)器從源碼管理服務(wù)器處獲取到所述源碼文件以及源碼配置信息的情況下,對所述源碼文件進(jìn)行編譯形成當(dāng)前編譯文件,在編譯成功后,在所述源碼配置信息中增加本次編譯信息形成當(dāng)前編譯配置信息,并將所述當(dāng)前編譯配置信息提交給空中下載OTA管理服務(wù)器;生成升級包模塊,用于在檢測到OTA管理服務(wù)器根據(jù)所述當(dāng)前編譯配置信息確定生成軟件升級包的情況下,根據(jù)從編譯服務(wù)器處獲取的當(dāng)前編譯文件以及相應(yīng)的歷史編譯文件生成軟件升級包。

可選的,上述用于軟件版本升級的裝置,其中,所述源碼提交模塊具體包括:通知子模塊:用于通過源碼管理服務(wù)器向編譯服務(wù)器發(fā)送編譯通知,所述編譯通知包括:源碼文件以及源碼配置信息的統(tǒng)一資源定位符URL;下載子模塊,用于在檢測到所述編譯服務(wù)器接收到所述編譯通知的情況下,根據(jù)所述編譯通知中的URL從源碼管理服務(wù)器處下載所述源碼文件以及源碼配置信息。

可選的,上述用于軟件版本升級的裝置,其中,所述源碼配置信息包括:表示源碼文件所針對的車輛中的元部件的信息、源碼文件所對應(yīng)的軟件版本號以及表示源碼文件為測試版/正式版源碼文件的信息。

可選的,上述用于軟件版本升級的裝置,其中,所述本次編譯信息包括:本次編譯時(shí)間、執(zhí)行本次編譯操作的編譯服務(wù)器信息以及針對所述元部件對應(yīng)源碼文件的編譯順序號。

可選的,上述用于軟件版本升級的裝置,其中,所述生成升級包模塊具體包括:顯示子模塊,用于根據(jù)當(dāng)前編譯配置信息從配置信息集合中獲取至少一個(gè)歷史編譯配置信息,并顯示所述當(dāng)前編譯配置信息以及各歷史編譯配置信息;生成差分升級包子模塊,用于根據(jù)用戶基于所述顯示的信息而選擇的歷史編譯配置信息從編譯服務(wù)器處獲取當(dāng)前編譯文件以及相應(yīng)的歷史編譯文件,并根據(jù)獲取到的編譯文件生成差分升級包。

可選的,上述用于軟件版本升級的裝置,其中,所述生成升級包模塊還包括:測試請求子模塊,用于在檢測到成功生成所述差分升級包的信息的情況下,通知測試服務(wù)器對所述差分升級包進(jìn)行測試。

可選的,上述用于軟件版本升級的裝置,其中,所述生成升級包模塊還包括:生成全量升級包子模塊,用于在檢測到所述OTA管理服務(wù)器接收到來自測試服務(wù)器的差分升級包測試失敗的信息的情況下,觸發(fā)顯示子模塊顯示生成全量升級包的提示信息,并在接收到用戶基于所述提示信息選擇生成全量升級包的情況下,從編譯服務(wù)器處請求當(dāng)前編譯文件以及用于生成全量升級包的歷史編譯文件,并根據(jù)所述當(dāng)前編譯文件以及歷史編譯文件生成全量升級包。

本發(fā)明提供的用于軟件版本升級的方法及裝置至少具有下列優(yōu)點(diǎn)和有益效果:本發(fā)明通過檢測可以自動(dòng)發(fā)現(xiàn)用戶向源碼管理服務(wù)器提交了源碼文件以及源碼配置信息,并可以自動(dòng)將源碼文件以及源碼配置信息由源碼管理服務(wù)器提供給編譯服務(wù)器;本發(fā)明在檢測到編譯服務(wù)器從源碼管理服務(wù)器處獲取到所述源碼文件以及源碼配置信息的情況下,通過運(yùn)行腳本中的編譯命令等方式可以實(shí)現(xiàn)對源碼文件自行編譯的操作;通過在源碼配置信息增加本次編譯信息而生成當(dāng)前編譯配置信息,在后續(xù)的生成軟件升級包的過程中,可以充分了解各編譯文件的情況,從而可以通過OTA管理服務(wù)器有針對性的基于當(dāng)前編譯文件以及相應(yīng)的歷史編譯文件生成新版本的軟件升級包;從而本發(fā)明可以有效避免軟件版本升級需要不同部門的工作人員之間進(jìn)行協(xié)作配合的現(xiàn)象,進(jìn)而可以有效避免由于軟件版本升級過程中的人為錯(cuò)誤而導(dǎo)致的升級包異常的現(xiàn)象。由此可知,本發(fā)明提供的技術(shù)方案降低了軟件版本升級的人工成本,并提高了軟件升級包的可靠性。

上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。

附圖說明

通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。本實(shí)施例的附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號表示相同的部件。在附圖中:

圖1為本發(fā)明一個(gè)實(shí)施例的用于軟件版本升級的方法的流程圖;

圖2為本發(fā)明一個(gè)實(shí)施例的OTA固件升級的方法的流程圖;

圖3為本發(fā)明一個(gè)實(shí)施例的用于軟件版本升級的裝置的結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本發(fā)明公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本發(fā)明公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本發(fā)明的技術(shù)方案,并且能夠?qū)⒈景l(fā)明公開的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。

下面為本發(fā)明的一個(gè)用于軟件版本升級的方法的實(shí)施例。

本實(shí)施例的用于軟件版本升級的方法通常應(yīng)用于對智能電子設(shè)備中的軟件進(jìn)行升級,尤其適用于對智能移動(dòng)電話、智能車輛的車載電子系統(tǒng)以及平板電腦等移動(dòng)智能電子設(shè)備中的軟件進(jìn)行升級。

本實(shí)施例的軟件可以為固件,也可以為智能電子設(shè)備中安裝的APP等應(yīng)用。本實(shí)施例中的固件(Firmware)通常是指負(fù)責(zé)智能電子設(shè)備中的基礎(chǔ)且底層工作的軟件/程序,即固件是使硬件設(shè)備得以正常運(yùn)行的程序代碼。本實(shí)施例的固件可以具體為智能電子設(shè)備的操作系統(tǒng),如智能移動(dòng)電話的固件可以為智能移動(dòng)電話的操作系統(tǒng),車載電子系統(tǒng)的固件可以車載電子系統(tǒng)的操作系統(tǒng)等。本實(shí)施例的固件也可以為智能電子設(shè)備中的某硬件的驅(qū)動(dòng)程序,如本實(shí)施例的固件可以為車輛中的儀表系統(tǒng)、ADAS(Advanced Driver Assistance Systems,先進(jìn)的駕駛系統(tǒng))以及中控設(shè)備等的驅(qū)動(dòng)程序。另外,本實(shí)施例的固件通常會被寫入智能電子設(shè)備的EROM(Eraseable Read Only Memory,可擦寫只讀存儲器)或者EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲器)中。

本實(shí)施例的用于軟件版本升級的方法的流程如圖1所示,且本實(shí)施例的該方法主要包括:步驟S100、步驟S110以及步驟S120。下面對本實(shí)施例的該方法所包括各步驟分別進(jìn)行詳細(xì)說明。

圖1中,S100、在檢測到源碼管理服務(wù)器接收到用戶提交的源碼文件以及源碼配置信息的情況下,將源碼文件以及源碼配置信息傳輸給編譯服務(wù)器。

作為示例,本實(shí)施例中的源碼管理服務(wù)器是各用戶所使用的終端設(shè)備與編譯服務(wù)器之間的橋梁,即各用戶編寫的源碼文件需經(jīng)由源碼管理服務(wù)器統(tǒng)一提交給編譯服務(wù)器;一個(gè)具體的例子,用戶在完成其針對車輛中的元部件的驅(qū)動(dòng)程序升級的源碼文件的編寫工作,并對該源碼文件設(shè)置了源碼配置信息(如源碼配置文件)之后,可以主動(dòng)向源碼管理服務(wù)器提交該源碼文件以及源碼配置文件,且該提交過程可以具體為向源碼管理服務(wù)器上傳文件的過程。

一個(gè)具體的例子,本實(shí)施例預(yù)先在源碼管理服務(wù)器處設(shè)置了源碼管理網(wǎng)址,用戶可以通過其終端設(shè)備(如計(jì)算機(jī)等)訪問該源碼管理網(wǎng)址,本實(shí)施例根據(jù)終端設(shè)備對源碼管理服務(wù)器中的源碼管理網(wǎng)址的訪問向終端設(shè)備推送源碼管理網(wǎng)頁,且該網(wǎng)頁中設(shè)置有源碼提交按鈕;在該源碼提交按鈕被用戶點(diǎn)擊時(shí),本實(shí)施例從源碼管理服務(wù)器向終端設(shè)備推送源碼提交窗口,且該源碼提交窗口中包含能夠供用戶選擇需要提交的文件的文件選擇按鈕,在該文件選擇按鈕被用戶點(diǎn)擊后,可以展現(xiàn)用戶所使用的終端設(shè)備中的磁盤目錄信息以及磁盤目錄下的文件夾信息等,用戶在選擇了終端設(shè)備中的相應(yīng)磁盤的相應(yīng)存儲路徑(即文件夾)下的源碼文件以及源碼配置文件,并點(diǎn)擊了確定提交按鈕后,本實(shí)施例可以將終端設(shè)備中的相應(yīng)存儲路徑下的源碼文件以及源碼配置文件上傳至源碼管理服務(wù)器,且該源碼文件以及源碼配置文件對應(yīng)有相應(yīng)的URL(Uniform Resoure Locator,統(tǒng)一資源定位符),從而源碼文件以及源碼配置文件被成功提交給源碼管理服務(wù)器,并存儲于源碼管理服務(wù)器的相應(yīng)存儲路徑中。

作為示例,本實(shí)施例中的源碼配置文件中的源碼配置信息主要包括:表示源碼文件所針對的車輛中的元部件的信息、源碼文件所對應(yīng)的軟件版本號(如V1.0.0)以及表示源碼文件為測試版源碼文件還是正式版源碼文件的信息;其中的表示源碼文件所針對的車輛的元部件的信息可以具體為:表示儀表系統(tǒng)的信息(如儀表系統(tǒng)的ID或者代碼等)、表示ADAS的信息(如ADAS的ID或者代碼等)或者表示中控設(shè)備的信息(如中控設(shè)備的ID或者代碼)等;其中的軟件版本號可以由版本管理服務(wù)器設(shè)置,當(dāng)然,軟件版本號也可以由用戶手動(dòng)設(shè)置。另外,本實(shí)施例還可以在向源碼管理服務(wù)器成功提交源碼文件以及源碼配置文件之后,通知版本管理服務(wù)器,以便于版本管理服務(wù)器可以為下一個(gè)用于升級的源碼文件形成軟件版本號。另外,本實(shí)施例中的源碼配置信息還可以包括:表示需求方的渠道信息等。

作為示例,本實(shí)施例可以在檢測到由源碼管理服務(wù)器向用戶的終端設(shè)備發(fā)送的提交成功信息時(shí),確定出源碼管理服務(wù)器成功接收到用戶提交的源碼文件以及源碼配置文件。

作為示例,本實(shí)施例可以在檢測到源碼管理服務(wù)器成功接收到用戶提交的源碼文件以及源碼配置文件時(shí),及時(shí)并主動(dòng)的向編譯服務(wù)器推送源碼文件以及源碼配置文件(如通過調(diào)用推送命令從而執(zhí)行相應(yīng)的腳本以將碼文件以及源碼配置文件推送給編譯服務(wù)器),本實(shí)施例也可以先向編譯服務(wù)器發(fā)送編譯通知,以通知編譯服務(wù)器來獲取源碼文件以及源碼配置文件;當(dāng)然,本實(shí)施例也可以在檢測到源碼管理服務(wù)器接收到用戶提交的源碼文件以及源碼配置文件后,在一天的預(yù)定時(shí)間(如凌晨1時(shí))主動(dòng)向編譯服務(wù)器推送源碼文件以及源碼配置信息或者向編譯服務(wù)器發(fā)送編譯通知。另外,本實(shí)施例可以在檢測到源碼管理服務(wù)器在預(yù)定時(shí)間段(如一天)內(nèi)成功接收到多個(gè)用戶提交的源碼文件以及源碼配置文件的情況下,主動(dòng)的將該預(yù)定時(shí)間段內(nèi)成功接收到的所有源碼文件以及源碼配置文件一起推送給編譯服務(wù)器或者向編譯服務(wù)器發(fā)送一個(gè)編譯通知,也可以針對每一次成功接收到的源碼文件以及源碼配置文件分別向編譯服務(wù)器發(fā)送一個(gè)編譯通知。

作為示例,本實(shí)施例中的編譯通知可以包括:獲得源碼文件以及源碼配置文件的方式,如編譯通知可以包括:源碼文件以及源碼配置文件在源碼管理服務(wù)器中的URL。在針對源碼管理服務(wù)器在預(yù)定時(shí)間段內(nèi)成功接收到的所有源碼文件以及源碼配置文件向編譯服務(wù)器發(fā)送一個(gè)編譯通知的情況下,該編譯通知中可以包括所有源碼文件以及源碼配置文件的URL列表。通過利用URL來使編譯服務(wù)器獲取源碼文件和源碼配置文件,可以使編譯服務(wù)器獲取源碼文件和源碼配置文件的方式更靈活。

作為示例,本實(shí)施例在檢測到編譯服務(wù)器接收到編譯通知的情況下,根據(jù)該編譯通知從源碼管理服務(wù)器處獲取源碼文件以及源碼配置文件,如根據(jù)編譯通知中的URL從源碼管理服務(wù)器處下載源碼文件以及源碼配置文件。

需要特別說明的是,本實(shí)施例中的源碼管理服務(wù)器、編譯服務(wù)器以及版本管理服務(wù)器均是指邏輯意義上的服務(wù)器,也就是說,源碼管理服務(wù)器、編譯服務(wù)器以及版本管理服務(wù)器可以位于同一臺物理設(shè)備中,且該物理設(shè)備還可以集成設(shè)置其他服務(wù)器,當(dāng)然,源碼管理服務(wù)器、編譯服務(wù)器以及版本管理服務(wù)器器也可以位于不同的物理設(shè)備中。

S110、在檢測到編譯服務(wù)器從源碼管理服務(wù)器處獲取到源碼文件以及源碼配置信息的情況下,對源碼文件進(jìn)行編譯形成當(dāng)前編譯文件,在編譯成功后,在源碼配置信息中增加本次編譯信息形成當(dāng)前編譯配置信息,并將當(dāng)前編譯配置信息提交給OTA管理服務(wù)器。

作為示例,本實(shí)施例可以在檢測到由源碼管理服務(wù)器向編譯服務(wù)器發(fā)送的下載成功的響應(yīng)信息時(shí),確定出編譯服務(wù)器從源碼管理服務(wù)器處成功獲取到源碼文件以及源碼配置文件。本實(shí)施例可以在確定出編譯服務(wù)器從源碼管理服務(wù)器處成功獲取到源碼文件以及源碼配置文件時(shí),及時(shí)的對源碼文件執(zhí)行編譯操作,也可以在一天的預(yù)定時(shí)間(如凌晨1時(shí))對源碼文件執(zhí)行編譯操作。

作為示例,本實(shí)施例可以通過調(diào)用相應(yīng)的編譯命令來對源碼文件執(zhí)行編譯操作,一個(gè)具體的例子,針對QNX系統(tǒng)(Quick UNIX系統(tǒng)),在將源碼文件編譯為IMAGE文件的情況下,可以通過調(diào)用下述編譯命令來對源碼文件執(zhí)行編譯操作:

mksysimage.bat–vvvvvvv-o"%WORKSPACE%\image\%BUILD_NUMBER%"jacinto6evm.external

其中,mksysimage.bat為QNX系統(tǒng)中的用于形成IMAGE文件的編譯命令名;-vvvvvvv為編譯命令參數(shù);%WORKSPACE%\image\表示編譯形成的IMAGE文件的存儲路徑;%BUILD_NUMBER%為針對元部件(如車輛的儀表系統(tǒng)或者中控系統(tǒng)等)對應(yīng)源碼文件的編譯順序號(如針對儀表系統(tǒng)的第100次編譯),且該順序號是由編譯服務(wù)器自動(dòng)生成的;jacinto6evm.external表示與CPU相關(guān)的參數(shù)。

利用上述編譯命令生成的IMAGE文件可以包括:Base.img、Data.img以及Boot.img等。本實(shí)施例不限制編譯命令的具體表現(xiàn)形式以及調(diào)用編譯命令所生成的當(dāng)前編譯文件的具體表現(xiàn)形式。

作為示例,本實(shí)施例可以在源碼配置文件中增加本次編譯信息,從而使源碼配置文件形成當(dāng)前編譯配置文件,且本次編譯信息可以具體包括:本次編譯時(shí)間(如調(diào)用編譯命令的時(shí)間或者編譯成功的時(shí)間)、執(zhí)行本次編譯操作的編譯服務(wù)器信息(如編譯服務(wù)器名稱或者編譯服務(wù)器ID等)以及本次編譯順序號等。另外,本實(shí)施例最終形成的軟件升級包的版本號可以由源碼文件所對應(yīng)的軟件版本號(如V1.0.1)、表示源碼文件所針對的車輛中的元部件的信息(如元部件ID)以及編譯時(shí)間等信息形成。

作為示例,本實(shí)施例在檢測到編譯命令成功執(zhí)行完成(即成功生成當(dāng)前編譯文件)的情況下,通常會先將由本次編譯信息和源碼配置文件形成的當(dāng)前編譯配置文件提交給OTA管理服務(wù)器;如本實(shí)施例可以在監(jiān)測到編譯命令成功執(zhí)行完成時(shí),通過調(diào)用推送命令以執(zhí)行相應(yīng)的腳本從而使當(dāng)前編譯配置文件提交給OTA管理服務(wù)器,上述用于向OTA管理服務(wù)器推送當(dāng)前編譯配置文件的推送命令的一個(gè)具體例子如下:

python push_compile_os_cmd.py"dashboard"1.0.1-0163-D-1610100346;

其中,python為調(diào)用的推送命令,push_compile_os_cmd.py為用于實(shí)現(xiàn)源碼配置文件推送的腳本,該腳本可以對1.0.1-0163-D-1610100346進(jìn)行相應(yīng)的處理(如格式調(diào)整等),從而使當(dāng)前編譯配置信息(如軟件版本信息等)推送到OTA管理服務(wù)器,且1.0.1為軟件版本號,0163為本次編譯順序號(如針對車輛的儀表系統(tǒng)的第163次編譯),D表示debug模式,1610100346表示本次編譯時(shí)間。

作為示例,本實(shí)施例也可以采用其他方式將當(dāng)前編譯文件提交給OTA管理服務(wù)器,如本實(shí)施例可以在檢測到編譯命令成功執(zhí)行完成時(shí),及時(shí)向OTA管理服務(wù)器發(fā)送版本升級通知,以通知OTA管理服務(wù)器來獲取當(dāng)前編譯配置文件;當(dāng)然,本實(shí)施例也可以在檢測到編譯服務(wù)器在預(yù)定時(shí)間段內(nèi)獲取到的所有源碼文件均成功編譯完成后,在一天的預(yù)定時(shí)間(如凌晨1時(shí))向OTA管理服務(wù)器發(fā)送版本升級通知。另外,本實(shí)施例可以針對每一個(gè)當(dāng)前編譯文件向OTA管理服務(wù)器發(fā)送一個(gè)版本升級通知,也可以針對在預(yù)定時(shí)間段內(nèi)成功編譯的所有當(dāng)前編譯文件向OTA管理服務(wù)器發(fā)送一個(gè)版本升級通知。上述版本升級通知可以包括:獲得當(dāng)前編譯配置文件的方式,如版本升級通知可以包括:當(dāng)前編譯配置信息的URL。在針對源碼管理服務(wù)器在預(yù)定時(shí)間段內(nèi)成功編譯的所有當(dāng)前編譯文件以及當(dāng)前編譯配置文件向OTA管理服務(wù)器發(fā)送一個(gè)版本升級通知的情況下,該版本升級通知中應(yīng)包括所有當(dāng)前編譯配置文件的URL列表。

作為示例,本實(shí)施例應(yīng)將當(dāng)前編譯文件以及當(dāng)前編譯配置信息存儲于本地的軟件版本集合中,且在本次軟件版本升級的方法結(jié)束后,當(dāng)前編譯文件成為歷史編譯文件,而當(dāng)前編譯配置信息成為歷史編譯配置文件。

S120、在檢測到OTA管理服務(wù)器根據(jù)當(dāng)前編譯配置信息確定生成軟件升級包的情況下,根據(jù)從編譯服務(wù)器處獲取的當(dāng)前編譯文件以及相應(yīng)的歷史編譯文件生成軟件升級包。

作為示例,本實(shí)施例中的OTA管理服務(wù)器可以接收到編譯服務(wù)器主動(dòng)推送來的當(dāng)前編譯配置文件,OTA管理服務(wù)器也可以接收到版本升級通知;在接收到版本升級通知的情況下,本實(shí)施例可以根據(jù)版本升級通知從編譯服務(wù)器處獲取當(dāng)前編譯配置文件,如根據(jù)版本升級通知中的URL從編譯服務(wù)器處下載當(dāng)前編譯配置文件。

需要特別說明的是,本實(shí)施例中的OTA管理服務(wù)器是指邏輯意義上的服務(wù)器,如OTA管理服務(wù)器可以與源碼管理服務(wù)器和/或編譯服務(wù)器和/或版本管理服務(wù)器位于同一臺物理設(shè)備中,且該物理設(shè)備中還可以集成設(shè)置其他服務(wù)器,當(dāng)然,OTA管理服務(wù)器也可以與源碼管理服務(wù)器、編譯服務(wù)器以及版本管理服務(wù)器位于不同的物理設(shè)備中。

作為示例,本實(shí)施例可以在檢測到OTA管理服務(wù)器從編譯服務(wù)器處成功獲取到當(dāng)前編譯配置文件的情況下,對當(dāng)前編譯配置文件進(jìn)行解析,以判斷當(dāng)前編譯文件所具有的特征,如當(dāng)前編譯文件所針對的車輛的元部件、本次編譯時(shí)間、當(dāng)前編譯文件屬于測試版編譯文件還是正式版編譯文件以及軟件版本號等等,并根據(jù)當(dāng)前編譯文件所具有的特征判斷是否針對當(dāng)前編譯文件執(zhí)行生成差分升級包的操作,在判斷出需要針對當(dāng)前編譯文件執(zhí)行生成差分升級包的操作時(shí),可以從編譯服務(wù)器處獲取相應(yīng)的歷史配置文件并顯示,如獲取針對車輛中的同一元部件的所有歷史編譯配置文件,以便于用戶可以選擇確定生成本次軟件升級的差分升級包的編譯文件。

作為示例,本實(shí)施例可以根據(jù)用戶的選擇向編譯服務(wù)器請求獲取當(dāng)前編譯文件以及與當(dāng)前編譯文件生成差分升級包的歷史編譯文件,并針對請求獲得的當(dāng)前編譯文件和歷史編譯文件調(diào)用相應(yīng)的命令,以生成差分升級包,生成差分升級包的一個(gè)命令的具體例子如下:

Diffimg V1.0.0update.bin old_version_path new_version_path

其中的Diffimg為生成差分升級包的命令,V1.0.0為歷史編譯文件的軟件版本號,update.bin為本次生成的差分升級包,version_path為歷史編譯文件在OTA管理服務(wù)器中的存儲路徑,new_version_path為當(dāng)前編譯文件的存儲路徑。

作為示例,本實(shí)施例可以在檢測到成功生成差分升級包的信息時(shí),通知測試服務(wù)器對當(dāng)前生成的差分升級包進(jìn)行測試,并在檢測到OTA管理服務(wù)器接收到來自測試服務(wù)器的差分升級包測試成功的信息的情況下,如果該差分升級包為正式版差分升級包,則本實(shí)施例可以執(zhí)行后續(xù)向客戶端發(fā)布版本升級信息的操作,如將該差分升級包提交給下載服務(wù)器等,以便于由下載服務(wù)器向各客戶端推送差分升級信息等;而如果該差分升級包為測試版差分升級包,則本實(shí)施例不需要執(zhí)行后續(xù)向客戶端發(fā)布版本升級信息的操作。

作為示例,本實(shí)施例可以在檢測到未成功生成差分升級包的信息的情況下,可以顯示生成全量升級包的提示信息,在用戶基于該提示信息而選擇生成全量升級包時(shí),可以向編譯服務(wù)器請求獲得用于生成權(quán)利升級包的當(dāng)前編譯文件以及所有歷史編譯文件,并通過調(diào)用相應(yīng)的命令生成全量升級包,如通過調(diào)用相應(yīng)的命令針對編譯服務(wù)器傳輸來的當(dāng)前編譯文件以及歷史編譯文件生成全量升級包。另外,本實(shí)施例可以在檢測到成功生成全量升級包的信息的情況下,通知測試服務(wù)器對當(dāng)前生成的全量升級包進(jìn)行測試,并在檢測到OTA管理服務(wù)器接收到來自測試服務(wù)器的全量升級包測試成功的信息的情況下,如果該全量升級包為正式版全量升級包,則本實(shí)施例可以執(zhí)行后續(xù)向客戶端發(fā)布版本升級信息的操作,如將該全量升級包提交給下載服務(wù)器,以便于由下載服務(wù)器向各客戶端推送全量升級信息等;而如果該全量升級包為測試版全量升級包,則本實(shí)施例不需要執(zhí)行后續(xù)向客戶端發(fā)布版本升級信息的操作。

在一個(gè)實(shí)施例中,包含有本發(fā)明的用于軟件版本升級的方法的OTA固件升級方法的流程如圖2所示。

圖2中,S200、在接收到用戶提交的源碼文件以及源碼配置文件后,通過調(diào)用相應(yīng)的編譯命令對源碼按文件進(jìn)行編譯,形成當(dāng)前編譯文件,并在源碼配置文件中增加本次編譯信息,使源碼配置文件形成當(dāng)前編譯配置文件。

S210、生成新的固件版本信息,并將該新的固件版本信息提交給版本管理服務(wù)器。

S220、網(wǎng)絡(luò)側(cè)(如OTA管理服務(wù)器)顯示當(dāng)前編譯配置文件以及歷史編譯配置信息,以便于用戶選擇與當(dāng)前編譯文件一起生成固件差分升級包的歷史編譯文件。

S230、網(wǎng)絡(luò)側(cè)(如OTA管理服務(wù)器)根據(jù)用戶的選擇生成固件差分升級包之后,請求測試服務(wù)器對固件差分升級包進(jìn)行測試,在接收到測試服務(wù)器返回的測試成功的信息后,將該固件差分升級包提交給下載管理服務(wù)器,由下載管理服務(wù)器向各客戶端分別推送固件版本升級通知。

S240、客戶端在根據(jù)該通知下載固件差分升級包,并執(zhí)行安裝固件差分升級包的操作,如果在成功安裝該固件差分升級包,則到步驟S250;如果在下載以及安裝過程中出現(xiàn)下載失敗或者校驗(yàn)失敗或者安裝失敗等現(xiàn)象,則到步驟S260。

S250、向下載管理服務(wù)器返回OTA固件升級成功的信息。

S260、向下載管理服務(wù)器返回OTA固件升級失敗的信息。

本實(shí)施例大量的減少了固件升級工作量,提高了OTA固件升級的自動(dòng)化程度以及可靠性,并降低了OTA固件升級的網(wǎng)絡(luò)側(cè)管理成本。

下面為本發(fā)明的用于軟件版本升級的裝置的一個(gè)實(shí)施例。

本實(shí)施例的用于軟件版本升級的裝置通常應(yīng)用于對智能電子設(shè)備中的軟件進(jìn)行升級,尤其適用于對智能移動(dòng)電話、智能車輛的車載電子系統(tǒng)以及平板電腦等移動(dòng)智能電子設(shè)備中的軟件進(jìn)行升級。

本實(shí)施例的用于軟件版本升級的裝置的結(jié)構(gòu)如圖3所示,且該裝置主要包括:源碼提交模塊300、編譯模塊310以及生成升級包模塊320;其中的源碼提交模塊300包括:通知子模塊以及下載子模塊;其中的生成升級包模塊320包括:顯示子模塊、生成差分升級包子模塊、測試請求子模塊以及生成全量升級包子模塊。下面對本實(shí)施例的裝置所包括各模塊分別進(jìn)行詳細(xì)說明。

源碼提交模塊300主要用于在檢測到源碼管理服務(wù)器接收到用戶提交的源碼文件以及源碼配置信息的情況下,將源碼文件以及源碼配置信息傳輸給編譯服務(wù)器;源碼提交模塊300中的通知子模塊可以設(shè)置于源碼管理服務(wù)器中,且主要用于通過源碼管理服務(wù)器向編譯服務(wù)器發(fā)送編譯通知,且該編譯通知包括:源碼文件以及源碼配置信息的統(tǒng)一資源定位符URL;源碼提交模塊300中的下載子模塊可以設(shè)置于編譯服務(wù)器中,且主要用于在檢測到編譯服務(wù)器接收到編譯通知的情況下,根據(jù)編譯通知中的URL從源碼管理服務(wù)器處下載源碼文件以及源碼配置信息。

作為示例,各用戶編寫的源碼文件可以經(jīng)由源碼提交模塊300統(tǒng)一提交給編譯服務(wù)器;一個(gè)具體的例子,用戶在完成其針對車輛中的元部件的驅(qū)動(dòng)程序升級的源碼文件的編寫工作,并對該源碼文件設(shè)置了源碼配置信息(如源碼配置文件)之后,可以主動(dòng)向源碼管理服務(wù)器中的源碼提交模塊300提交該源碼文件以及源碼配置文件,且該提交過程可以具體為向源碼管理服務(wù)器中的源碼提交模塊300上傳文件的過程。

一個(gè)具體的例子,本實(shí)施例的源碼管理服務(wù)器處的源碼提交模塊300設(shè)置有源碼管理網(wǎng)址,用戶可以通過其終端設(shè)備(如計(jì)算機(jī)等)訪問該源碼管理網(wǎng)址,源碼提交模塊300根據(jù)終端設(shè)備對源碼管理服務(wù)器中的源碼管理網(wǎng)址的訪問向終端設(shè)備推送源碼管理網(wǎng)頁,且源碼提交模塊300在該網(wǎng)頁中設(shè)置了源碼提交按鈕;在該源碼提交按鈕被用戶點(diǎn)擊時(shí),源碼提交模塊300從源碼管理服務(wù)器向終端設(shè)備推送源碼提交窗口,且源碼提交模塊300在該源碼提交窗口中設(shè)置有能夠供用戶選擇需要提交的文件的文件選擇按鈕,在該文件選擇按鈕被用戶點(diǎn)擊后,可以展現(xiàn)用戶所使用的終端設(shè)備中的磁盤目錄信息以及磁盤目錄下的文件夾信息等,用戶在選擇了終端設(shè)備中的相應(yīng)磁盤的相應(yīng)存儲路徑(即文件夾)下的源碼文件以及源碼配置文件,并點(diǎn)擊了確定提交按鈕后,終端設(shè)備中的相應(yīng)存儲路徑下的源碼文件以及源碼配置文件被上傳至源碼管理服務(wù)器,且該源碼文件以及源碼配置文件對應(yīng)有相應(yīng)的URL,從而源碼文件以及源碼配置文件被成功提交給源碼管理服務(wù)器,并存儲于源碼管理服務(wù)器的相應(yīng)存儲路徑中。

作為示例,本實(shí)施例中的源碼配置文件中的源碼配置信息主要包括:表示源碼文件所針對的車輛中的元部件的信息、源碼文件所對應(yīng)的軟件版本號(如V1.0.0)以及表示源碼文件為測試版源碼文件還是正式版源碼文件的信息;其中的表示源碼文件所針對的車輛的元部件的信息可以具體為:表示儀表系統(tǒng)的信息(如儀表系統(tǒng)的ID或者代碼等)、表示ADAS的信息(如ADAS的ID或者代碼等)或者表示中控設(shè)備的信息(如中控設(shè)備的ID或者代碼)等;其中的軟件版本號可以由版本管理服務(wù)器設(shè)置,當(dāng)然,軟件版本號也可以由用戶手動(dòng)設(shè)置。另外,本實(shí)施例還可以在向源碼管理服務(wù)器成功提交源碼文件以及源碼配置文件之后,通知版本管理服務(wù)器,以便于版本管理服務(wù)器可以為下一個(gè)用于升級的源碼文件形成軟件版本號。

作為示例,源碼提交模塊300可以在檢測到由源碼管理服務(wù)器向用戶的終端設(shè)備發(fā)送的提交成功信息時(shí),確定出源碼管理服務(wù)器成功接收到用戶提交的源碼文件以及源碼配置文件。

作為示例,源碼提交模塊300可以在檢測到源碼管理服務(wù)器成功接收到用戶提交的源碼文件以及源碼配置文件時(shí),及時(shí)并主動(dòng)的向編譯服務(wù)器推送源碼文件以及源碼配置文件(如通過調(diào)用推送命令從而執(zhí)行相應(yīng)的腳本以將碼文件以及源碼配置文件推送給編譯服務(wù)器),源碼提交模塊300(如通知子模塊)也可以先向編譯服務(wù)器發(fā)送編譯通知,以通知編譯服務(wù)器(如下載子模塊)來獲取源碼文件以及源碼配置文件;當(dāng)然,源碼提交模塊300(如通知子模塊)也可以在檢測到源碼管理服務(wù)器接收到用戶提交的源碼文件以及源碼配置文件后,在一天的預(yù)定時(shí)間(如凌晨1時(shí))主動(dòng)向編譯服務(wù)器推送源碼文件以及源碼配置信息或者向編譯服務(wù)器發(fā)送編譯通知。另外,源碼提交模塊300(如通知子模塊)可以在檢測到源碼管理服務(wù)器在預(yù)定時(shí)間段(如一天)內(nèi)成功接收到多個(gè)用戶提交的源碼文件以及源碼配置文件的情況下,主動(dòng)的將該預(yù)定時(shí)間段內(nèi)成功接收到的所有源碼文件以及源碼配置文件一起推送給編譯服務(wù)器或者向編譯服務(wù)器發(fā)送一個(gè)編譯通知,源碼提交模塊300(如通知子模塊)也可以針對每一次成功接收到的源碼文件以及源碼配置文件分別向編譯服務(wù)器發(fā)送一個(gè)編譯通知。

作為示例,本實(shí)施例中的編譯通知可以包括:獲得源碼文件以及源碼配置文件的方式,如編譯通知可以包括:源碼文件以及源碼配置文件在源碼管理服務(wù)器中的URL。在針對源碼管理服務(wù)器在預(yù)定時(shí)間段內(nèi)成功接收到的所有源碼文件以及源碼配置文件向編譯服務(wù)器發(fā)送一個(gè)編譯通知的情況下,源碼提交模塊300(如通知子模塊)下發(fā)的編譯通知中可以包括所有源碼文件以及源碼配置文件的URL列表。

作為示例,源碼提交模塊300(如下載子模塊)在檢測到編譯服務(wù)器接收到編譯通知的情況下,根據(jù)該編譯通知從源碼管理服務(wù)器處獲取源碼文件以及源碼配置文件,如源碼提交模塊300(如下載子模塊)根據(jù)編譯通知中的URL從源碼管理服務(wù)器處下載源碼文件以及源碼配置文件。

需要特別說明的是,雖然本實(shí)施例中的通知子模塊設(shè)置于源碼管理服務(wù)器中,而下載子模塊設(shè)置于編譯服務(wù)器中,但是,通知子模塊和下載子模塊可以位于同一臺物理設(shè)備中,當(dāng)然,通知子模塊和下載子模塊也可以位于不同的物理設(shè)備中。

編譯模塊310主要用于在檢測到編譯服務(wù)器從源碼管理服務(wù)器處獲取到源碼文件以及源碼配置信息的情況下,對源碼文件進(jìn)行編譯形成當(dāng)前編譯文件,在編譯成功后,在源碼配置信息中增加本次編譯信息形成當(dāng)前編譯配置信息,并將當(dāng)前編譯配置信息提交給空中下載OTA管理服務(wù)器。

作為示例,編譯模塊310可以在檢測到由源碼管理服務(wù)器向編譯服務(wù)器發(fā)送的下載成功的響應(yīng)信息時(shí),確定出編譯服務(wù)器從源碼管理服務(wù)器處成功獲取到源碼文件以及源碼配置文件。編譯模塊310可以在確定出編譯服務(wù)器從源碼管理服務(wù)器處成功獲取到源碼文件以及源碼配置文件時(shí),及時(shí)的對源碼文件執(zhí)行編譯操作,編譯模塊310也可以在一天的預(yù)定時(shí)間(如凌晨1時(shí))對源碼文件執(zhí)行編譯操作。

作為示例,編譯模塊310可以通過調(diào)用相應(yīng)的編譯命令來對源碼文件執(zhí)行編譯操作,一個(gè)具體的例子,針對QNX系統(tǒng)(Quick UNIX系統(tǒng)),在將源碼文件編譯為IMAGE文件的情況下,編譯模塊310可以通過調(diào)用上述方法實(shí)施例中記載的編譯命令來對源碼文件執(zhí)行編譯操作,在此不再重復(fù)說明。

編譯模塊310利用上述編譯命令生成的IMAGE文件可以包括:Base.img、Data.img以及Boot.img等。本實(shí)施例不限制編譯模塊310所調(diào)用的編譯命令的具體表現(xiàn)形式以及調(diào)用編譯命令所生成的當(dāng)前編譯文件的具體表現(xiàn)形式。

作為示例,編譯模塊310可以在源碼配置文件中增加本次編譯信息,從而使源碼配置文件形成當(dāng)前編譯配置文件,且本次編譯信息可以具體包括:本次編譯時(shí)間(如調(diào)用編譯命令的時(shí)間或者編譯成功的時(shí)間)、執(zhí)行本次編譯操作的編譯服務(wù)器信息(如編譯服務(wù)器名稱或者編譯服務(wù)器ID等)以及本次編譯順序號等。

作為示例,編譯模塊310在檢測到編譯命令成功執(zhí)行完成(即成功生成當(dāng)前編譯文件)的情況下,通常會先將由本次編譯信息和源碼配置文件形成的當(dāng)前編譯配置文件提交給OTA管理服務(wù)器;如編譯模塊310可以在監(jiān)測到編譯命令成功執(zhí)行完成時(shí),通過調(diào)用推送命令以執(zhí)行相應(yīng)的腳本從而使當(dāng)前編譯配置文件提交給OTA管理服務(wù)器,上述用于向OTA管理服務(wù)器推送當(dāng)前編譯配置文件的推送命令的一個(gè)具體例子如上述方法實(shí)施例中的描述,在此不再重復(fù)說明。

作為示例,編譯模塊310可以采用其他方式將當(dāng)前編譯文件提交給OTA管理服務(wù)器,如編譯模塊310可以在檢測到編譯命令成功執(zhí)行完成時(shí),及時(shí)向OTA管理服務(wù)器發(fā)送版本升級通知,以通知OTA管理服務(wù)器來獲取當(dāng)前編譯配置文件;當(dāng)然,編譯模塊310也可以在檢測到編譯服務(wù)器在預(yù)定時(shí)間段內(nèi)獲取到的所有源碼文件均成功編譯完成后,在一天的預(yù)定時(shí)間(如凌晨1時(shí))向OTA管理服務(wù)器發(fā)送版本升級通知。另外,編譯模塊310可以針對每一個(gè)當(dāng)前編譯文件向OTA管理服務(wù)器發(fā)送一個(gè)版本升級通知,也可以針對在預(yù)定時(shí)間段內(nèi)成功編譯的所有當(dāng)前編譯文件向OTA管理服務(wù)器發(fā)送一個(gè)版本升級通知。上述版本升級通知可以包括:獲得當(dāng)前編譯配置文件的方式,如版本升級通知可以包括:當(dāng)前編譯配置信息的URL。在編譯模塊310針對源碼管理服務(wù)器在預(yù)定時(shí)間段內(nèi)成功編譯的所有當(dāng)前編譯文件以及當(dāng)前編譯配置文件向OTA管理服務(wù)器發(fā)送一個(gè)版本升級通知的情況下,編譯模塊310應(yīng)使該版本升級通知中包括所有當(dāng)前編譯配置文件的URL列表。

作為示例,編譯模塊310應(yīng)將當(dāng)前編譯文件以及當(dāng)前編譯配置信息存儲于編譯服務(wù)器本地的軟件版本集合中,且在本次軟件版本升級的過程結(jié)束后,本地存儲的當(dāng)前編譯文件成為歷史編譯文件,而當(dāng)前編譯配置信息成為歷史編譯配置文件。

生成升級包模塊320主要用于在檢測到OTA管理服務(wù)器根據(jù)當(dāng)前編譯配置信息確定生成軟件升級包的情況下,根據(jù)從編譯服務(wù)器處獲取的當(dāng)前編譯文件以及相應(yīng)的歷史編譯文件生成軟件升級包。生成升級包模塊320中的顯示子模塊主要用于根據(jù)當(dāng)前編譯配置信息從配置信息集合中獲取至少一個(gè)歷史編譯配置信息,并顯示當(dāng)前編譯配置信息以及各歷史編譯配置信息。生成升級包模塊320中的生成差分升級包子模塊主要用于根據(jù)用戶基于顯示的信息而選擇的歷史編譯配置信息從編譯服務(wù)器處獲取當(dāng)前編譯文件以及相應(yīng)的歷史編譯文件,并根據(jù)獲取到的編譯文件生成差分升級包。生成升級包模塊320中的測試請求子模塊主要用于在檢測到成功生成差分升級包的信息的情況下,通知測試服務(wù)器對差分升級包進(jìn)行測試。生成升級包模塊320中的生成全量升級包子模塊主要用于在檢測到OTA管理服務(wù)器接收到來自測試服務(wù)器的差分升級包測試失敗的信息的情況下,觸發(fā)顯示子模塊顯示生成全量升級包的提示信息,并在接收到用戶基于提示信息選擇生成全量升級包的情況下,從編譯服務(wù)器處請求當(dāng)前編譯文件以及用于生成全量升級包的歷史編譯文件,并根據(jù)請求獲得的當(dāng)前編譯文件以及歷史編譯文件生成全量升級包。

作為示例,生成升級包模塊320可以檢測到OTA管理服務(wù)器接收到編譯服務(wù)器主動(dòng)推送來的當(dāng)前編譯配置文件,生成升級包模塊320也可以檢測到OTA管理服務(wù)器接收到版本升級通知,在檢測到OTA管理服務(wù)器接收到版本升級通知的情況下,生成升級包模塊320可以根據(jù)版本升級通知從編譯服務(wù)器處獲取當(dāng)前編譯配置文件,如生成升級包模塊320根據(jù)版本升級通知中的URL從編譯服務(wù)器處下載當(dāng)前編譯配置文件。

需要特別說明的是,雖然本生成升級包模塊320設(shè)置于OTA管理服務(wù)器中,然而,生成升級包模塊320可以與裝置中其他模塊設(shè)置于同一臺物理設(shè)備中,當(dāng)然,生成升級包模塊320也可以與裝置中的其他模塊位于不同的物理設(shè)備中。

作為示例,生成升級包模塊320可以在檢測到OTA管理服務(wù)器從編譯服務(wù)器處成功獲取到當(dāng)前編譯配置文件的情況下,對當(dāng)前編譯配置文件進(jìn)行解析,以判斷當(dāng)前編譯文件所具有的特征,如當(dāng)前編譯文件所針對的車輛的元部件、本次編譯時(shí)間、當(dāng)前編譯文件屬于測試版編譯文件還是正式版編譯文件以及軟件版本號等等,并根據(jù)當(dāng)前編譯文件所具有的特征判斷是否針對當(dāng)前編譯文件執(zhí)行生成差分升級包的操作,在判斷出需要針對當(dāng)前編譯文件執(zhí)行生成差分升級包的操作時(shí),生成升級包模塊320可以從編譯服務(wù)器處獲取相應(yīng)的歷史配置文件,并由顯示子模塊顯示,如獲取針對車輛中的同一元部件的所有歷史編譯配置文件,以便于用戶可以基于顯示子模塊顯示的內(nèi)容確定生成本次軟件升級的差分升級包的編譯文件。

作為示例,生成升級包模塊320(如生成差分升級包子模塊)可以根據(jù)用戶的選擇向編譯服務(wù)器請求獲取當(dāng)前編譯文件以及與當(dāng)前編譯文件生成差分升級包的歷史編譯文件,并針對請求獲得的當(dāng)前編譯文件和歷史編譯文件調(diào)用相應(yīng)的命令,以生成差分升級包,生成差分升級包子模塊所使用的生成差分升級包的一個(gè)命令的具體例子如上述方法實(shí)施例中的描述,在此不再重復(fù)說明。

作為示例,生成升級包模塊320(如測試請求子模塊)可以在檢測到成功生成差分升級包的信息時(shí),通知測試服務(wù)器對當(dāng)前生成的差分升級包進(jìn)行測試,并在檢測到OTA管理服務(wù)器接收到來自測試服務(wù)器的差分升級包測試成功的信息的情況下,如果該差分升級包為正式版差分升級包,則生成升級包模塊320可以執(zhí)行后續(xù)向客戶端發(fā)布版本升級信息的操作,如生成升級包模塊320(如測試請求子模塊)將該差分升級包提交給下載服務(wù)器等,以便于由下載服務(wù)器向各客戶端推送差分升級信息等;而如果該差分升級包為測試版差分升級包,則生成升級包模塊320(如測試請求子模塊)不需要執(zhí)行后續(xù)向客戶端發(fā)布版本升級信息的操作。

作為示例,生成升級包模塊320(如生成全量升級包子模塊)可以在檢測到未成功生成差分升級包的信息的情況下,可以使顯示子模塊顯示生成全量升級包的提示信息,在用戶基于該提示信息而選擇生成全量升級包時(shí),生成升級包模塊320(如生成全量升級包子模塊)可以向編譯服務(wù)器請求獲得用于生成權(quán)利升級包的當(dāng)前編譯文件以及所有歷史編譯文件,并通過調(diào)用相應(yīng)的命令生成全量升級包,如生成升級包模塊320(如生成全量升級包子模塊)通過調(diào)用相應(yīng)的命令針對編譯服務(wù)器傳輸來的當(dāng)前編譯文件以及歷史編譯文件生成全量升級包。另外,生成升級包模塊320(如測試請求子模塊)可以在檢測到成功生成全量升級包的信息的情況下,通知測試服務(wù)器對當(dāng)前生成的全量升級包進(jìn)行測試,生成升級包模塊320(如生成全量升級包子模塊)在檢測到OTA管理服務(wù)器接收到來自測試服務(wù)器的全量升級包測試成功的信息的情況下,如果該全量升級包為正式版全量升級包,則可以執(zhí)行后續(xù)向客戶端發(fā)布版本升級信息的操作,如生成升級包模塊320(如生成全量升級包子模塊)將該全量升級包提交給下載服務(wù)器,以便于由下載服務(wù)器向各客戶端推送全量升級信息等;而如果該全量升級包為測試版全量升級包,則生成升級包模塊320(如生成全量升級包子模塊)不需要執(zhí)行后續(xù)向客戶端發(fā)布版本升級信息的操作。

在此提供的算法以及顯示不與任何特定計(jì)算機(jī)、虛擬系統(tǒng)或者其它設(shè)備固有相關(guān)。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類系統(tǒng)所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。

在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。

類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如本發(fā)明的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。

本領(lǐng)域那些技術(shù)人員可以理解,可以對實(shí)施例終端設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。

此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在本發(fā)明的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。

本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的用于軟件版本升級的方法及裝置中的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者系統(tǒng)程序(如計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號的形式。這樣的信號可以從因特網(wǎng)的網(wǎng)站上下載得到,也可以在載體信號上提供,或者以任何其他形式提供。

應(yīng)該注意的是,上述實(shí)施例是對本發(fā)明進(jìn)行說明而不是對本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號之間的任何參考符號構(gòu)造成對權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或者步驟等。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干系統(tǒng)的單元權(quán)利要求中,這些系統(tǒng)中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
宜都市| 高唐县| 卓资县| 固原市| 留坝县| 邵东县| 什邡市| 仲巴县| 乐至县| 锡林浩特市| 甘孜县| 黎川县| 铁岭市| 永顺县| 侯马市| 龙州县| 定结县| 南宫市| 思茅市| 弋阳县| 贡觉县| 永年县| 泗水县| 宝清县| 嘉祥县| 谢通门县| 高密市| 凤翔县| 崇义县| 屯留县| 桐乡市| 澎湖县| 罗平县| 东阳市| 建瓯市| 密山市| 曲松县| 大城县| 仁布县| 阳原县| 高安市|