多模塊軟體更新方法及系統與流程
2023-05-21 13:18:06 2

本發明涉及智能電視技術領域,尤其涉及一種多模塊軟體更新方法及系統。
背景技術:
隨著智能電視的普及,在智能電視應用平臺中,集成多個內容商提供的應用服務模塊的平臺類應用越來越多,但是目前平臺類應用中,模塊不能單獨更新,只能進行整個平臺類應用的全部更新。而往往每個模塊的版本更新計劃都不一樣的,造成多模塊的平臺類應用由於單個模塊的更新,而導致的更新頻繁,同時每次更新也更新了用戶不需要的模塊,對於用戶來說造成不必要的更新。
技術實現要素:
本發明的主要目的在於提供一種多模塊軟體更新方法及系統,旨在降低多模塊的平臺類應用的更新頻率,同時減少對於用戶來說不必要的更新。
為實現上述目的,本發明提供一種多模塊軟體更新方法,所述多模塊軟體更新方法包括以下步驟:
從伺服器獲取應用服務模塊的發行版本號;
在收到開啟所述應用服務模塊指令後,判斷所述應用服務模塊是否是可更新模塊,所述可更新模塊為本地版本號和所述發行版本號不同的應用服務模塊;
當所述應用服務模塊是可更新模塊時,更新所述應用服務模塊至所述發行版本號對應的發行版本。
優選地,所述當所述應用服務模塊是可更新模塊時,更新所述應用服務模塊至所述發行版本號對應的發行版本包括;
從所述伺服器獲取用於更新所述應用服務模塊至所述發行版本的更新數據包;
使用所述更新數據包對所述應用服務模塊進行熱更新;
在熱更新結束後,更新所述應用服務模塊的本地版本號為所述發行版本號。
優選地,所述使用所述更新數據包對所述應用服務模塊進行熱更新包括:
獲取所述更新數據包中的dex文件;
更換所述應用服務模塊的dex文件加載順序,使得從所述更新數據包中獲取的dex文件在前加載,並更新所述應用服務模塊的本地版本號為所述發行版本號。
優選地,所述從伺服器獲取模塊的發行版本號包括:
從伺服器獲取包括所述應用服務模塊的所有可用模塊的接口信息,所述接口信息包括模塊的唯一標識、模塊的名稱和模塊的發行版本號,所述可用模塊為能在用戶設備上運行的應用服務模塊;
生成可視化界面,用於展示每個應用服務模塊的所述接口信息。
優選地,所述當所述應用服務模塊是可更新模塊時,更新所述應用服務模塊至所述發行版本號對應的發行版本還包括:
判斷所述應用服務模塊是否存在本地版本號;
當所述應用服務模塊不存在本地版本號時,下載並安裝所述應用服務模塊的所述發行版本,並在安裝結束後,更新所述應用服務模塊的本地版本號為所述發行版本號。
此外還提供一種多模塊軟體更新系統,所述多模塊軟體更新系統包括
獲取模塊,用於從伺服器獲取應用服務模塊的發行版本號;
開啟模塊,用於在收到開啟所述應用服務模塊指令後,判斷所述應用服務模塊是否是可更新模塊,所述可更新模塊為本地版本號和所述發行版本號不同的應用服務模塊;
更新模塊,用於當所述應用服務模塊是可更新模塊時,更新所述應用服務模塊至所述發行版本號對應的發行版本。
優選地,所述更新模塊包括;
第一更新單元,用於從所述伺服器獲取用於更新所述應用服務模塊至所述發行版本的更新數據包;
熱更新模塊,用於使用所述更新數據包對所述應用服務模塊進行熱更新;
第二更新單元,用於在熱更新結束後,更新所述應用服務模塊的本地版本號為所述發行版本號。
優選地,所述熱更新模塊包括:
第一獲取單元,用於獲取所述更新數據包中的dex文件;
更換單元,用於更換所述應用服務模塊的dex文件加載順序,使得從所述更新數據包中獲取的dex文件在前加載,並更新所述應用服務模塊的本地版本號為所述發行版本號。
優選地,所述獲取模塊包括:
第二獲取單元,用於從伺服器獲取包括所述應用服務模塊的所有可用模塊的接口信息,所述接口信息包括模塊的唯一標識、模塊的名稱和模塊的發行版本號,所述可用模塊為能在用戶設備上運行的應用服務模塊;
生成單元,用於生成可視化界面,用於展示每個應用服務模塊的所述接口信息。
優選地,所述更新模塊還包括:
判斷單元,用於判斷所述應用服務模塊是否存在本地版本號;
安裝單元,用於當所述應用服務模塊不存在本地版本號時,下載並安裝所述應用服務模塊的所述發行版本,並在安裝結束後,更新所述應用服務模塊的本地版本號為所述發行版本號。
本發明通過從伺服器獲取應用服務模塊的發行版本號;在收到開啟所述應用服務模塊指令後,判斷所述應用服務模塊是否是可更新模塊,所述可更新模塊為本地版本號和所述發行版本號不同的應用服務模塊;當所述應用服務模塊是可更新模塊時,更新所述應用服務模塊至所述發行版本號對應的發行版本。本發明通過在用戶開啟模塊時,才從伺服器端更新所述模塊,使得每次更新只需更新單個模塊,避免了整個應用更新導致的全部模塊的一起更新,用戶只更新自己需要的模塊,減少對於用戶來說不必要的更新;又因為每次更新的是用戶開啟時觸發更新,使得更新只在必要時才進行,降低了更新的頻率。
附圖說明
圖1為本發明多模塊軟體更新方法第一實施例的流程示意圖;
圖2為本發明多模塊軟體更新方法第二實施例中當所述模塊是可更新模塊時,更新所述模塊至所述發行版本號對應的發行版本步驟的細化流程示意圖;
圖3為本發明多模塊軟體更新方法第三實施例中使用所述更新數據包對所述模塊進行熱更新步驟的細化流程示意圖;
圖4為本發明多模塊軟體更新方法第四實施例中從伺服器獲取模塊的發行版本號步驟的細化流程示意圖;
圖5為本發明多模塊軟體更新方法第五實施例中當所述模塊是可更新模塊時,更新所述模塊至所述發行版本號對應的發行版本步驟的細化流程示意圖;
圖6為本發明多模塊軟體更新系統第一實施例的功能模塊示意圖;
圖7為本發明多模塊軟體更新系統第二實施例中更新模塊的細化功能模塊示意圖;
圖8為本發明多模塊軟體更新系統第三實施例中熱更新模塊的細化功能模塊示意圖;
圖9為本發明多模塊軟體更新系統第四實施例中獲取模塊的細化功能模塊示意圖;
圖10為本發明多模塊軟體更新系統第五實施例中更新模塊的細化功能模塊示意圖。
本發明目的的實現、功能特點及優點將結合實施例,參照附圖做進一步說明。
具體實施方式
應當理解,此處所描述的具體實施例僅僅用以解釋本發明,並不用於限定本發明。
本發明提供一種多模塊軟體更新方法,參照圖1,在本發明多模塊軟體更新方法第一實施例中,所述多模塊軟體更新方法包括以下步驟:
步驟S10,從伺服器獲取應用服務模塊的發行版本號;
在軟體部署時,軟體的所有者通過在伺服器端發布最新版本的軟體,用戶端通過軟體的本地版本號和所述伺服器中的發行版本號對比,發現是否需要更新軟體。在本實施例中所述軟體為平臺類應用,所述平臺類應用內置多個功能模塊,所述應用服務模塊為內容商提供的模塊。在本實施例中,用戶打開所述應用服務模塊的上級容器時,從伺服器獲取包括所述應用服務模塊的所有模塊的發行版本號。
步驟S20,在收到開啟所述應用服務模塊指令後,判斷所述應用服務模塊是否是可更新模塊,所述可更新模塊為本地版本號和所述發行版本號不同的應用服務模塊;
在本實施例中,所述本地版本號存儲於與應用服務模塊模塊解耦合的獨立資料庫中,應用服務模塊模塊在進行版本更改時,由應用服務模塊模塊的上層容器來操作所述獨立資料庫的更新。在有些實施例中,所述獨立資料庫為普通文件,用於持久化所有應用服務模塊模塊在本地的本地版本號,更具體地,在有些實例中是使用XML(可擴展標記語言)文件作為持久化使用的文件。在本實施例中只要本地版本號和所述發行版本號不同,所述應用服務模塊模塊即為可更新模塊,在有些實施例中所述版本號為數字,當所述發行版本號大於所述本地版本號時,所述應用服務模塊模塊才為可更新模塊。
步驟S30,當所述應用服務模塊是可更新模塊時,更新所述應用服務模塊至所述發行版本號對應的發行版本。
具體地,在本實施例中。當有內容提供商提供的應用模塊更新時,會更新伺服器端的發行版本號。用戶在本地端,從伺服器獲取所有可用應用服務模塊的發行版本號,所述發行版本號對應的發行版本可以理解為所述內容提供商提供的應用服務模塊模塊的最新版本。當在本地端用戶選擇開啟所述內容提供商提供的應用服務模塊時,且所述應用服務模塊的本地版本號和所述發行版本號不同時,才從所述伺服器端下載更新,把所述應用服務模塊模塊更新至最新版本。
通過在用戶開啟應用服務模塊模塊時,才從伺服器端更新所述應用服務模塊模塊,使得每次更新只更新單個應用服務模塊模塊,避免了像現有軟體更新一樣需要全部應用服務模塊模塊一起更新,本實施例減少了對於用戶來說,不必要的更新;同時又因為每次更新,是用戶開啟時觸發更新,使得更新是在必要時進行,降低了更新的頻率。
請參照圖2,基於本發明多模塊軟體更新方法第一實施例,在本發明多模塊軟體更新方法第二實施例中,所述步驟S30包括;
步驟S31,從所述伺服器獲取用於更新所述應用服務模塊至所述發行版本的更新數據包;
步驟S32,使用所述更新數據包對所述應用服務模塊進行熱更新;
步驟S33,在熱更新結束後,更新所述應用服務模塊的本地版本號為所述發行版本號。
通過使用熱更新,所述熱更新使得在不影響用戶使用所述應用服務模塊的前提下完成更新操作,提升用戶體驗。具體地在本實施例中,在用戶開啟模塊後,通過對比發現所述應用服務模塊的本地版本號和所述發行版本號不同時,再開啟應用服務模塊模塊的同時,從伺服器端獲取所要的更新程序,下載完成後對所述應用服務模塊進行熱更新,不影響用戶的使用的情況下對所述應用服務模塊進行更新,更新完成後更新所述應用服務模塊的本地版本號為所述發行版本號。
請參照圖3,基於本發明多模塊軟體更新方法第二實施例,在本發明多模塊軟體更新方法第三實施例中,所述步驟S32包括:
步驟S321,獲取所述更新數據包中的dex文件;
步驟S322,更換所述應用服務模塊的dex文件加載順序,使得從所述更新數據包中獲取的dex文件在前加載,並更新所述應用服務模塊的本地版本號為所述發行版本號。
在本實施例中,更具體地,所述平臺類應用為一個安卓平臺應用,在熱更新時,採用改變所述dex文件加載順序來實現所述熱更新操作,提升了操作速度,進一步提升了用戶體驗;同時在用戶本地端資料庫中更新所述應用服務模塊的本地版本號為所述發行版本號,避免在熱更新時,不能改變應用服務模塊模塊內部的版本,造成的更新後版本不明的問題,方便了各應用服務模塊模塊的版本管理。
更具體地,使用了虛擬機獲取PATH.MF文件,所述PATH.MF為程序描述文件,獲取所述應用服務模塊的類名。根據類名從更新數據包加載dex文件,獲取所述應用服務模塊目前的dexElements列表,通過反射機制使得PathClassLoader.pathList.dexElements使得先加載所述從更新數據包加載dex文件,從而實現熱更新。
請參照圖4,基於本發明多模塊軟體更新方法第一實施例,在本發明多模塊軟體更新方法第四實施例中,所述步驟S10包括:
步驟S11,從伺服器獲取包括所述應用服務模塊的所有可用模塊的接口信息,所述接口信息包括模塊的唯一標識、模塊的名稱和模塊的發行版本號,所述可用模塊為能在用戶設備上運行的應用服務模塊;
在伺服器端存儲了大量的應用服務模塊,適配於不同的設備,在獲取模塊接口信息時,只獲取能在用戶設備上運行的可用應用服務模塊的信息。
步驟S12,生成可視化界面,用於展示每個應用服務模塊的所述接口信息。
在本實施例中,通過為用戶提供可視化界面,展示從伺服器端獲取的所有可用模塊的接口信息,使用所述接口信息填充數據展示界面,方便用戶根據最新的版本信息進行選擇自己所要開啟的應用服務模塊,方便了用戶的選擇,提升了用戶體驗。
請參照圖5,基於本發明多模塊軟體更新方法第四實施例,在本發明多模塊軟體更新方法第五實施例中,所述步驟S30還包括:
步驟S34,判斷所述應用服務模塊是否存在本地版本號;
可視化界面為用戶展示了全部可用模塊,但是有些模塊本地端並沒有安裝,用戶開啟所述應用服務模塊時,所述應用服務模塊的本地版本號為空,所述應用服務模塊的伺服器端的發行版本號為任一版本號,所以當本地沒有安裝某接口時,所述應用服務模塊的本地版本號和所述伺服器端的發行版本號不同,當所述應用服務模塊沒有本地版本號時,代表用戶本地未安裝所述應用服務模塊。
步驟S35,當所述應用服務模塊不存在本地版本號時,下載並安裝所述應用服務模塊的所述發行版本,並在安裝結束後,更新所述應用服務模塊的本地版本號為所述發行版本號。
具體在本實施例中,當所述應用服務模塊的本地版本號為空是時,從伺服器下載所述應用服務模塊的安裝包,並在安裝結束後,在本地的資料庫中為所述版本添加所述發行版本號為所述應用服務模塊的本地版本號,為以後更新所述應用服務模塊提供方便。使得能為用戶在沒有安裝某應用服務模塊時,可以快捷的進行安裝,為用戶提供方便。
本發明提供一種多模塊軟體更新系統,參照圖6,在本發明多模塊軟體更新系統第一實施例中,所述多模塊軟體更新系統包括:
獲取模塊10,用於從伺服器獲取應用服務模塊的發行版本號;
在軟體部署時,軟體的所有者通過在伺服器端發布最新版本的軟體,用戶端通過軟體的本地版本號和所述伺服器中的發行版本號做對比,發現是否需要更新軟體。在本實施例中所述軟體為平臺類應用,所述平臺類應用內置多個功能模塊,所述應用服務模塊為內容商提供的應用服務模塊模塊。在本實施例中,用戶打開應用服務模塊的上級容器時,從伺服器獲取包括所述應用服務模塊的所有應用服務模塊模塊的發行版本號。
開啟模塊20,用於在收到開啟所述應用服務模塊指令後,判斷所述應用服務模塊是否是可更新模塊,所述可更新模塊為本地版本號和所述發行版本號不同的應用服務模塊;
在本實施例中,所述本地版本號存儲於與應用服務模塊模塊解耦合的獨立資料庫中,應用服務模塊模塊在進行版本更改時,由應用服務模塊模塊的上層容器來操作所述獨立資料庫的更新。在有些實施例中,所述獨立資料庫為普通文件,用於持久化所有應用服務模塊模塊在本地的本地版本號,更具體地,在有些實例中是使用XML(可擴展標記語言)文件作為持久化使用的文件。在本實施例中只要本地版本號和所述發行版本號不同,所述應用服務模塊模塊即為可更新模塊,在有些實施例中所述版本號為數字,當所述發行版本號大於所述本地版本號時,所述應用服務模塊模塊才為可更新模塊。
更新模塊30,用於當所述應用服務模塊是可更新模塊時,更新所述應用服務模塊至所述發行版本號對應的發行版本。
具體地,在本實施例中。當有內容提供商提供的應用模塊更新時,會更新伺服器端的發行版本號。用戶在本地端,獲取模塊10從伺服器獲取所有可用應用服務模塊的發行版本號,所述發行版本號對應的發行版本可以理解為所述內容提供商提供的應用服務模塊模塊的最新版本。當在本地端用戶選擇開啟所述內容提供商提供的應用服務模塊時,開啟模塊20通過判斷所述應用服務模塊的本地版本號和所述發行版本號不同時,更新模塊30才從所述伺服器端下載更新,把所述模塊更新至最新版本。
通過在用戶開啟應用服務模塊模塊時,才從伺服器端更新所述應用服務模塊模塊,使得每次更新只需要更新單個模塊,避免了像現有軟體更新一樣需要全部應用服務模塊模塊的一起更新,本實施例減少對於用戶來說不必要的更新;同時因為每次更新的是用戶開啟時觸發更新,使得更新實在必要時才進行,降低了更新的頻率。
請參照圖7,基於本發明多模塊軟體更新方法第一實施例,在本發明多模塊軟體更新方法第二實施例中,所述更新模塊30包括;
第一更新單元31,用於從所述伺服器獲取用於更新所述應用服務模塊至所述發行版本的更新數據包;
熱更新模塊32,用於使用所述更新數據包對所述應用服務模塊進行熱更新;
第二更新單元33,用於在熱更新結束後,更新所述應用服務模塊的本地版本號為所述發行版本號。
通過使用熱更新,所述熱更新使得在不影響用戶使用所述應用服務模塊的前提下完成更新操作,提升用戶體驗。具體地在本實施例中,在用戶開啟應用服務模塊模塊後,通過對比發現所述應用服務模塊的本地版本號和所述發行版本號不同時,再開啟應用服務模塊模塊的同時,第一更新單元31從伺服器端獲取所要的更新程序,下載完成後熱更新模塊32對所述應用服務模塊進行熱更新,不影響用戶的使用的情況下,對所述應用服務模塊進行更新,更新完成後,第二更新單元33更新所述應用服務模塊的本地版本號為所述發行版本號。
請參照圖8,基於本發明多模塊軟體更新方法第二實施例,在本發明多模塊軟體更新方法第三實施例中,所述熱更新模塊32包括:
第一獲取單元321,用於獲取所述更新數據包中的dex文件;
更換單元322,用於更換所述應用服務模塊的dex文件加載順序,使得從所述更新數據包中獲取的dex文件在前加載,並更新所述應用服務模塊的本地版本號為所述發行版本號。
在本實施例中,更具體地,所述平臺類應用為一個安卓平臺應用,在熱更新時,採用改變所述dex文件加載順序來實現所述熱更新操作,提升了操作速度,進一步提升了用戶體驗;同時在用戶本地端資料庫中更新所述應用服務模塊的本地版本號為所述發行版本號,避免在熱更新時,不能改變應用服務模塊模塊內部的版本,造成的更新後版本不明的問題,方便了各模塊的版本管理。
更具體地,使用了虛擬機獲取PATH.MF文件,所述PATH.MF為程序描述文件,獲取所述應用服務模塊的類名。第一獲取單元321根據類名從更新數據包加載dex文件,更換單元322獲取所述應用服務模塊目前的dexElements列表,通過反射機制使得PathClassLoader.pathList.dexElements使得先加載所述從更新數據包加載dex文件,從而實現熱更新。
請參照圖9,基於本發明多模塊軟體更新方法第一實施例,在本發明多模塊軟體更新方法第四實施例中,所述獲取模塊10包括:
第二獲取單元11,用於從伺服器獲取包括所述應用服務模塊的所有可用模塊的接口信息,所述接口信息包括模塊的唯一標識、模塊的名稱和模塊的發行版本號,所述可用模塊為能在用戶設備上運行的應用服務模塊;
在伺服器端存儲了大量的應用服務模塊,適配於不同的設備,在獲取模塊接口信息時,只獲取能在用戶設備上運行的可用模塊的信息。
生成單元12,用於生成可視化界面,用於展示每個應用服務模塊的所述接口信息。
在本實施例中,生成單元12通過為用戶提供可視化界面,展示第二獲取單元11從伺服器端獲取的所有可用模塊的接口信息,使用所述接口信息填充數據展示界面,方便用戶根據最新的版本信息進行選擇自己所要開啟的應用服務模塊,方便了用戶的選擇,提升了用戶體驗。
請參照圖10,基於本發明多模塊軟體更新方法第四實施例,在本發明多模塊軟體更新方法第五實施例中,所述更新模塊30還包括:
判斷單元34,用於判斷所述應用服務模塊是否存在本地版本號;
可視化界面為用戶展示了全部可用模塊,但是有些可用模塊中,並沒有全部安裝到本地端,用戶開啟所述應用服務模塊時,所述應用服務模塊的本地版本號為空,所述應用服務模塊的伺服器端的發行版本號為任一版本號,所以當本地沒有安裝某接口時,所述應用服務模塊的本地版本號和所述伺服器端的發行版本號不同,當所述應用服務模塊沒有本地版本號時,代表用戶本地未安裝所述模塊。
安裝單元35,用於當所述應用服務模塊不存在本地版本號時,下載並安裝所述應用服務模塊的所述發行版本,並在安裝結束後,更新所述應用服務模塊的本地版本號為所述發行版本號。
具體在本實施例中,當判斷單元34判斷所述應用服務模塊的本地版本號為空是時,安裝單元35從伺服器下載所述應用服務模塊的安裝包,並在安裝結束後,在本地的資料庫中為所述版本添加所述發行版本號為所述應用服務模塊的本地版本號,為以後更新所述應用服務模塊提供方便。使得能為用戶在沒有安裝某應用服務模塊時,可以快捷的進行安裝,為用戶提供方便。
以上僅為本發明的優選實施例,並非因此限制本發明的專利範圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的技術領域,均同理包括在本發明的專利保護範圍內。