麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

渠道包生成方法及裝置、終端和服務(wù)器與流程

文檔序號(hào):11154391閱讀:510來(lái)源:國(guó)知局
渠道包生成方法及裝置、終端和服務(wù)器與制造工藝

本公開(kāi)涉及渠道包處理領(lǐng)域,尤其涉及渠道包生成方法及裝置、終端和服務(wù)器。



背景技術(shù):

相關(guān)技術(shù)中,可以通過(guò)在安卓安裝包(Android Package,APK)程序包中未被簽名保護(hù)的區(qū)域?qū)懭肭罃?shù)據(jù)的方式,生成渠道包;或者還可以通過(guò)重新簽名或重新打包的方式生成包括渠道數(shù)據(jù)的渠道包。

但是,新發(fā)布的安卓系統(tǒng)為平臺(tái)增加了大量保護(hù)方案,其中的簽名方案是對(duì)整個(gè)APK程序包對(duì)應(yīng)的APK文件進(jìn)行了保護(hù),因此無(wú)法使用上述第一種方式生成渠道包。而采用上述第二種方式生成渠道包的過(guò)程比較緩慢,消耗時(shí)間較長(zhǎng)。



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

有鑒于此,本申請(qǐng)?zhí)峁┮环N提供了渠道包生成方法及裝置、終端和服務(wù)器,以解決相關(guān)技術(shù)中的不足。

根據(jù)本公開(kāi)實(shí)施例的第一方面,提供一種渠道包生成方法,所述方法用于終端或服務(wù)器,包括:

生成渠道數(shù)據(jù);

在安卓安裝包APK程序包中的目標(biāo)位置,寫(xiě)入所述渠道數(shù)據(jù),獲得渠道包;

其中,所述目標(biāo)位置是所述APK程序包的APK簽名區(qū)中對(duì)應(yīng)于渠道數(shù)據(jù)標(biāo)識(shí)的渠道數(shù)據(jù)所在位置。

根據(jù)本公開(kāi)實(shí)施例的第二方面,提供一種渠道包生成裝置,所述裝置用于終端或服務(wù)器,包括:

渠道數(shù)據(jù)生成模塊,用于生成渠道數(shù)據(jù);

渠道包生成模塊,用于在安卓安裝包APK程序包中的目標(biāo)位置,寫(xiě)入所述渠道數(shù)據(jù),獲得渠道包;

其中,所述目標(biāo)位置是所述APK程序包的APK簽名區(qū)中對(duì)應(yīng)于渠道數(shù)據(jù)標(biāo)識(shí)的渠道數(shù)據(jù)所在位置。

根據(jù)本公開(kāi)實(shí)施例的第三方面,提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序用于執(zhí)行上述第一方面所述的渠道包生成方法。

根據(jù)本公開(kāi)實(shí)施例的第四方面,提供一種終端,包括:

處理器;

用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;

其中,所述處理器,用于執(zhí)行上述第一方面所述的渠道包生成方法。

根據(jù)本公開(kāi)實(shí)施例的第五方面,提供一種服務(wù)器,包括:

處理器;

用于存儲(chǔ)處理器可執(zhí)行指令的存儲(chǔ)器;

其中,所述處理器,用于執(zhí)行上述第一方面所述的渠道包生成方法。

由以上技術(shù)方案可見(jiàn),可以將生成的渠道數(shù)據(jù)寫(xiě)入APK程序包的APK簽名區(qū)中對(duì)應(yīng)于渠道數(shù)據(jù)標(biāo)識(shí)的渠道數(shù)據(jù)所在位置,即目標(biāo)位置,從而獲得渠道包。這樣即使安卓系統(tǒng)的簽名方案是對(duì)整個(gè)APK文件進(jìn)行了保護(hù),仍然可以生成渠道包。同時(shí)無(wú)需重新簽名或重新打包,縮短了生成渠道包的時(shí)間,可以更加快捷、簡(jiǎn)單地得到渠道包。

應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開(kāi)。

附圖說(shuō)明

此處的附圖被并入說(shuō)明書(shū)中并構(gòu)成本說(shuō)明書(shū)的一部分,示出了符合本公開(kāi)的實(shí)施例,并與說(shuō)明書(shū)一起用于解釋本公開(kāi)的原理。

圖1是本公開(kāi)根據(jù)一示例性實(shí)施例示出的一種渠道包生成方法流程圖;

圖2是本公開(kāi)根據(jù)一示例性實(shí)施例示出的另一種渠道包生成方法流程圖;

圖3是本公開(kāi)根據(jù)一示例性實(shí)施例示出的另一種渠道包生成方法流程圖;

圖4是本公開(kāi)根據(jù)一示例性實(shí)施例示出的另一種渠道包生成方法流程圖;

圖5是本公開(kāi)根據(jù)一示例性實(shí)施例示出的另一種渠道包生成方法流程圖;

圖6是本公開(kāi)根據(jù)一示例性實(shí)施例示出的另一種渠道包生成方法流程圖;

圖7是本公開(kāi)根據(jù)一示例性實(shí)施例示出的另一種渠道包生成方法流程圖;

圖8是本公開(kāi)根據(jù)一示例性實(shí)施例示出的另一種渠道包生成方法流程圖;

圖9是本公開(kāi)根據(jù)一示例性實(shí)施例示出的一種渠道包生成裝置框圖;

圖10是本公開(kāi)根據(jù)一示例性實(shí)施例示出的另一種渠道包生成裝置框圖;

圖11是本公開(kāi)根據(jù)一示例性實(shí)施例示出的另一種渠道包生成裝置框圖;

圖12是本公開(kāi)根據(jù)一示例性實(shí)施例示出的另一種渠道包生成裝置框圖;

圖13是本公開(kāi)根據(jù)一示例性實(shí)施例示出的終端的結(jié)構(gòu)示意圖;

圖14是本公開(kāi)根據(jù)一示例性實(shí)施例示出的服務(wù)器的結(jié)構(gòu)示意圖。

具體實(shí)施方式

這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本公開(kāi)相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書(shū)中所詳述的、本公開(kāi)的一些方面相一致的裝置和方法的例子。

在本公開(kāi)運(yùn)行的術(shù)語(yǔ)是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本公開(kāi)。在本公開(kāi)和所附權(quán)利要求書(shū)中所運(yùn)行的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中運(yùn)行的術(shù)語(yǔ)“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。

應(yīng)當(dāng)理解,盡管在本公開(kāi)可能采用術(shù)語(yǔ)第一、第二、第三等來(lái)描述各種信息,但這些信息不應(yīng)限于這些術(shù)語(yǔ)。這些術(shù)語(yǔ)僅用來(lái)將同一類型的信息彼此區(qū)分開(kāi)。例如,在不脫離本公開(kāi)范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語(yǔ)境,如在此所運(yùn)行的詞語(yǔ)“如果”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”。

本公開(kāi)實(shí)施例提供的渠道包生成方法可以用于終端或服務(wù)器。其中,所述服務(wù)器可以是應(yīng)用超文本傳輸協(xié)議(HyperText Transfer Protocol,http)的服務(wù)器。圖1是本申請(qǐng)一示例性實(shí)施例示出的一種渠道包生成方法,包括以下步驟:

在步驟101中,生成渠道數(shù)據(jù);

在步驟102中,在安卓安裝包APK程序包中的目標(biāo)位置,寫(xiě)入所述渠道數(shù)據(jù),獲得渠道包;

其中,所述目標(biāo)位置是所述APK程序包的APK簽名區(qū)中對(duì)應(yīng)于渠道數(shù)據(jù)標(biāo)識(shí)的渠道數(shù)據(jù)所在位置。

本公開(kāi)實(shí)施例通過(guò)在APK程序包的APK簽名區(qū)中對(duì)應(yīng)于渠道數(shù)據(jù)標(biāo)識(shí)的渠道數(shù)據(jù)所在位置,即目標(biāo)位置寫(xiě)入生成的渠道數(shù)據(jù),從而可以獲得渠道包。即使簽名方案是對(duì)整個(gè)APK文件進(jìn)行了保護(hù),仍然可以采用本公開(kāi)實(shí)施例提供的方法確保生成渠道包。另外,上述過(guò)程并不涉及重新簽名或重新打包的過(guò)程,因此,可以解決通過(guò)重新簽名或重新打包的方式生成渠道包時(shí),過(guò)程緩慢且消耗時(shí)間長(zhǎng)的問(wèn)題。

相關(guān)技術(shù)中,渠道包指的是在各大應(yīng)用市場(chǎng)發(fā)布的APK程序包,APK程序包中會(huì)帶有標(biāo)識(shí)該應(yīng)用市場(chǎng)的信息。例如360發(fā)布的渠道包中攜帶標(biāo)識(shí)360的信息;豌豆莢發(fā)布的渠道包中攜帶標(biāo)識(shí)豌豆莢的信息。通過(guò)統(tǒng)計(jì)該值,可以統(tǒng)計(jì)出用戶從哪個(gè)平臺(tái)下載了相應(yīng)的應(yīng)用程序,從而更好的掌握用戶的操作習(xí)慣。

在上述步驟101中,如圖2所示,圖2是在前述圖1所示實(shí)施例的基礎(chǔ)上示出的另一種渠道包生成方法,步驟101包括以下步驟:

在步驟101-1中,獲取渠道編號(hào);

終端或服務(wù)器可以按照相關(guān)技術(shù)獲取預(yù)設(shè)的與每個(gè)應(yīng)用市場(chǎng)對(duì)應(yīng)的所述渠道編號(hào)。例如,360對(duì)應(yīng)的預(yù)設(shè)的渠道編號(hào)為001,豌豆莢對(duì)應(yīng)的預(yù)設(shè)的渠道編號(hào)為002等。

在步驟101-2中,根據(jù)所述渠道編號(hào)生成渠道數(shù)據(jù)。

可選地,如圖3所示,圖3是在前述圖2所示實(shí)施例的基礎(chǔ)上示出的另一種渠道包生成方法,步驟101-2包括以下步驟:

在步驟101-21中,在所述APK程序包中查找所述APK簽名區(qū);

本公開(kāi)實(shí)施例中,APK簽名區(qū)是APK程序包中進(jìn)行APK簽名的部分。如果需要生成渠道數(shù)據(jù),則需要先在整個(gè)的APK程序包中定位到APK簽名區(qū)所在位置,即需要先在所述APK程序包中查找所述APK簽名區(qū)。

本步驟中,已經(jīng)按照相關(guān)技術(shù)打開(kāi)了所述APK程序包。進(jìn)一步地,可以根據(jù)所述APK程序包的預(yù)設(shè)文件格式和所述APK簽名區(qū)的預(yù)設(shè)數(shù)據(jù)格式,來(lái)查找所述APK簽名區(qū)。

其中,所述APK程序包的預(yù)設(shè)文件格式為zip格式,目前公布的APK簽名方案(APK Signature Scheme)V2中已經(jīng)對(duì)所述APK簽名區(qū)的數(shù)據(jù)格式進(jìn)行了定義。因此,可以根據(jù)上述的APK程序包的預(yù)設(shè)文件格式和APK簽名區(qū)的預(yù)設(shè)數(shù)據(jù)格式,在所述APK程序包中準(zhǔn)確查找到所述APK簽名區(qū)。

在步驟101-22中,在所述APK簽名區(qū)中獲取所述渠道數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的預(yù)設(shè)數(shù)據(jù)格式;

本公開(kāi)實(shí)施例中,數(shù)據(jù)格式是數(shù)據(jù)保存在文件或記錄中的編排格式。可為數(shù)值、字符或二進(jìn)制數(shù)等形式。由數(shù)據(jù)類型及數(shù)據(jù)長(zhǎng)度來(lái)描述。每個(gè)數(shù)據(jù)都有相應(yīng)的數(shù)據(jù)格式。

本步驟中,可以在所述APK簽名區(qū)中獲取渠道數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的預(yù)設(shè)數(shù)據(jù)格式。在所述目標(biāo)文件內(nèi)容中,存在預(yù)先定義的用于表示渠道數(shù)據(jù)的標(biāo)簽,可選地,可以將該標(biāo)簽的名稱作為渠道數(shù)據(jù)標(biāo)識(shí)。

例如,預(yù)先定義的用于表示渠道數(shù)據(jù)的標(biāo)簽,名稱是channel,則channel即為渠道數(shù)據(jù)標(biāo)識(shí)。

由于每個(gè)數(shù)據(jù)都有相應(yīng)的數(shù)據(jù)格式,則終端或服務(wù)器可以按照相關(guān)技術(shù)獲取該渠道數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的預(yù)設(shè)數(shù)據(jù)格式。

在步驟101-23中,根據(jù)所述渠道編號(hào),生成符合所述預(yù)設(shè)數(shù)據(jù)格式的渠道數(shù)據(jù)。

本步驟中,終端或服務(wù)器可以按照相關(guān)技術(shù),根據(jù)之前獲取到的所述渠道編號(hào)來(lái)生成符合上述預(yù)設(shè)數(shù)據(jù)格式的渠道數(shù)據(jù)。

例如,所述預(yù)設(shè)數(shù)據(jù)格式是字符格式的,該渠道編號(hào)為2,即對(duì)應(yīng)的渠道來(lái)源是豌豆莢,那么生成的渠道數(shù)據(jù)即為wandoujia。

在上述步驟102中,可以將生成的上述渠道數(shù)據(jù)寫(xiě)入所述APK簽名區(qū)中對(duì)應(yīng)于渠道數(shù)據(jù)標(biāo)識(shí)的渠道數(shù)據(jù)所在位置,即目標(biāo)位置。

本步驟中,在將上述渠道數(shù)據(jù)寫(xiě)入目標(biāo)位置后,就得到了符合簽名區(qū)的所述渠道數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的格式的渠道數(shù)據(jù)。從而得到攜帶渠道數(shù)據(jù)的APK程序包,即渠道包。

上述實(shí)施例中,可以將生成的渠道數(shù)據(jù)寫(xiě)入APK程序包的APK簽名區(qū)中對(duì)應(yīng)于渠道數(shù)據(jù)標(biāo)識(shí)的渠道數(shù)據(jù)所在位置,即目標(biāo)位置,從而獲得渠道包。這樣即使安卓系統(tǒng)的簽名方案是對(duì)整個(gè)APK文件進(jìn)行了保護(hù),仍然可以生成渠道包。同時(shí)無(wú)需重新簽名或重新打包,縮短了生成渠道包的時(shí)間,可以更加快捷、簡(jiǎn)單地得到渠道包。

在一實(shí)施例中,考慮到之前可能已經(jīng)對(duì)渠道數(shù)據(jù)值進(jìn)行過(guò)編輯,則渠道數(shù)據(jù)值可能不為空值。當(dāng)所述渠道數(shù)據(jù)值不為空值時(shí),無(wú)法將所述渠道數(shù)據(jù)寫(xiě)入所述目標(biāo)位置,因此,上述渠道包生成方法如圖4所示,圖4是在前述圖1所示實(shí)施例的基礎(chǔ)上示出的另一種渠道包生成方法,在完成步驟101之后,還包括以下步驟:

在步驟201中,在所述APK簽名區(qū)中確認(rèn)渠道數(shù)據(jù)值是否為空值;

本步驟中,可以直接按照相關(guān)技術(shù)在所述APK簽名區(qū)中確認(rèn)所述渠道數(shù)據(jù)值是否為空值。

例如,所述渠道數(shù)據(jù)標(biāo)識(shí)為channel,則需要查找channel對(duì)應(yīng)的數(shù)據(jù)值,即渠道數(shù)據(jù)值是否為空值。則可以確定所述渠道數(shù)據(jù)值為空值,否則可以確定所述渠道數(shù)據(jù)值不為空值。

當(dāng)所述渠道數(shù)據(jù)值不為空值時(shí),繼續(xù)執(zhí)行步驟202;如果所述渠道數(shù)據(jù)值為空值,則直接執(zhí)行步驟102,將生成的渠道數(shù)據(jù)寫(xiě)入上述目標(biāo)位置即可。

在步驟202中,將所述渠道數(shù)據(jù)值置為空值。

本步驟中,可以在所述渠道數(shù)據(jù)值不為空值時(shí),將其置為空值。

在完成步驟202之后,可以繼續(xù)執(zhí)行步驟102,將生成的渠道數(shù)據(jù)寫(xiě)入上述目標(biāo)位置。

上述實(shí)施例中,可以避免之前對(duì)渠道數(shù)據(jù)進(jìn)行過(guò)編輯導(dǎo)致無(wú)法將新生成的渠道數(shù)據(jù)寫(xiě)入目標(biāo)位置的問(wèn)題,同樣縮短了生成渠道包的時(shí)間。

在另一實(shí)施例中,APK文件是zip格式的,由于寫(xiě)入了渠道數(shù)據(jù),zip文件的內(nèi)容發(fā)生改變,產(chǎn)生了數(shù)據(jù)偏移,就會(huì)導(dǎo)致整個(gè)的APK文件格式錯(cuò)誤,無(wú)法正常安裝的問(wèn)題。為了避免上述問(wèn)題,可選地,上述渠道包生成方法如圖5所示,圖5是在前述圖1所示實(shí)施例的基礎(chǔ)上示出的另一種渠道包生成方法,在完成步驟102之后,還包括以下步驟:

在步驟301中,比較所述渠道數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度值和寫(xiě)入所述渠道數(shù)據(jù)之前所述渠道數(shù)據(jù)值的長(zhǎng)度值,獲得所述APK簽名區(qū)的數(shù)據(jù)長(zhǎng)度變化值;

本步驟中,可以比較生成的所述渠道數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度值和在寫(xiě)入所述渠道數(shù)據(jù)之前所述渠道數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的渠道數(shù)據(jù)值的長(zhǎng)度值,從而獲得所述數(shù)據(jù)長(zhǎng)度變化值。

例如,生成的所述渠道數(shù)據(jù)為wandoujia,每個(gè)字符占2個(gè)字節(jié),則所述渠道數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度值為18個(gè)字節(jié),而在寫(xiě)入所述渠道數(shù)據(jù)之前所述渠道數(shù)據(jù)標(biāo)識(shí)對(duì)應(yīng)的渠道數(shù)據(jù)值為360,則所述渠道數(shù)據(jù)值的長(zhǎng)度值為6個(gè)字節(jié)。即所述數(shù)據(jù)長(zhǎng)度變化值為增加了12個(gè)字節(jié)。當(dāng)然,所述數(shù)據(jù)長(zhǎng)度變化值也可能是減少了若干字節(jié)。

應(yīng)當(dāng)注意地是,如果所述渠道數(shù)據(jù)值不為空值,則需要統(tǒng)計(jì)的是將所述渠道數(shù)據(jù)值置為空值前的渠道數(shù)據(jù)值的長(zhǎng)度值。

在步驟302中,將所述數(shù)據(jù)長(zhǎng)度變化值作為所述APK程序包中目標(biāo)數(shù)值的變化值,更新所述目標(biāo)數(shù)值。

其中,所述目標(biāo)數(shù)值是所述APK程序包中記錄的中心目錄起始位置偏移量的數(shù)值。

本公開(kāi)實(shí)施例中,APK程序包是zip格式,每個(gè)zip文件中必須有且只有一個(gè)ZIP EOCD(End of central directory record),用于表示核心目錄結(jié)束標(biāo)識(shí)。EOCD中記錄了中心目錄起始位置偏移量(Offset of start of central directory)的具體數(shù)值。

本步驟中,可以根據(jù)所述數(shù)據(jù)長(zhǎng)度變化值,來(lái)更新所述中心目錄起始位置偏移量的數(shù)值。即將所述中心目錄起始位置的數(shù)值增加或減少所述數(shù)據(jù)長(zhǎng)度變化值。確保寫(xiě)入了所述渠道數(shù)據(jù)后的APK程序包的文件格式仍然是正確的zip格式。

例如,所述數(shù)據(jù)長(zhǎng)度變化值為增加了12個(gè)字節(jié),則所述中心目標(biāo)起始位置偏移量的數(shù)值也相應(yīng)增加12個(gè)字節(jié)。如果所述數(shù)據(jù)長(zhǎng)度變化值減少了6個(gè)字符,則所述中心目標(biāo)起始位置偏移量的數(shù)值也相應(yīng)減少6個(gè)字節(jié)。

上述實(shí)施例中,在將所述渠道數(shù)據(jù)寫(xiě)入安卓安裝包APK程序包中的目標(biāo)位置后,確保APK程序包的文件格式仍然是正確的zip格式,從而可以正常安裝,同時(shí)縮短了生成渠道包的時(shí)間。

在另一實(shí)施例中,當(dāng)上述渠道包生成方法用于服務(wù)器時(shí),上述方法如圖6所示,圖6是在前述圖1所示實(shí)施例的基礎(chǔ)上示出的另一種渠道包生成方法,在執(zhí)行步驟101之前,還包括以下步驟:

在步驟100中,接收客戶端發(fā)送的請(qǐng)求獲取渠道包的獲取請(qǐng)求;

本步驟中,客戶端如果需要獲取程序包,則客戶端會(huì)按照相關(guān)技術(shù)向服務(wù)器發(fā)起所述獲取請(qǐng)求。當(dāng)所述服務(wù)器接收到所述獲取請(qǐng)求后,可以開(kāi)始執(zhí)行步驟101。

當(dāng)然,在獲得渠道包之后,即完成步驟102之后,還包括以下步驟:

在步驟103中,在關(guān)閉所述渠道包之后,將所述渠道包發(fā)送給所述客戶端。

本步驟中,所述服務(wù)器按照上述實(shí)施例提供的方式獲得渠道包之后,關(guān)閉所述渠道包,進(jìn)而按照相關(guān)技術(shù)將所述渠道包返回發(fā)起所述獲取請(qǐng)求的客戶端即可。此時(shí),客戶端就獲取到了攜帶完整的渠道信息的APK程序包,即渠道包。

上述實(shí)施例中,服務(wù)器可以基于客戶端的獲取請(qǐng)求生成渠道包,進(jìn)而將所述渠道包返回所述客戶端,即使安卓系統(tǒng)的簽名方案是對(duì)整個(gè)APK文件進(jìn)行了保護(hù),仍然可以生成渠道包。同時(shí)無(wú)需重新簽名,縮短了服務(wù)器生成渠道包的時(shí)間,使得客戶端可以更加快捷、簡(jiǎn)單地得到渠道包。

下面分別介紹一下在終端和服務(wù)器上生成渠道包的具體過(guò)程。

如圖7所示,圖7是根據(jù)一示例性實(shí)施例示出的另一種渠道包生成方法,所述方法用于終端,包括以下步驟:

在步驟401中,打開(kāi)APK程序包。

在步驟402中,獲取渠道編號(hào)。

本步驟中,所述終端可以按照相關(guān)技術(shù)獲取預(yù)設(shè)的與每個(gè)應(yīng)用市場(chǎng)對(duì)應(yīng)的所述渠道編號(hào)。

在步驟403中,根據(jù)所述APK程序包的預(yù)設(shè)文件格式和所述APK簽名區(qū)的預(yù)設(shè)數(shù)據(jù)格式,查找所述APK簽名區(qū)。

本公開(kāi)實(shí)施例中,可以根據(jù)上述的APK程序包的預(yù)設(shè)文件格式和APK簽名區(qū)的預(yù)設(shè)數(shù)據(jù)格式,在所述APK文件中準(zhǔn)確查找到所述APK簽名區(qū)。

在步驟404中,在所述APK簽名區(qū)中獲取所述渠道數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的預(yù)設(shè)數(shù)據(jù)格式。

在步驟405中,在所述APK簽名區(qū)中確認(rèn)渠道數(shù)據(jù)值是否為空值。

如果所述渠道數(shù)據(jù)值不為空值,則執(zhí)行步驟406,否則執(zhí)行步驟407。

在步驟406中,將所述渠道數(shù)據(jù)值置為空值。

在步驟407中,根據(jù)所述渠道編號(hào),生成符合所述預(yù)設(shè)數(shù)據(jù)格式的渠道數(shù)據(jù)。

本步驟中,終端按照相關(guān)技術(shù),根據(jù)之前獲取到的所述渠道編號(hào)來(lái)生成符合上述預(yù)設(shè)數(shù)據(jù)格式的渠道數(shù)據(jù)。

在步驟408中,在APK程序包中的目標(biāo)位置,寫(xiě)入所述渠道數(shù)據(jù),獲得渠道包。

其中,所述目標(biāo)位置是APK程序包的APK簽名區(qū)中對(duì)應(yīng)于渠道數(shù)據(jù)標(biāo)識(shí)的渠道數(shù)據(jù)所在位置。

上述實(shí)施例中,即使安卓系統(tǒng)的簽名方案是對(duì)整個(gè)APK文件進(jìn)行了保護(hù),終端仍然可以自動(dòng)生成渠道包。同時(shí)無(wú)需重新簽名,縮短了生成渠道包的時(shí)間,可以更加快捷、簡(jiǎn)單地得到渠道包。

如圖8所示,圖8是根據(jù)一示例性實(shí)施例示出的另一種渠道包生成方法,所述方法用于服務(wù)器,包括以下步驟:

在步驟501中,獲取客戶端發(fā)送的請(qǐng)求獲取渠道包的獲取請(qǐng)求。

在步驟502中,打開(kāi)APK程序包。

在步驟503中,獲取渠道編號(hào)。

本步驟中,所述服務(wù)器可以按照相關(guān)技術(shù)獲取預(yù)設(shè)的與每個(gè)應(yīng)用市場(chǎng)對(duì)應(yīng)的所述渠道編號(hào)。

在步驟504中,根據(jù)所述APK程序包的預(yù)設(shè)文件格式和所述APK簽名區(qū)的預(yù)設(shè)數(shù)據(jù)格式,查找所述APK簽名區(qū)。

本公開(kāi)實(shí)施例中,可以根據(jù)上述的APK程序包的預(yù)設(shè)文件格式和APK簽名區(qū)的預(yù)設(shè)數(shù)據(jù)格式,在所述APK文件中準(zhǔn)確查找到所述APK簽名區(qū)。

在步驟505中,在所述APK簽名區(qū)中獲取所述渠道數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的預(yù)設(shè)數(shù)據(jù)格式。

在步驟506中,在所述APK簽名區(qū)中確認(rèn)渠道數(shù)據(jù)值是否為空值。

如果所述渠道數(shù)據(jù)值不為空值,則執(zhí)行步驟507,否則執(zhí)行步驟508。

在步驟507中,將所述渠道數(shù)據(jù)值置為空值。

在步驟508中,根據(jù)所述渠道編號(hào),生成符合所述預(yù)設(shè)數(shù)據(jù)格式的渠道數(shù)據(jù)。

本步驟中,所述服務(wù)器按照相關(guān)技術(shù),根據(jù)之前獲取到的所述渠道編號(hào)來(lái)生成符合上述預(yù)設(shè)數(shù)據(jù)格式的渠道數(shù)據(jù)。

在步驟509中,在APK程序包中的目標(biāo)位置,寫(xiě)入所述渠道數(shù)據(jù),獲得渠道包。

其中,所述目標(biāo)位置是APK程序包的APK簽名區(qū)中對(duì)應(yīng)于渠道數(shù)據(jù)標(biāo)識(shí)的渠道數(shù)據(jù)所在位置。

在步驟510中,在關(guān)閉所述渠道包之后,將所述渠道包發(fā)送給所述客戶端。

上述實(shí)施例中,即使安卓系統(tǒng)的簽名方案是對(duì)整個(gè)APK文件進(jìn)行了保護(hù),服務(wù)器仍然可以基于客戶端的獲取請(qǐng)求自動(dòng)生成渠道包,并將所述渠道包返回所述客戶端。同時(shí)無(wú)需重新簽名,縮短了生成渠道包的時(shí)間,使得客戶端可以更加快捷、簡(jiǎn)單地得到渠道包。

與前述方法的實(shí)施例相對(duì)應(yīng),本申請(qǐng)還提供了相應(yīng)裝置的實(shí)施例。

圖9為根據(jù)本發(fā)明的一示例性實(shí)施例示出的一種渠道包生成裝置的結(jié)構(gòu)示意圖;如圖9所示,該渠道包生成裝置可以包括:

渠道數(shù)據(jù)生成模塊610,用于生成渠道數(shù)據(jù);

渠道包生成模塊620,用于在安卓安裝包APK程序包中的目標(biāo)位置,寫(xiě)入所述渠道數(shù)據(jù),獲得渠道包;

其中,所述目標(biāo)位置是所述APK程序包的APK簽名區(qū)中對(duì)應(yīng)于渠道數(shù)據(jù)標(biāo)識(shí)的渠道數(shù)據(jù)所在位置。

在一實(shí)施例中,所述渠道數(shù)據(jù)生成模塊610具體用于:

獲取渠道編號(hào);

根據(jù)所述渠道編號(hào)生成渠道數(shù)據(jù)。

在一實(shí)施例中,所述渠道數(shù)據(jù)生成模塊610具體還用于:

在所述APK程序包中查找到所述APK簽名區(qū);

在所述APK簽名區(qū)中獲取所述渠道數(shù)據(jù)標(biāo)識(shí)所對(duì)應(yīng)的預(yù)設(shè)數(shù)據(jù)格式;

根據(jù)所述渠道編號(hào),生成符合所述預(yù)設(shè)數(shù)據(jù)格式的渠道數(shù)據(jù)。

在一實(shí)施例中,所述渠道數(shù)據(jù)生成模塊610具體還用于:

根據(jù)所述APK程序包的預(yù)設(shè)文件格式和所述APK簽名區(qū)的預(yù)設(shè)數(shù)據(jù)格式,查找所述APK簽名區(qū)。

圖10為根據(jù)本發(fā)明的圖9示例性實(shí)施例示出的另一種渠道包生成裝置的結(jié)構(gòu)示意圖;如圖10所示,該渠道包生成裝置還可以包括:

確認(rèn)模塊630,用于在所述APK簽名區(qū)中確認(rèn)渠道數(shù)據(jù)值是否為空值;

執(zhí)行模塊640,用于當(dāng)所述APK程序包中所述渠道數(shù)據(jù)值不為空值時(shí),將所述渠道數(shù)據(jù)值置為空值;

第一控制模塊650,用于當(dāng)所述執(zhí)行模塊6450將所述渠道數(shù)據(jù)值置為空值,或所述確認(rèn)模塊630查找到所述渠道數(shù)據(jù)值為空值時(shí),控制所述渠道包生成模塊在安卓安裝包APK程序包中的目標(biāo)位置,寫(xiě)入所述渠道數(shù)據(jù),獲得渠道包。

圖11為根據(jù)本發(fā)明的圖9示例性實(shí)施例示出的另一種渠道包生成裝置的結(jié)構(gòu)示意圖;如圖11所示,該渠道包生成裝置還可以包括:

比較模塊660,用于比較所述渠道數(shù)據(jù)的數(shù)據(jù)長(zhǎng)度值和寫(xiě)入所述渠道數(shù)據(jù)之前所述渠道數(shù)據(jù)值的長(zhǎng)度值,獲得所述APK簽名區(qū)的數(shù)據(jù)長(zhǎng)度變化值;

更新模塊670,用于將所述數(shù)據(jù)長(zhǎng)度變化值作為所述APK程序包中目標(biāo)數(shù)值的變化值,更新所述目標(biāo)數(shù)值;

其中,所述目標(biāo)數(shù)值是所述APK程序包中記錄的中心目錄起始位置偏移量的數(shù)值。

圖12為根據(jù)本發(fā)明的圖9示例性實(shí)施例示出的另一種渠道包生成裝置的結(jié)構(gòu)示意圖;如圖12所示,該渠道包生成裝置用于服務(wù)器時(shí),還可以包括:

接收模塊680,用于接收客戶端發(fā)送的請(qǐng)求獲取渠道包的獲取請(qǐng)求;

第二控制模塊690,用于根據(jù)所述獲取請(qǐng)求,控制所述渠道編號(hào)獲取模塊獲取渠道編號(hào);

發(fā)送模塊710,用于在所述渠道包生成模塊620獲得渠道包之后,關(guān)閉所述渠道包,將所述渠道包發(fā)送給所述客戶端。

本公開(kāi)實(shí)施例還提供了另一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,計(jì)算機(jī)程序可用于執(zhí)行上述圖8實(shí)施例提供的渠道包生成方法。

圖13示出了根據(jù)本發(fā)明的一示例性實(shí)施例的終端的結(jié)構(gòu)示意圖;對(duì)應(yīng)于上述的渠道包生成方法,本公開(kāi)實(shí)施例還提出了圖13所示的根據(jù)本發(fā)明的一示例性實(shí)施例的終端的示意結(jié)構(gòu)圖。請(qǐng)參考圖13,在硬件層面,該計(jì)算設(shè)備包括處理器、內(nèi)部總線、網(wǎng)絡(luò)接口、內(nèi)存以及非易失性存儲(chǔ)器,當(dāng)然還可能包括其他業(yè)務(wù)所需要的硬件。處理器從非易失性存儲(chǔ)器中讀取對(duì)應(yīng)的計(jì)算機(jī)程序到內(nèi)存中然后運(yùn)行,在邏輯層面上形成渠道包生成裝置。當(dāng)然,除了軟件實(shí)現(xiàn)方式之外,本申請(qǐng)并不排除其他實(shí)現(xiàn)方式,比如邏輯器件抑或軟硬件結(jié)合的方式等等,也就是說(shuō)以下處理流程的執(zhí)行主體并不限定于各個(gè)邏輯單元,也可以是硬件或邏輯器件。

圖14示出了根據(jù)本發(fā)明的一示例性實(shí)施例的服務(wù)器的結(jié)構(gòu)示意圖;對(duì)應(yīng)于上述的渠道包生成方法,本公開(kāi)實(shí)施例還提出了圖14所示的根據(jù)本發(fā)明的一示例性實(shí)施例的服務(wù)器的示意結(jié)構(gòu)圖。請(qǐng)參考圖14,在硬件層面,該計(jì)算設(shè)備包括處理器、內(nèi)部總線、網(wǎng)絡(luò)接口、內(nèi)存以及非易失性存儲(chǔ)器,當(dāng)然還可能包括其他業(yè)務(wù)所需要的硬件。處理器從非易失性存儲(chǔ)器中讀取對(duì)應(yīng)的計(jì)算機(jī)程序到內(nèi)存中然后運(yùn)行,在邏輯層面上形成渠道包生成裝置。當(dāng)然,除了軟件實(shí)現(xiàn)方式之外,本申請(qǐng)并不排除其他實(shí)現(xiàn)方式,比如邏輯器件抑或軟硬件結(jié)合的方式等等,也就是說(shuō)以下處理流程的執(zhí)行主體并不限定于各個(gè)邏輯單元,也可以是硬件或邏輯器件。

本領(lǐng)域技術(shù)人員在考慮說(shuō)明書(shū)及實(shí)踐這里公開(kāi)的發(fā)明后,將容易想到本申請(qǐng)的其它實(shí)施方案。本申請(qǐng)旨在涵蓋本申請(qǐng)的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本申請(qǐng)的一般性原理并包括本申請(qǐng)未公開(kāi)的本技術(shù)領(lǐng)域中的公知常識(shí)或慣用技術(shù)手段。說(shuō)明書(shū)和實(shí)施例僅被視為示例性的,本申請(qǐng)的真正范圍和精神由下面的權(quán)利要求指出。

還需要說(shuō)明的是,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、商品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、商品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過(guò)程、方法、商品或者設(shè)備中還存在另外的相同要素。

以上所述僅為本公開(kāi)的較佳實(shí)施例而已,并不用以限制本公開(kāi),凡在本公開(kāi)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本公開(kāi)保護(hù)的范圍之內(nèi)。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
主站蜘蛛池模板: 翼城县| 漳州市| 东港市| 响水县| 钟山县| 湟中县| 阿瓦提县| 濮阳县| 吐鲁番市| 顺平县| 东源县| 板桥市| 曲水县| 旌德县| 江孜县| 江川县| 海阳市| 远安县| 前郭尔| 新平| 普兰店市| 麦盖提县| 化隆| 平顶山市| 冷水江市| 海盐县| 连州市| 嵩明县| 静乐县| 武平县| 来凤县| 仲巴县| 惠水县| 舟曲县| 宾阳县| 大名县| 高淳县| 洛阳市| 乃东县| 陆川县| 石城县|