亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

多模塊軟件更新方法及系統(tǒng)與流程

文檔序號(hào):11154439閱讀:553來(lái)源:國(guó)知局
多模塊軟件更新方法及系統(tǒng)與制造工藝

本發(fā)明涉及智能電視技術(shù)領(lǐng)域,尤其涉及一種多模塊軟件更新方法及系統(tǒng)。



背景技術(shù):

隨著智能電視的普及,在智能電視應(yīng)用平臺(tái)中,集成多個(gè)內(nèi)容商提供的應(yīng)用服務(wù)模塊的平臺(tái)類應(yīng)用越來(lái)越多,但是目前平臺(tái)類應(yīng)用中,模塊不能單獨(dú)更新,只能進(jìn)行整個(gè)平臺(tái)類應(yīng)用的全部更新。而往往每個(gè)模塊的版本更新計(jì)劃都不一樣的,造成多模塊的平臺(tái)類應(yīng)用由于單個(gè)模塊的更新,而導(dǎo)致的更新頻繁,同時(shí)每次更新也更新了用戶不需要的模塊,對(duì)于用戶來(lái)說(shuō)造成不必要的更新。



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

本發(fā)明的主要目的在于提供一種多模塊軟件更新方法及系統(tǒng),旨在降低多模塊的平臺(tái)類應(yīng)用的更新頻率,同時(shí)減少對(duì)于用戶來(lái)說(shuō)不必要的更新。

為實(shí)現(xiàn)上述目的,本發(fā)明提供一種多模塊軟件更新方法,所述多模塊軟件更新方法包括以下步驟:

從服務(wù)器獲取應(yīng)用服務(wù)模塊的發(fā)行版本號(hào);

在收到開啟所述應(yīng)用服務(wù)模塊指令后,判斷所述應(yīng)用服務(wù)模塊是否是可更新模塊,所述可更新模塊為本地版本號(hào)和所述發(fā)行版本號(hào)不同的應(yīng)用服務(wù)模塊;

當(dāng)所述應(yīng)用服務(wù)模塊是可更新模塊時(shí),更新所述應(yīng)用服務(wù)模塊至所述發(fā)行版本號(hào)對(duì)應(yīng)的發(fā)行版本。

優(yōu)選地,所述當(dāng)所述應(yīng)用服務(wù)模塊是可更新模塊時(shí),更新所述應(yīng)用服務(wù)模塊至所述發(fā)行版本號(hào)對(duì)應(yīng)的發(fā)行版本包括;

從所述服務(wù)器獲取用于更新所述應(yīng)用服務(wù)模塊至所述發(fā)行版本的更新數(shù)據(jù)包;

使用所述更新數(shù)據(jù)包對(duì)所述應(yīng)用服務(wù)模塊進(jìn)行熱更新;

在熱更新結(jié)束后,更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào)。

優(yōu)選地,所述使用所述更新數(shù)據(jù)包對(duì)所述應(yīng)用服務(wù)模塊進(jìn)行熱更新包括:

獲取所述更新數(shù)據(jù)包中的dex文件;

更換所述應(yīng)用服務(wù)模塊的dex文件加載順序,使得從所述更新數(shù)據(jù)包中獲取的dex文件在前加載,并更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào)。

優(yōu)選地,所述從服務(wù)器獲取模塊的發(fā)行版本號(hào)包括:

從服務(wù)器獲取包括所述應(yīng)用服務(wù)模塊的所有可用模塊的接口信息,所述接口信息包括模塊的唯一標(biāo)識(shí)、模塊的名稱和模塊的發(fā)行版本號(hào),所述可用模塊為能在用戶設(shè)備上運(yùn)行的應(yīng)用服務(wù)模塊;

生成可視化界面,用于展示每個(gè)應(yīng)用服務(wù)模塊的所述接口信息。

優(yōu)選地,所述當(dāng)所述應(yīng)用服務(wù)模塊是可更新模塊時(shí),更新所述應(yīng)用服務(wù)模塊至所述發(fā)行版本號(hào)對(duì)應(yīng)的發(fā)行版本還包括:

判斷所述應(yīng)用服務(wù)模塊是否存在本地版本號(hào);

當(dāng)所述應(yīng)用服務(wù)模塊不存在本地版本號(hào)時(shí),下載并安裝所述應(yīng)用服務(wù)模塊的所述發(fā)行版本,并在安裝結(jié)束后,更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào)。

此外還提供一種多模塊軟件更新系統(tǒng),所述多模塊軟件更新系統(tǒng)包括

獲取模塊,用于從服務(wù)器獲取應(yīng)用服務(wù)模塊的發(fā)行版本號(hào);

開啟模塊,用于在收到開啟所述應(yīng)用服務(wù)模塊指令后,判斷所述應(yīng)用服務(wù)模塊是否是可更新模塊,所述可更新模塊為本地版本號(hào)和所述發(fā)行版本號(hào)不同的應(yīng)用服務(wù)模塊;

更新模塊,用于當(dāng)所述應(yīng)用服務(wù)模塊是可更新模塊時(shí),更新所述應(yīng)用服務(wù)模塊至所述發(fā)行版本號(hào)對(duì)應(yīng)的發(fā)行版本。

優(yōu)選地,所述更新模塊包括;

第一更新單元,用于從所述服務(wù)器獲取用于更新所述應(yīng)用服務(wù)模塊至所述發(fā)行版本的更新數(shù)據(jù)包;

熱更新模塊,用于使用所述更新數(shù)據(jù)包對(duì)所述應(yīng)用服務(wù)模塊進(jìn)行熱更新;

第二更新單元,用于在熱更新結(jié)束后,更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào)。

優(yōu)選地,所述熱更新模塊包括:

第一獲取單元,用于獲取所述更新數(shù)據(jù)包中的dex文件;

更換單元,用于更換所述應(yīng)用服務(wù)模塊的dex文件加載順序,使得從所述更新數(shù)據(jù)包中獲取的dex文件在前加載,并更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào)。

優(yōu)選地,所述獲取模塊包括:

第二獲取單元,用于從服務(wù)器獲取包括所述應(yīng)用服務(wù)模塊的所有可用模塊的接口信息,所述接口信息包括模塊的唯一標(biāo)識(shí)、模塊的名稱和模塊的發(fā)行版本號(hào),所述可用模塊為能在用戶設(shè)備上運(yùn)行的應(yīng)用服務(wù)模塊;

生成單元,用于生成可視化界面,用于展示每個(gè)應(yīng)用服務(wù)模塊的所述接口信息。

優(yōu)選地,所述更新模塊還包括:

判斷單元,用于判斷所述應(yīng)用服務(wù)模塊是否存在本地版本號(hào);

安裝單元,用于當(dāng)所述應(yīng)用服務(wù)模塊不存在本地版本號(hào)時(shí),下載并安裝所述應(yīng)用服務(wù)模塊的所述發(fā)行版本,并在安裝結(jié)束后,更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào)。

本發(fā)明通過從服務(wù)器獲取應(yīng)用服務(wù)模塊的發(fā)行版本號(hào);在收到開啟所述應(yīng)用服務(wù)模塊指令后,判斷所述應(yīng)用服務(wù)模塊是否是可更新模塊,所述可更新模塊為本地版本號(hào)和所述發(fā)行版本號(hào)不同的應(yīng)用服務(wù)模塊;當(dāng)所述應(yīng)用服務(wù)模塊是可更新模塊時(shí),更新所述應(yīng)用服務(wù)模塊至所述發(fā)行版本號(hào)對(duì)應(yīng)的發(fā)行版本。本發(fā)明通過在用戶開啟模塊時(shí),才從服務(wù)器端更新所述模塊,使得每次更新只需更新單個(gè)模塊,避免了整個(gè)應(yīng)用更新導(dǎo)致的全部模塊的一起更新,用戶只更新自己需要的模塊,減少對(duì)于用戶來(lái)說(shuō)不必要的更新;又因?yàn)槊看胃碌氖怯脩糸_啟時(shí)觸發(fā)更新,使得更新只在必要時(shí)才進(jìn)行,降低了更新的頻率。

附圖說(shuō)明

圖1為本發(fā)明多模塊軟件更新方法第一實(shí)施例的流程示意圖;

圖2為本發(fā)明多模塊軟件更新方法第二實(shí)施例中當(dāng)所述模塊是可更新模塊時(shí),更新所述模塊至所述發(fā)行版本號(hào)對(duì)應(yīng)的發(fā)行版本步驟的細(xì)化流程示意圖;

圖3為本發(fā)明多模塊軟件更新方法第三實(shí)施例中使用所述更新數(shù)據(jù)包對(duì)所述模塊進(jìn)行熱更新步驟的細(xì)化流程示意圖;

圖4為本發(fā)明多模塊軟件更新方法第四實(shí)施例中從服務(wù)器獲取模塊的發(fā)行版本號(hào)步驟的細(xì)化流程示意圖;

圖5為本發(fā)明多模塊軟件更新方法第五實(shí)施例中當(dāng)所述模塊是可更新模塊時(shí),更新所述模塊至所述發(fā)行版本號(hào)對(duì)應(yīng)的發(fā)行版本步驟的細(xì)化流程示意圖;

圖6為本發(fā)明多模塊軟件更新系統(tǒng)第一實(shí)施例的功能模塊示意圖;

圖7為本發(fā)明多模塊軟件更新系統(tǒng)第二實(shí)施例中更新模塊的細(xì)化功能模塊示意圖;

圖8為本發(fā)明多模塊軟件更新系統(tǒng)第三實(shí)施例中熱更新模塊的細(xì)化功能模塊示意圖;

圖9為本發(fā)明多模塊軟件更新系統(tǒng)第四實(shí)施例中獲取模塊的細(xì)化功能模塊示意圖;

圖10為本發(fā)明多模塊軟件更新系統(tǒng)第五實(shí)施例中更新模塊的細(xì)化功能模塊示意圖。

本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說(shuō)明。

具體實(shí)施方式

應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

本發(fā)明提供一種多模塊軟件更新方法,參照?qǐng)D1,在本發(fā)明多模塊軟件更新方法第一實(shí)施例中,所述多模塊軟件更新方法包括以下步驟:

步驟S10,從服務(wù)器獲取應(yīng)用服務(wù)模塊的發(fā)行版本號(hào);

在軟件部署時(shí),軟件的所有者通過在服務(wù)器端發(fā)布最新版本的軟件,用戶端通過軟件的本地版本號(hào)和所述服務(wù)器中的發(fā)行版本號(hào)對(duì)比,發(fā)現(xiàn)是否需要更新軟件。在本實(shí)施例中所述軟件為平臺(tái)類應(yīng)用,所述平臺(tái)類應(yīng)用內(nèi)置多個(gè)功能模塊,所述應(yīng)用服務(wù)模塊為內(nèi)容商提供的模塊。在本實(shí)施例中,用戶打開所述應(yīng)用服務(wù)模塊的上級(jí)容器時(shí),從服務(wù)器獲取包括所述應(yīng)用服務(wù)模塊的所有模塊的發(fā)行版本號(hào)。

步驟S20,在收到開啟所述應(yīng)用服務(wù)模塊指令后,判斷所述應(yīng)用服務(wù)模塊是否是可更新模塊,所述可更新模塊為本地版本號(hào)和所述發(fā)行版本號(hào)不同的應(yīng)用服務(wù)模塊;

在本實(shí)施例中,所述本地版本號(hào)存儲(chǔ)于與應(yīng)用服務(wù)模塊模塊解耦合的獨(dú)立數(shù)據(jù)庫(kù)中,應(yīng)用服務(wù)模塊模塊在進(jìn)行版本更改時(shí),由應(yīng)用服務(wù)模塊模塊的上層容器來(lái)操作所述獨(dú)立數(shù)據(jù)庫(kù)的更新。在有些實(shí)施例中,所述獨(dú)立數(shù)據(jù)庫(kù)為普通文件,用于持久化所有應(yīng)用服務(wù)模塊模塊在本地的本地版本號(hào),更具體地,在有些實(shí)例中是使用XML(可擴(kuò)展標(biāo)記語(yǔ)言)文件作為持久化使用的文件。在本實(shí)施例中只要本地版本號(hào)和所述發(fā)行版本號(hào)不同,所述應(yīng)用服務(wù)模塊模塊即為可更新模塊,在有些實(shí)施例中所述版本號(hào)為數(shù)字,當(dāng)所述發(fā)行版本號(hào)大于所述本地版本號(hào)時(shí),所述應(yīng)用服務(wù)模塊模塊才為可更新模塊。

步驟S30,當(dāng)所述應(yīng)用服務(wù)模塊是可更新模塊時(shí),更新所述應(yīng)用服務(wù)模塊至所述發(fā)行版本號(hào)對(duì)應(yīng)的發(fā)行版本。

具體地,在本實(shí)施例中。當(dāng)有內(nèi)容提供商提供的應(yīng)用模塊更新時(shí),會(huì)更新服務(wù)器端的發(fā)行版本號(hào)。用戶在本地端,從服務(wù)器獲取所有可用應(yīng)用服務(wù)模塊的發(fā)行版本號(hào),所述發(fā)行版本號(hào)對(duì)應(yīng)的發(fā)行版本可以理解為所述內(nèi)容提供商提供的應(yīng)用服務(wù)模塊模塊的最新版本。當(dāng)在本地端用戶選擇開啟所述內(nèi)容提供商提供的應(yīng)用服務(wù)模塊時(shí),且所述應(yīng)用服務(wù)模塊的本地版本號(hào)和所述發(fā)行版本號(hào)不同時(shí),才從所述服務(wù)器端下載更新,把所述應(yīng)用服務(wù)模塊模塊更新至最新版本。

通過在用戶開啟應(yīng)用服務(wù)模塊模塊時(shí),才從服務(wù)器端更新所述應(yīng)用服務(wù)模塊模塊,使得每次更新只更新單個(gè)應(yīng)用服務(wù)模塊模塊,避免了像現(xiàn)有軟件更新一樣需要全部應(yīng)用服務(wù)模塊模塊一起更新,本實(shí)施例減少了對(duì)于用戶來(lái)說(shuō),不必要的更新;同時(shí)又因?yàn)槊看胃?,是用戶開啟時(shí)觸發(fā)更新,使得更新是在必要時(shí)進(jìn)行,降低了更新的頻率。

請(qǐng)參照?qǐng)D2,基于本發(fā)明多模塊軟件更新方法第一實(shí)施例,在本發(fā)明多模塊軟件更新方法第二實(shí)施例中,所述步驟S30包括;

步驟S31,從所述服務(wù)器獲取用于更新所述應(yīng)用服務(wù)模塊至所述發(fā)行版本的更新數(shù)據(jù)包;

步驟S32,使用所述更新數(shù)據(jù)包對(duì)所述應(yīng)用服務(wù)模塊進(jìn)行熱更新;

步驟S33,在熱更新結(jié)束后,更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào)。

通過使用熱更新,所述熱更新使得在不影響用戶使用所述應(yīng)用服務(wù)模塊的前提下完成更新操作,提升用戶體驗(yàn)。具體地在本實(shí)施例中,在用戶開啟模塊后,通過對(duì)比發(fā)現(xiàn)所述應(yīng)用服務(wù)模塊的本地版本號(hào)和所述發(fā)行版本號(hào)不同時(shí),再開啟應(yīng)用服務(wù)模塊模塊的同時(shí),從服務(wù)器端獲取所要的更新程序,下載完成后對(duì)所述應(yīng)用服務(wù)模塊進(jìn)行熱更新,不影響用戶的使用的情況下對(duì)所述應(yīng)用服務(wù)模塊進(jìn)行更新,更新完成后更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào)。

請(qǐng)參照?qǐng)D3,基于本發(fā)明多模塊軟件更新方法第二實(shí)施例,在本發(fā)明多模塊軟件更新方法第三實(shí)施例中,所述步驟S32包括:

步驟S321,獲取所述更新數(shù)據(jù)包中的dex文件;

步驟S322,更換所述應(yīng)用服務(wù)模塊的dex文件加載順序,使得從所述更新數(shù)據(jù)包中獲取的dex文件在前加載,并更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào)。

在本實(shí)施例中,更具體地,所述平臺(tái)類應(yīng)用為一個(gè)安卓平臺(tái)應(yīng)用,在熱更新時(shí),采用改變所述dex文件加載順序來(lái)實(shí)現(xiàn)所述熱更新操作,提升了操作速度,進(jìn)一步提升了用戶體驗(yàn);同時(shí)在用戶本地端數(shù)據(jù)庫(kù)中更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào),避免在熱更新時(shí),不能改變應(yīng)用服務(wù)模塊模塊內(nèi)部的版本,造成的更新后版本不明的問題,方便了各應(yīng)用服務(wù)模塊模塊的版本管理。

更具體地,使用了虛擬機(jī)獲取PATH.MF文件,所述PATH.MF為程序描述文件,獲取所述應(yīng)用服務(wù)模塊的類名。根據(jù)類名從更新數(shù)據(jù)包加載dex文件,獲取所述應(yīng)用服務(wù)模塊目前的dexElements列表,通過反射機(jī)制使得PathClassLoader.pathList.dexElements使得先加載所述從更新數(shù)據(jù)包加載dex文件,從而實(shí)現(xiàn)熱更新。

請(qǐng)參照?qǐng)D4,基于本發(fā)明多模塊軟件更新方法第一實(shí)施例,在本發(fā)明多模塊軟件更新方法第四實(shí)施例中,所述步驟S10包括:

步驟S11,從服務(wù)器獲取包括所述應(yīng)用服務(wù)模塊的所有可用模塊的接口信息,所述接口信息包括模塊的唯一標(biāo)識(shí)、模塊的名稱和模塊的發(fā)行版本號(hào),所述可用模塊為能在用戶設(shè)備上運(yùn)行的應(yīng)用服務(wù)模塊;

在服務(wù)器端存儲(chǔ)了大量的應(yīng)用服務(wù)模塊,適配于不同的設(shè)備,在獲取模塊接口信息時(shí),只獲取能在用戶設(shè)備上運(yùn)行的可用應(yīng)用服務(wù)模塊的信息。

步驟S12,生成可視化界面,用于展示每個(gè)應(yīng)用服務(wù)模塊的所述接口信息。

在本實(shí)施例中,通過為用戶提供可視化界面,展示從服務(wù)器端獲取的所有可用模塊的接口信息,使用所述接口信息填充數(shù)據(jù)展示界面,方便用戶根據(jù)最新的版本信息進(jìn)行選擇自己所要開啟的應(yīng)用服務(wù)模塊,方便了用戶的選擇,提升了用戶體驗(yàn)。

請(qǐng)參照?qǐng)D5,基于本發(fā)明多模塊軟件更新方法第四實(shí)施例,在本發(fā)明多模塊軟件更新方法第五實(shí)施例中,所述步驟S30還包括:

步驟S34,判斷所述應(yīng)用服務(wù)模塊是否存在本地版本號(hào);

可視化界面為用戶展示了全部可用模塊,但是有些模塊本地端并沒有安裝,用戶開啟所述應(yīng)用服務(wù)模塊時(shí),所述應(yīng)用服務(wù)模塊的本地版本號(hào)為空,所述應(yīng)用服務(wù)模塊的服務(wù)器端的發(fā)行版本號(hào)為任一版本號(hào),所以當(dāng)本地沒有安裝某接口時(shí),所述應(yīng)用服務(wù)模塊的本地版本號(hào)和所述服務(wù)器端的發(fā)行版本號(hào)不同,當(dāng)所述應(yīng)用服務(wù)模塊沒有本地版本號(hào)時(shí),代表用戶本地未安裝所述應(yīng)用服務(wù)模塊。

步驟S35,當(dāng)所述應(yīng)用服務(wù)模塊不存在本地版本號(hào)時(shí),下載并安裝所述應(yīng)用服務(wù)模塊的所述發(fā)行版本,并在安裝結(jié)束后,更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào)。

具體在本實(shí)施例中,當(dāng)所述應(yīng)用服務(wù)模塊的本地版本號(hào)為空是時(shí),從服務(wù)器下載所述應(yīng)用服務(wù)模塊的安裝包,并在安裝結(jié)束后,在本地的數(shù)據(jù)庫(kù)中為所述版本添加所述發(fā)行版本號(hào)為所述應(yīng)用服務(wù)模塊的本地版本號(hào),為以后更新所述應(yīng)用服務(wù)模塊提供方便。使得能為用戶在沒有安裝某應(yīng)用服務(wù)模塊時(shí),可以快捷的進(jìn)行安裝,為用戶提供方便。

本發(fā)明提供一種多模塊軟件更新系統(tǒng),參照?qǐng)D6,在本發(fā)明多模塊軟件更新系統(tǒng)第一實(shí)施例中,所述多模塊軟件更新系統(tǒng)包括:

獲取模塊10,用于從服務(wù)器獲取應(yīng)用服務(wù)模塊的發(fā)行版本號(hào);

在軟件部署時(shí),軟件的所有者通過在服務(wù)器端發(fā)布最新版本的軟件,用戶端通過軟件的本地版本號(hào)和所述服務(wù)器中的發(fā)行版本號(hào)做對(duì)比,發(fā)現(xiàn)是否需要更新軟件。在本實(shí)施例中所述軟件為平臺(tái)類應(yīng)用,所述平臺(tái)類應(yīng)用內(nèi)置多個(gè)功能模塊,所述應(yīng)用服務(wù)模塊為內(nèi)容商提供的應(yīng)用服務(wù)模塊模塊。在本實(shí)施例中,用戶打開應(yīng)用服務(wù)模塊的上級(jí)容器時(shí),從服務(wù)器獲取包括所述應(yīng)用服務(wù)模塊的所有應(yīng)用服務(wù)模塊模塊的發(fā)行版本號(hào)。

開啟模塊20,用于在收到開啟所述應(yīng)用服務(wù)模塊指令后,判斷所述應(yīng)用服務(wù)模塊是否是可更新模塊,所述可更新模塊為本地版本號(hào)和所述發(fā)行版本號(hào)不同的應(yīng)用服務(wù)模塊;

在本實(shí)施例中,所述本地版本號(hào)存儲(chǔ)于與應(yīng)用服務(wù)模塊模塊解耦合的獨(dú)立數(shù)據(jù)庫(kù)中,應(yīng)用服務(wù)模塊模塊在進(jìn)行版本更改時(shí),由應(yīng)用服務(wù)模塊模塊的上層容器來(lái)操作所述獨(dú)立數(shù)據(jù)庫(kù)的更新。在有些實(shí)施例中,所述獨(dú)立數(shù)據(jù)庫(kù)為普通文件,用于持久化所有應(yīng)用服務(wù)模塊模塊在本地的本地版本號(hào),更具體地,在有些實(shí)例中是使用XML(可擴(kuò)展標(biāo)記語(yǔ)言)文件作為持久化使用的文件。在本實(shí)施例中只要本地版本號(hào)和所述發(fā)行版本號(hào)不同,所述應(yīng)用服務(wù)模塊模塊即為可更新模塊,在有些實(shí)施例中所述版本號(hào)為數(shù)字,當(dāng)所述發(fā)行版本號(hào)大于所述本地版本號(hào)時(shí),所述應(yīng)用服務(wù)模塊模塊才為可更新模塊。

更新模塊30,用于當(dāng)所述應(yīng)用服務(wù)模塊是可更新模塊時(shí),更新所述應(yīng)用服務(wù)模塊至所述發(fā)行版本號(hào)對(duì)應(yīng)的發(fā)行版本。

具體地,在本實(shí)施例中。當(dāng)有內(nèi)容提供商提供的應(yīng)用模塊更新時(shí),會(huì)更新服務(wù)器端的發(fā)行版本號(hào)。用戶在本地端,獲取模塊10從服務(wù)器獲取所有可用應(yīng)用服務(wù)模塊的發(fā)行版本號(hào),所述發(fā)行版本號(hào)對(duì)應(yīng)的發(fā)行版本可以理解為所述內(nèi)容提供商提供的應(yīng)用服務(wù)模塊模塊的最新版本。當(dāng)在本地端用戶選擇開啟所述內(nèi)容提供商提供的應(yīng)用服務(wù)模塊時(shí),開啟模塊20通過判斷所述應(yīng)用服務(wù)模塊的本地版本號(hào)和所述發(fā)行版本號(hào)不同時(shí),更新模塊30才從所述服務(wù)器端下載更新,把所述模塊更新至最新版本。

通過在用戶開啟應(yīng)用服務(wù)模塊模塊時(shí),才從服務(wù)器端更新所述應(yīng)用服務(wù)模塊模塊,使得每次更新只需要更新單個(gè)模塊,避免了像現(xiàn)有軟件更新一樣需要全部應(yīng)用服務(wù)模塊模塊的一起更新,本實(shí)施例減少對(duì)于用戶來(lái)說(shuō)不必要的更新;同時(shí)因?yàn)槊看胃碌氖怯脩糸_啟時(shí)觸發(fā)更新,使得更新實(shí)在必要時(shí)才進(jìn)行,降低了更新的頻率。

請(qǐng)參照?qǐng)D7,基于本發(fā)明多模塊軟件更新方法第一實(shí)施例,在本發(fā)明多模塊軟件更新方法第二實(shí)施例中,所述更新模塊30包括;

第一更新單元31,用于從所述服務(wù)器獲取用于更新所述應(yīng)用服務(wù)模塊至所述發(fā)行版本的更新數(shù)據(jù)包;

熱更新模塊32,用于使用所述更新數(shù)據(jù)包對(duì)所述應(yīng)用服務(wù)模塊進(jìn)行熱更新;

第二更新單元33,用于在熱更新結(jié)束后,更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào)。

通過使用熱更新,所述熱更新使得在不影響用戶使用所述應(yīng)用服務(wù)模塊的前提下完成更新操作,提升用戶體驗(yàn)。具體地在本實(shí)施例中,在用戶開啟應(yīng)用服務(wù)模塊模塊后,通過對(duì)比發(fā)現(xiàn)所述應(yīng)用服務(wù)模塊的本地版本號(hào)和所述發(fā)行版本號(hào)不同時(shí),再開啟應(yīng)用服務(wù)模塊模塊的同時(shí),第一更新單元31從服務(wù)器端獲取所要的更新程序,下載完成后熱更新模塊32對(duì)所述應(yīng)用服務(wù)模塊進(jìn)行熱更新,不影響用戶的使用的情況下,對(duì)所述應(yīng)用服務(wù)模塊進(jìn)行更新,更新完成后,第二更新單元33更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào)。

請(qǐng)參照?qǐng)D8,基于本發(fā)明多模塊軟件更新方法第二實(shí)施例,在本發(fā)明多模塊軟件更新方法第三實(shí)施例中,所述熱更新模塊32包括:

第一獲取單元321,用于獲取所述更新數(shù)據(jù)包中的dex文件;

更換單元322,用于更換所述應(yīng)用服務(wù)模塊的dex文件加載順序,使得從所述更新數(shù)據(jù)包中獲取的dex文件在前加載,并更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào)。

在本實(shí)施例中,更具體地,所述平臺(tái)類應(yīng)用為一個(gè)安卓平臺(tái)應(yīng)用,在熱更新時(shí),采用改變所述dex文件加載順序來(lái)實(shí)現(xiàn)所述熱更新操作,提升了操作速度,進(jìn)一步提升了用戶體驗(yàn);同時(shí)在用戶本地端數(shù)據(jù)庫(kù)中更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào),避免在熱更新時(shí),不能改變應(yīng)用服務(wù)模塊模塊內(nèi)部的版本,造成的更新后版本不明的問題,方便了各模塊的版本管理。

更具體地,使用了虛擬機(jī)獲取PATH.MF文件,所述PATH.MF為程序描述文件,獲取所述應(yīng)用服務(wù)模塊的類名。第一獲取單元321根據(jù)類名從更新數(shù)據(jù)包加載dex文件,更換單元322獲取所述應(yīng)用服務(wù)模塊目前的dexElements列表,通過反射機(jī)制使得PathClassLoader.pathList.dexElements使得先加載所述從更新數(shù)據(jù)包加載dex文件,從而實(shí)現(xiàn)熱更新。

請(qǐng)參照?qǐng)D9,基于本發(fā)明多模塊軟件更新方法第一實(shí)施例,在本發(fā)明多模塊軟件更新方法第四實(shí)施例中,所述獲取模塊10包括:

第二獲取單元11,用于從服務(wù)器獲取包括所述應(yīng)用服務(wù)模塊的所有可用模塊的接口信息,所述接口信息包括模塊的唯一標(biāo)識(shí)、模塊的名稱和模塊的發(fā)行版本號(hào),所述可用模塊為能在用戶設(shè)備上運(yùn)行的應(yīng)用服務(wù)模塊;

在服務(wù)器端存儲(chǔ)了大量的應(yīng)用服務(wù)模塊,適配于不同的設(shè)備,在獲取模塊接口信息時(shí),只獲取能在用戶設(shè)備上運(yùn)行的可用模塊的信息。

生成單元12,用于生成可視化界面,用于展示每個(gè)應(yīng)用服務(wù)模塊的所述接口信息。

在本實(shí)施例中,生成單元12通過為用戶提供可視化界面,展示第二獲取單元11從服務(wù)器端獲取的所有可用模塊的接口信息,使用所述接口信息填充數(shù)據(jù)展示界面,方便用戶根據(jù)最新的版本信息進(jìn)行選擇自己所要開啟的應(yīng)用服務(wù)模塊,方便了用戶的選擇,提升了用戶體驗(yàn)。

請(qǐng)參照?qǐng)D10,基于本發(fā)明多模塊軟件更新方法第四實(shí)施例,在本發(fā)明多模塊軟件更新方法第五實(shí)施例中,所述更新模塊30還包括:

判斷單元34,用于判斷所述應(yīng)用服務(wù)模塊是否存在本地版本號(hào);

可視化界面為用戶展示了全部可用模塊,但是有些可用模塊中,并沒有全部安裝到本地端,用戶開啟所述應(yīng)用服務(wù)模塊時(shí),所述應(yīng)用服務(wù)模塊的本地版本號(hào)為空,所述應(yīng)用服務(wù)模塊的服務(wù)器端的發(fā)行版本號(hào)為任一版本號(hào),所以當(dāng)本地沒有安裝某接口時(shí),所述應(yīng)用服務(wù)模塊的本地版本號(hào)和所述服務(wù)器端的發(fā)行版本號(hào)不同,當(dāng)所述應(yīng)用服務(wù)模塊沒有本地版本號(hào)時(shí),代表用戶本地未安裝所述模塊。

安裝單元35,用于當(dāng)所述應(yīng)用服務(wù)模塊不存在本地版本號(hào)時(shí),下載并安裝所述應(yīng)用服務(wù)模塊的所述發(fā)行版本,并在安裝結(jié)束后,更新所述應(yīng)用服務(wù)模塊的本地版本號(hào)為所述發(fā)行版本號(hào)。

具體在本實(shí)施例中,當(dāng)判斷單元34判斷所述應(yīng)用服務(wù)模塊的本地版本號(hào)為空是時(shí),安裝單元35從服務(wù)器下載所述應(yīng)用服務(wù)模塊的安裝包,并在安裝結(jié)束后,在本地的數(shù)據(jù)庫(kù)中為所述版本添加所述發(fā)行版本號(hào)為所述應(yīng)用服務(wù)模塊的本地版本號(hào),為以后更新所述應(yīng)用服務(wù)模塊提供方便。使得能為用戶在沒有安裝某應(yīng)用服務(wù)模塊時(shí),可以快捷的進(jìn)行安裝,為用戶提供方便。

以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1