一種擴展Android軟件功能的方法及裝置的制造方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及通信
技術(shù)領(lǐng)域:
,具體涉及移動終端
技術(shù)領(lǐng)域:
,尤其涉及一種擴展Android軟件功能的方法及裝置?!?br>背景技術(shù):
】[0002]隨著無線互聯(lián)網(wǎng)技術(shù)和智能終端的飛速發(fā)展,Android系統(tǒng)已經(jīng)廣泛地應(yīng)用于手機、平板電腦等各種智能移動終端中,并提供豐富的應(yīng)用軟件供用戶下載和使用。[0003]對于Android平臺而言,如果需要對已有的應(yīng)用程序進行功能擴展,就需要將實現(xiàn)擴展功能的代碼插入程序的原始執(zhí)行邏輯,從而實現(xiàn)軟件功能的擴展。但是該方法在每次擴展軟件功能時都需要將重新編排程序的執(zhí)行邏輯,從而耗費大量的時間和人力,實現(xiàn)軟件功能擴展的效率較低。【
發(fā)明內(nèi)容】[0004]有鑒于此,本發(fā)明實施例提供一種擴展Android軟件功能的方法及裝置,來解決以上【
背景技術(shù):
】部分提到的技術(shù)問題。[0005]一方面,本發(fā)明實施例提供了一種擴展Android軟件功能的方法,該方法包括:[0006]將Android軟件安裝包APK文件進行解包處理得到待擴展的動態(tài)庫文件;[0007]根據(jù)所述待擴展的動態(tài)庫文件的平臺類型,構(gòu)建可執(zhí)行的功能擴展節(jié),所述功能擴展節(jié)中存放有實現(xiàn)擴展功能的代碼;[0008]根據(jù)所述功能擴展節(jié)和所述待擴展的動態(tài)庫文件,構(gòu)建功能擴展的動態(tài)庫文件;[0009]將所述功能擴展的動態(tài)庫文件進行打包處理,得到功能擴展的APK文件。[0010]另一方面,本發(fā)明實施例還提供了一種擴展Android軟件功能的裝置,該裝置包括:[0011]解包模塊,用于將Android軟件安裝包APK文件進行解包處理得到待擴展的動態(tài)庫文件;[0012]擴展模塊,用于根據(jù)所述待擴展的動態(tài)庫文件的平臺類型,構(gòu)建可執(zhí)行的功能擴展節(jié),所述功能擴展節(jié)中存放有實現(xiàn)擴展功能的代碼;[0013]構(gòu)建模塊,用于根據(jù)所述擴展模塊構(gòu)建的功能擴展節(jié)和所述解包模塊得到的待擴展的動態(tài)庫文件,構(gòu)建功能擴展的動態(tài)庫文件;[0014]打包模塊,用于將所述構(gòu)建模塊構(gòu)建的功能擴展的動態(tài)庫文件進行打包處理,得到功能擴展的APK文件。[0015]本發(fā)明實施例提出的一種擴展Android軟件功能的方法及裝置,通過解包APK文件得到待擴展的動態(tài)庫文件,然后構(gòu)建功能擴展節(jié)來擴展動態(tài)庫文件的功能并進行打包,從而實現(xiàn)了APK文件的功能擴展,可以在不改變原始程序執(zhí)行邏輯及編碼規(guī)范的情況下達到功能擴展的目的,提高了軟件功能擴展的效率?!靖綀D說明】[0016]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更明顯:[0017]圖1是本發(fā)明具體實施例提供的一種擴展Android軟件功能的方法流程圖;[0018]圖2是本發(fā)明具體實施例提供的另一種擴展Android軟件功能的方法流程圖;[0019]圖3是本發(fā)明具體實施例提供的又一種擴展Android軟件功能的方法流程圖;[0020]圖4是本發(fā)明具體實施例提供的再一種擴展Android軟件功能的方法流程圖;[0021]圖5是本發(fā)明具體實施例提供的一種擴展Android軟件功能的裝置組成框圖;[0022]圖6是本發(fā)明具體實施例提供的另一種擴展Android軟件功能的裝置組成框圖;[0023]圖7是本發(fā)明具體實施例提供的另一種擴展Android軟件功能的裝置組成框圖;[0024]圖8是本發(fā)明具體實施例提供的另一種擴展Android軟件功能的裝置組成框圖;[0025]圖9是本發(fā)明具體實施例提供的另一種擴展Android軟件功能的裝置組成框圖。【具體實施方式】[0026]下面結(jié)合附圖和實施例對本發(fā)明作進一步的詳細說明??梢岳斫獾氖?,此處所描述的具體實施例僅僅用于解釋本發(fā)明,而非對本發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發(fā)明相關(guān)的部分而非全部內(nèi)容。[0027]本發(fā)明的【具體實施方式】提供了一種擴展Android軟件功能的具體方法,本領(lǐng)域普通技術(shù)人員可以理解,所述方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成的,所述的程序可以存儲于一計算機可讀存儲介質(zhì)中,所述的存儲介質(zhì)包括R0M/RAM,磁盤,光盤等。如圖1所示,該方法在執(zhí)行時,包括如下步驟:[0028]101、將Android軟件安裝包APK文件進行解包處理得到待擴展的動態(tài)庫文件。[0029]其中,所述動態(tài)庫文件是指Android平臺中的動態(tài)鏈接庫文件,即S0(SharedObject)文件,其文件名后綴均為.so。Android中的SO文件類似于Windows中的DLL文件,所述SO文件內(nèi)的函數(shù)本身不會被當作是Android程序的一部分,而是可以根據(jù)程序的需要進行加載運行。當多個程序使用同一個動態(tài)庫文件時,可以分別進行調(diào)用,既能節(jié)約可執(zhí)行文件的大小,也能減少運行時的內(nèi)存占用,具備很高的靈活性。[0030]具體地,在將Android軟件安裝包APK文件進行解包處理時,可以利用第三方工具(如apktool)將所述APK文件進行解包處理,然后得到所述APK文件的解包文件夾,其中,所述解包文件夾的Iib目錄下存放有軟件需要調(diào)用的動態(tài)庫文件。在將Android軟件安裝包APK文件進行解包處理得到解包文件夾后,還可以根據(jù)用戶指令,在所述解包文件夾的Iib目錄選取一個動態(tài)庫文件作為所述待擴展的動態(tài)庫文件。[0031]102、根據(jù)所述待擴展的動態(tài)庫文件的平臺類型,構(gòu)建可執(zhí)行的功能擴展節(jié),所述功能擴展節(jié)中存放有實現(xiàn)擴展功能的代碼。[0032]其中,所述平臺具體是指Android軟件可以運行在其上的指令集架構(gòu)。當前,Android軟件可以在以下三種指令集架構(gòu)上運行:ARM(AdvancedRISCMachines)、X86和MIPS(Mill1nInstruct1nsPerSecond),其中ARM和MIPS均是基于精簡指令集機器處理器的架構(gòu),而X86由Intel公司推出的一種基于復(fù)雜指令集的架構(gòu)。由于Android軟件可以針對不同平臺開發(fā),所以APK文件解包后得到的動態(tài)庫文件可以針對不同的平臺類型,如:[0033]libtest_x86.so[0034]libtest_arm.so[0035]libtest_mips.so[0036]上述動態(tài)庫文件對應(yīng)的平臺類型就分別為X86、ARM和MIPS架構(gòu)。[0037]由于所述動態(tài)庫文件即SO文件的格式符合ELF(ExecutableandLinkableFormat,可執(zhí)行連接格式)規(guī)范,而ELF文件通常包括:ELF文件頭(即ELFHeader)、程序文件頭表(Programheadertable)以及節(jié)(sect1n)等內(nèi)容,其中,節(jié)作為ELF文件的主要結(jié)構(gòu),可以用于存放代碼段、已經(jīng)初始化的全局變量和靜態(tài)變量以及未初始化的全局變量和靜態(tài)變量等。[0038]具體地,在根據(jù)所述待擴展的動態(tài)庫文件的平臺類型構(gòu)建可執(zhí)行的功能擴展節(jié)時,可以首先獲取所述待擴展的動態(tài)庫文件的平臺類型,然后針對特定的平臺類型構(gòu)建符合ELF規(guī)范的、可執(zhí)行的功能擴展節(jié),其中,所述功能擴展節(jié)中存放有實現(xiàn)擴展功能的具體代碼,例如,所述在功能擴展節(jié)中存儲有彈出新窗口的具體代碼。[0039]103、根據(jù)所述功能擴展節(jié)和所述待擴展的動態(tài)庫文件,構(gòu)建功能擴展的動態(tài)庫文件。[0040]具體地,在根據(jù)所述功能擴展節(jié)和所述待擴展的動態(tài)庫文件構(gòu)建功能擴展的動態(tài)庫文件時,可以根據(jù)動態(tài)庫文件的結(jié)構(gòu)特點,對所述功能擴展節(jié)和所述待擴展的動態(tài)庫文件進行融合操作,使得上述兩個文件有機地融合為一個動態(tài)庫文件即所述功能擴展的動態(tài)庫文件。這樣,所述功能擴展的動態(tài)庫文件中既包括了所述待擴展的動態(tài)庫文件,也包括了所述功能擴展節(jié),因此實現(xiàn)了動態(tài)庫文件的功能擴展。[0041]104、將所述功能擴展的動態(tài)庫文件進行打包處理,得到功能擴展的APK文件。[0042]具體地,在將所述功能擴展的動態(tài)庫文件進行打包處理時,可以利用第三方工具(如apktool),將包含有所述功能擴展的動態(tài)庫文件的解包文件夾進行打包處理,從而得到了功能擴展的APK文件。當運行所述功能擴展的APK文件時,所述功能擴展的動態(tài)庫文件可以被調(diào)用,從而執(zhí)行所述功能擴展節(jié),最終實現(xiàn)了APK文件當前第1頁1 2 3