自動(dòng)添加apk到安卓系統(tǒng)中的方法及處理系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及手機(jī)應(yīng)用軟件開(kāi)發(fā)領(lǐng)域,尤其涉及一種自動(dòng)添加APK到安卓系統(tǒng)中的方法及處理系統(tǒng)。
【背景技術(shù)】
[0002]隨著移動(dòng)互聯(lián)時(shí)代的到來(lái),移動(dòng)終端軟件的穩(wěn)定性和開(kāi)發(fā)的高效性成為手機(jī)設(shè)計(jì)公司追求的重要指標(biāo)。如何提高開(kāi)發(fā)效率,縮短開(kāi)發(fā)周期成為方案公司追求的重點(diǎn),終端產(chǎn)品上市的早晚也決定了這款機(jī)器的市場(chǎng)銷(xiāo)量。所以在各個(gè)環(huán)節(jié)提高開(kāi)發(fā)效率都是重要的該進(jìn),軟件環(huán)節(jié)在集成APK文件這塊的改進(jìn)目前還沒(méi)有好的方案問(wèn)世。
[0003]現(xiàn)有的開(kāi)發(fā)模式要求工程師將所有集成的APK文件一項(xiàng)項(xiàng)的手動(dòng)添加到源碼中,如果APK文件過(guò)多,或者APK文件中所包含的SO文件過(guò)多會(huì)浪費(fèi)工程師大量的時(shí)間和精力,如某些應(yīng)用里包含100多個(gè)SO文件,需要手動(dòng)添加這100多項(xiàng),而且如果有幾個(gè)不同應(yīng)用引用了同一個(gè)第三方SO文件的話(huà),會(huì)造成多余的添加,編譯的時(shí)候會(huì)報(bào)錯(cuò)。
[0004]以下例舉在現(xiàn)有技術(shù)中關(guān)于APK文件的添加到安卓源代碼中的方法。
[0005]由于在手機(jī)終端軟件開(kāi)發(fā)過(guò)程中,會(huì)涉及到很多第三方應(yīng)用的集成問(wèn)題,有些應(yīng)用需要集成到system區(qū),有些應(yīng)用需要集成到data區(qū)。傳統(tǒng)的開(kāi)發(fā)方式是需要工程師將APK文件解包,取出其中的SO文件和APK文件一起添加到源碼下的某一目錄,并建立Android, mk文件,將APK文件和每個(gè)SO文件各作為一個(gè)添加項(xiàng)寫(xiě)進(jìn)Android, mk文件,如集成一個(gè)PhicommCamera應(yīng)用需要添加的Android, mk文件內(nèi)容如下:
[0006]include$(CLEAR_VARS)
[0007]L0CAL_APK: = FxCamera_20150113
[0008]L0CAL_M0DULE: = PhicommCamera
[0009]L0CAL_M0DULE_TAGS: = opt1nal
[0010]L0CAL_SRC_FILES: = $ (L0CAL_APK).APK
[0011]L0CAL_M0DULE_PATH: = $ (TARGET_0UT_APPS)
[0012]L0CAL_M0DULE_CLASS: =APPS
[0013]L0CAL_M0DULE_SUFFIX: = $(C0MM0N_ANDR0ID_PACKAGE_SUFFIX)
[0014]L0CAL_CERTIFICATE: = PRESIGNED
[0015]L0CAL_REQUIRED_M0DULES: = \
[0016]libjni_mosaic\
[0017]liblocSDK4b\
[0018]include$(BUILD_PREBUILT)
[0019]include$(CLEAR_VARS)
[0020]L0CAL_PREBUILT_LIBS: = libjni_mosaic.SO
[0021]L0CAL_M0DULE_TAGS: = opt1nal
[0022]include$(BUILD_MULTI_PREBUILT)
[0023]include$(CLEAR_VARS)
[0024]LOCAL_PREBUILT_LIBS: = liblocSDK4b.SO
[0025]LOCAL_MODULE_TAGS: = opt1nal
[0026]include$ (BUILD_MULTI_PREBUILT)
[0027]這里面的每一行都需要工程師手動(dòng)添加,若集成應(yīng)用過(guò)多或者有些應(yīng)用里的SO文件過(guò)多,工程師一項(xiàng)項(xiàng)的添加效率會(huì)很低,而且很容易出錯(cuò),造成開(kāi)發(fā)效率低下。
【發(fā)明內(nèi)容】
[0028]本發(fā)明的目的是提供一種自動(dòng)添加APK到安卓系統(tǒng)中的方法及處理系統(tǒng),以解決APK文件的自動(dòng)解析和添加的技術(shù)問(wèn)題,避免SO文件重復(fù)添加,提高開(kāi)發(fā)效率。
[0029]為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種自動(dòng)添加APK到安卓系統(tǒng)中的方法,包括如下步驟:
[0030]步驟SI,對(duì)若干個(gè)目錄下的APK文件進(jìn)行解析,分別提取其中包含的各SO文件,并自動(dòng)發(fā)送該若干目錄下的分別子目錄;
[0031]步驟S2,根據(jù)各分別子目錄生成相應(yīng)的Android, mk文件;以及
[0032]步驟S3,將所有的APK文件和SO文件加入到系統(tǒng)宏P(guān)RODUCT_PACKAGES中,以適于在make時(shí)能將這些APK文件和SO文件通過(guò)相應(yīng)Android, mk文件進(jìn)行編譯。
[0033]進(jìn)一步,所述步驟SI中對(duì)若干個(gè)目錄下的APK文件進(jìn)行解析以提取其中包含的各SO文件到同一個(gè)目錄的方法包括:對(duì)目錄app-data-presigned、目錄app-system-platform 和目錄 app-system-presigned 下的 APK 文件進(jìn)行解析,提取各 APK文件中SO文件到目錄I ib-system中。
[0034]進(jìn)一步,所述步驟S2中根據(jù)各目錄生成相應(yīng)的Android, mk文件的方法包括:運(yùn)行巨 3? app_data_presigried、巨 3? app-system-pIatform> 巨 3? app-system-presigned 矛口巨錄Iib-system下的相應(yīng)appmk.sh腳本,以生成各目錄下的Android, mk文件。
[0035]進(jìn)一步,所述步驟S3中將所有的APK文件和SO文件加入到系統(tǒng)宏P(guān)R0DUCT_PACKAGES中,以適于在make時(shí)能將這些APK文件和SO文件通過(guò)Android, mk文件進(jìn)行編譯的方法包括:運(yùn)行product_mk.sh腳本,生成PrebuiltProduct.mk文件,該P(yáng)rebui ItProduct.mk文件適于將解析獲得的所有的APK文件和SO文件加入到系統(tǒng)宏P(guān)R0DUCT_PACKAGES中,以適于在make時(shí)能將上述APK文件和SO文件通過(guò)相應(yīng)Android, mk文件進(jìn)行編譯。
[0036]又一方面,為了解決上述同樣的技術(shù)問(wèn)題,本發(fā)明還提供了一種適于自動(dòng)添加APK到安卓系統(tǒng)的處理系統(tǒng),包括:
[0037]APK文件解析單元,對(duì)若干個(gè)目錄下的APK文件進(jìn)行解析,提取其中包含的各SO文件到同一個(gè)目錄;Android.mk文件生成單元,根據(jù)各目錄生成相應(yīng)的Android, mk文件;以及編譯單元,將所有的APK文件和SO文件加入到系統(tǒng)宏P(guān)R0DUCT_PACKAGES中,以適于在make時(shí)能將這些APK文件和SO文件通過(guò)相應(yīng)Android, mk文件進(jìn)行編譯。
[0038]一zP巨:巨 3? app_data_presigned、巨 3? app-system-platform和目錄app-system-presigned ;并且將提取其中包含的各SO文件到目錄lib-system中。
[0039]進(jìn)一步,所述Android, mk文件生成單元,即運(yùn)行目錄app-data-presigned、目錄app-system-platform> 巨錄app-system—presigned和巨錄 lib-system 下的相應(yīng)appmk.sh腳本,以生成各目錄下的Android, mk文件。
[0040]進(jìn)一步,所述編譯單元,即運(yùn)行product_mk.sh腳本,生成PrebuiltProduct.mk文件,該P(yáng)rebuiltProduct.mk文件適于將解析獲得的所有的APK文件和SO文件加入到系統(tǒng)宏P(guān)RODUCT_PACKAGES中,以適于在make時(shí)能將上述APK文件和SO文件通過(guò)相應(yīng)Android,mk文件進(jìn)行編譯。
[0041]本發(fā)明的有益效果是,本發(fā)明的自動(dòng)添加APK到安卓系統(tǒng)中的方法及處理系統(tǒng)能夠自動(dòng)解析APK文件,提取其中的SO文件,自動(dòng)生成相應(yīng)的Android, mk文件,并且還能防止SO文件重復(fù)寫(xiě)進(jìn)Android, mk文件而造成編譯出錯(cuò);尤其是避免當(dāng)多個(gè)APK文件引用同一個(gè)SO文件時(shí),由于工程師手動(dòng)添加這些SO文件由于造成重復(fù)添加,從而引起編譯出錯(cuò)的問(wèn)題;因此,本發(fā)明的自動(dòng)添加APK文件到安卓源碼中的方法及處理系統(tǒng)能大幅提高基于安卓系統(tǒng)的相應(yīng)軟件的開(kāi)發(fā)效率。
【附圖說(shuō)明】
[0042]圖1是本發(fā)明的自動(dòng)添加APK到安卓系統(tǒng)中的方法的流程圖一;
[0043]圖2是本發(fā)明的自動(dòng)添加APK到安卓系統(tǒng)中的方法的流程圖二 ;
[0044]圖3是本發(fā)明的自動(dòng)添加APK文件到安卓系統(tǒng)碼中的處理系統(tǒng)的原理框圖。
【具體實(shí)施方式】
[0045]現(xiàn)在結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說(shuō)明。這些附圖均為簡(jiǎn)化的示意圖,僅以示意方式說(shuō)明本發(fā)明的基本結(jié)構(gòu),因此其僅顯示與本發(fā)明有關(guān)的構(gòu)成。
[0046]本發(fā)明是在編譯終端軟件版本時(shí),增加一個(gè)預(yù)編譯命令操作,具體的操作就是在執(zhí)行make命令之前運(yùn)行根目錄下的prebuilt_mk.sh腳本,具體實(shí)施過(guò)程詳見(jiàn)實(shí)施例1和實(shí)施例2:
[0047]實(shí)施例1
[0048]如圖1和圖2所示,本發(fā)明提供了一種自動(dòng)添加APK到安卓系統(tǒng)中的方法,具體指自動(dòng)添加APK文件到安卓源碼中,包括如下步驟:
[0049]步驟SI,對(duì)若干個(gè)目錄下的APK文件進(jìn)行解析,分別提取其中包含的各SO文件,并自動(dòng)發(fā)送該若干目錄下的分別子目錄;
[0050]步驟S2,根據(jù)各分別子目錄生成相應(yīng)的Android, mk文件;以及
[0051 ] 步驟S3,將所有的APK文件和SO文件加入到系統(tǒng)宏P(guān)R0DUCT_PACKAGES中,以適于在make時(shí)能將這些APK文件和SO文件通過(guò)相應(yīng)Android, mk文件進(jìn)行編譯。
[0052]其中,在make時(shí)能將這些APK文件和SO文件通過(guò)相應(yīng)Android, mk文件進(jìn)行編譯,即編譯至安卓源碼中,或編譯進(jìn)相應(yīng)的軟件版本(軟件版本指基于安卓系統(tǒng)的具體項(xiàng)目,例如高通平臺(tái),MTK平臺(tái),每個(gè)平臺(tái)的CPU型號(hào)又有很多種,每一種對(duì)應(yīng)每一個(gè)版本)中,或編譯到安卓系統(tǒng)中。
[0053]具體的,所述步驟SI中對(duì)若干個(gè)目錄下的APK文件進(jìn)行解析以提取其中包含的各SO文件到同一個(gè)目錄的方法包括:對(duì)目錄app-data-presigned、目錄app-system-platform 和目錄 app-system-presigned 下的 APK 文件進(jìn)行解析,提取各 APK文件中SO文件到目錄I ib-