一種對(duì)Android軟件進(jìn)行功能擴(kuò)展的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及移動(dòng)通信技術(shù)領(lǐng)域,尤其涉及一種對(duì)Android軟件進(jìn)行功能擴(kuò)展的方法及裝置。
【背景技術(shù)】
[0002]隨著智能移動(dòng)終端的不斷普及,種類繁多的應(yīng)用程序軟件(applicat1n,簡(jiǎn)稱APP)也被廣泛使用在各類移動(dòng)終端上,逐漸成為人們?nèi)粘I钪胁豢苫蛉钡囊徊糠帧?br>[0003]目前,市面上主流的APP通常是由多個(gè)開發(fā)者進(jìn)行互相合作開放得到的,并且在APP上線前通常還會(huì)與第三方渠道商合作進(jìn)行APP功能的擴(kuò)展,如添加彈出窗口并進(jìn)行圖片展示的功能。因此,一個(gè)APP軟件中很可能包含有多方的代碼,在現(xiàn)有技術(shù)中,通??梢岳密浖_發(fā)工具包(Software Development Kit,簡(jiǎn)稱SDK)或預(yù)留代碼接口的等方式,來滿足對(duì)已有APP軟件添加新功能的需求。
[0004]采用上述現(xiàn)有技術(shù)進(jìn)行軟件功能擴(kuò)展時(shí),需要在原始應(yīng)用代碼中嵌入第三方代碼及相關(guān)配置文件,然后再進(jìn)行編譯、打包,其整合難度大、實(shí)現(xiàn)周期長(zhǎng)。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明實(shí)施例提供一種對(duì)Android軟件進(jìn)行功能擴(kuò)展的方法及裝置,來解決以上【背景技術(shù)】部分提到的技術(shù)問題。
[0006]一方面,本發(fā)明實(shí)施例提供了一種對(duì)Android軟件進(jìn)行功能擴(kuò)展的方法,所述方法包括:
[0007]構(gòu)建包含第一擴(kuò)展代碼塊的第一 DEX文件,所述第一擴(kuò)展代碼塊用于實(shí)現(xiàn)擴(kuò)展的第一功能;
[0008]從待功能擴(kuò)展的Android軟件安裝包APK文件中獲取第二 DEX文件;
[0009]將所述第一 DEX文件和所述第二 DEX文件合并為第三DEX文件,并將所述第三DEX文件添加到所述待功能擴(kuò)展的APK文件的資源文件夾中;
[0010]構(gòu)建用于啟動(dòng)所述第三DEX文件的第四DEX文件,并將所述第四DEX文件添加到所述待功能擴(kuò)展的APK文件中,得到功能擴(kuò)展的APK文件。
[0011]另一方面,本發(fā)明實(shí)施例還提供了一種對(duì)Android軟件進(jìn)行功能擴(kuò)展的裝置,所述裝置包括:
[0012]第一構(gòu)建模塊,用于構(gòu)建包含第一擴(kuò)展代碼塊的第一 DEX文件,所述第一擴(kuò)展代碼塊用于實(shí)現(xiàn)擴(kuò)展的第一功能;
[0013]獲取模塊,用于從待功能擴(kuò)展的Android軟件安裝包APK文件中獲取第二 DEX文件;
[0014]合并模塊,用于將所述第一構(gòu)建模塊構(gòu)建的第一 DEX文件和所述獲取模塊獲取的第二 DEX文件合并為第三DEX文件,并將所述第三DEX文件添加到所述待功能擴(kuò)展的APK文件的資源文件夾中;
[0015]第二構(gòu)建模塊,用于構(gòu)建用于啟動(dòng)所述合并模塊得到的第三DEX文件的第四DEX文件,并將所述第四DEX文件添加到所述待功能擴(kuò)展的APK文件中,得到功能擴(kuò)展的APK文件。
[0016]本發(fā)明實(shí)施例提出的一種對(duì)Android軟件進(jìn)行功能擴(kuò)展的方法及裝置,首先構(gòu)建實(shí)現(xiàn)擴(kuò)展功能的第一 DEX文件,并與原APK文件中的第二 DEX文件合并為第三DEX文件,然后構(gòu)建第四DEX文件來啟動(dòng)所述第三DEX文件,從而實(shí)現(xiàn)了 Android軟件的功能擴(kuò)展,通過對(duì)待功能擴(kuò)展的APK文件進(jìn)行代碼植入操作,優(yōu)化了代碼整合的流程,節(jié)省了開發(fā)時(shí)間,提高了 Android軟件的功能擴(kuò)展效率。
【附圖說明】
[0017]通過閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0018]圖1是本發(fā)明具體實(shí)施例提供的一種對(duì)Android軟件進(jìn)行功能擴(kuò)展的方法流程圖;
[0019]圖2是本發(fā)明具體實(shí)施例提供的另一種對(duì)Android軟件進(jìn)行功能擴(kuò)展的方法流程圖;
[0020]圖3是本發(fā)明具體實(shí)施例提供的一種將第一DEX文件和第二 DEX文件合并為第三DEX文件的方法流程圖;
[0021]圖4是本發(fā)明具體實(shí)施例提供的一種將第三DEX文件添加到待功能擴(kuò)展的APK文件的資源文件夾中的方法流程圖;
[0022]圖5為本發(fā)明具體實(shí)施例提供的一種對(duì)Android軟件進(jìn)行功能擴(kuò)展的裝置組成框圖;
[0023]圖6為本發(fā)明具體實(shí)施例提供的另一種對(duì)Android軟件進(jìn)行功能擴(kuò)展的裝置組成框圖;
[0024]圖7為本發(fā)明具體實(shí)施例提供的另一種對(duì)Android軟件進(jìn)行功能擴(kuò)展的裝置組成框圖;
[0025]圖8為本發(fā)明具體實(shí)施例提供的另一種對(duì)Android軟件進(jìn)行功能擴(kuò)展的裝置組成框圖。
【具體實(shí)施方式】
[0026]下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說明。可以理解的是,此處所描述的具體實(shí)施例僅僅用于解釋本發(fā)明,而非對(duì)本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部?jī)?nèi)容。
[0027]本發(fā)明的具體實(shí)施例提供了一種對(duì)Android軟件進(jìn)行功能擴(kuò)展的方法,本領(lǐng)域普通技術(shù)人員可以理解,所述方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成的,所述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,所述的存儲(chǔ)介質(zhì)包括R0M/RAM,磁盤,光盤等。如圖1所示,該方法包括:
[0028]101、構(gòu)建包含第一擴(kuò)展代碼塊的第一 DEX文件,所述第一擴(kuò)展代碼塊用于實(shí)現(xiàn)擴(kuò)展的第一功能。
[0029]具體地,在構(gòu)建包含第一擴(kuò)展代碼塊的第一 DEX文件時(shí),首先可以根據(jù)上述擴(kuò)展的第一功能所需要實(shí)現(xiàn)的具體操作,來編寫能夠完成相關(guān)功能的第一擴(kuò)展代碼塊,其中,所述第一擴(kuò)展代碼塊可以采用JAVA語言進(jìn)行編寫,然后再將所述第一擴(kuò)展代碼塊進(jìn)行編譯處理就可以得到所述第一 DEX文件。
[0030]102、從待功能擴(kuò)展的Android軟件安裝包APK文件中獲取第二 DEX文件。
[0031]其中,所述待功能擴(kuò)展的Android軟件安裝包APK文件可以是需要進(jìn)行功能擴(kuò)展的Android軟件的安裝包文件即APK文件,所述APK是Android Package的縮寫,其能夠被Android系統(tǒng)識(shí)別并運(yùn)行。一個(gè)APK文件內(nèi)可以包含被編譯的代碼文件(DEX文件),資源文件夾(名稱為res的文件夾),證書(certificates)和清單文件(manifest file)等。
[0032]APK文件其實(shí)是zip格式,但后綴名被修改為apk。當(dāng)從待功能擴(kuò)展的Android軟件安裝包APK文件中獲取第二 DEX文件時(shí),可以對(duì)所述APK文件進(jìn)行解壓操作,然后從解包文件夾中獲取所述待功能擴(kuò)展的APK文件的原始DEX文件,作為本實(shí)施例中的所述第二DEX文件,其中DEX是DalvikVM executes的全稱,即Android Dalvik執(zhí)行程序,也就是說,DEX文件的功能類似于Windows系統(tǒng)下的EXE文件。
[0033]103、將所述第一 DEX文件和所述第二 DEX文件合并為第三DEX文件,并將所述第三DEX文件添加到所述待功能擴(kuò)展的APK文件的資源文件夾中。
[0034]具體地,當(dāng)將上述第一 DEX文件和上述第二 DEX文件合并為第三DEX文件時(shí),可以利用第三方工具(如Apktool)將所述第一 DEX文件和所述第二 DEX文件進(jìn)行合并處理,然后就可以得到所述第三DEX文件。由于所述第一 DEX文件可以實(shí)現(xiàn)上述擴(kuò)展的第一功能,同時(shí)所述第二 DEX文件可以實(shí)現(xiàn)上述待功能擴(kuò)展的APK文件的原始功能,也就是待功能擴(kuò)展的Android軟件的原始功能,那么,所述第一 DEX文件和所述第二 DEX文件合并后得到的所述第三DEX文件就可以同時(shí)實(shí)現(xiàn)所述擴(kuò)展的第一功能和所述待功能擴(kuò)展的Android軟件的原始功能,即實(shí)現(xiàn)了 DEX文件的功能擴(kuò)展。
[0035]在得到上述第三DEX文件之后,可以將所述第三DEX文件添加到所述待功能擴(kuò)展的APK文件的資源文件夾中,其中所述資源文件夾可以是名字為res的文件夾,那么所述第三DEX文件就可以作為所述待功能擴(kuò)展的APK文件的一個(gè)資源文件,以待后續(xù)使用。
[0036]104、構(gòu)建用于啟動(dòng)所述第三DEX文件的第四DEX文件,并將所述第四DEX文件添加到所述待功能擴(kuò)展的APK文件中,得到功能擴(kuò)展的APK文件。
[0037]具體地,在構(gòu)建上述第四DEX文件時(shí),可以根據(jù)Android系統(tǒng)下DEX文件的通用構(gòu)建規(guī)則和語法規(guī)范新建一個(gè)DEX文件,并且將可以啟動(dòng)上述第三DEX文件的啟動(dòng)代碼塊寫入上述新建的DEX文件中,就可以得到所述第四DEX文件,即所述第四DEX文件可以用于啟動(dòng)所述第三DEX文件。
[0038]當(dāng)將所述第四DEX文件添加到所述待功能擴(kuò)展的APK文件中時(shí),可以將上述待功能擴(kuò)展的APK文件中的原始DEX文件替換為所述第四DEX文件,從而得到了功能擴(kuò)展的APK文件。
[0039]當(dāng)安裝經(jīng)過功能擴(kuò)展的Android軟件時(shí),也就是運(yùn)行上述