一種通過應用簽名來攜帶服務相關信息的方法和系統(tǒng)的制作方法
【技術(shù)領域】
[0001]本發(fā)明屬于移動局域網(wǎng)領域,具體涉及一種通過應用簽名來攜帶服務相關信息的方法和系統(tǒng)。
【背景技術(shù)】
[0002]隨著移動互聯(lián)網(wǎng)的快速發(fā)展,移動應用的大量涌現(xiàn),使人們的日常生活和工作更加豐富便捷。大部分的移動應用通過網(wǎng)絡和服務器獲取到用戶需要訪問的信息,為用戶提供服務。但這種模式只適合公網(wǎng)類型作為交互基礎,當應用于公安網(wǎng)一樣內(nèi)網(wǎng)網(wǎng)絡,就會出現(xiàn)問題。內(nèi)網(wǎng)服務是需要通過ip地址而不是域名訪問的,所以在終端必須固定服務地址。這樣的話必須確定服務部署的地址才能修改應用中包含的服務地址,最后再發(fā)布應用。這樣導致終端發(fā)布不靈活,當服務地址變動時都要修改終端應用的服務地址再發(fā)布應用。當服務對應的終端應用不多時還可以忍受,但如果有幾十個上百個應用就會出現(xiàn)問題,每次發(fā)布就需要開發(fā)人員去修改對應的服務地址,既浪費了人力成本又拖慢了發(fā)布過程。
【發(fā)明內(nèi)容】
[0003]針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的是一種通過應用簽名來攜帶服務相關信息的方法和系統(tǒng)。該方法和系統(tǒng)能夠節(jié)省終端修改服務地址耗費的人力成本,只需要通過應用發(fā)布服務修改終端應用簽名,使其自動指向服務。
[0004]為達到以上目的,本發(fā)明采用的技術(shù)方案是,一種通過應用簽名來攜帶服務相關信息的方法,包括以下步驟:
[0005](I)終端應用開發(fā)人員提供未簽名的應用,并將應用上傳到發(fā)布服務器;
[0006](2)發(fā)布服務器自動解析應用信息,并將此類信息記錄到數(shù)據(jù)庫;
[0007](3)部署實施人員在發(fā)布服務產(chǎn)生的未簽名服務列表中找到該應用,修改應用對應的服務地址;
[0008](4)部署實施人員點擊發(fā)布服務提供的簽名功能為應用進行簽名;
[0009](5)應用簽名完成后,發(fā)布應用,發(fā)布的應用可供用戶直接下載。
[0010]進一步,步驟⑵中,所述的應用信息包括應用包名、版本號,所述的應用在發(fā)布服務器被解壓,并提取應用的信息配置文件。
[0011]更進一步,提取應用的信息配置文件的方法如下:
[0012]I)通過 apktool.jar 命令提取 apk 文件中 package/res/values/string, xml 文件;
[0013]2)讀取釋放根目錄下的AndroidManifest.xml文件,從該文件中獲取到APK包名、版本信息;
[0014]3)檢測APK包名在數(shù)據(jù)庫中是否存在,如果是新上傳的APK,則其包名在數(shù)據(jù)庫中不存在,否則就禁止上傳相同包名的APK,修改時不檢測;
[0015]4)通過正則表達式獲取所需要的信息。
[0016]再進一步,步驟I)中,如果釋放apk文件時沒有得到string, xml文件,貝U在后臺增加:$_config_product_apktool_count參數(shù),來控制釋放的最大次數(shù)。
[0017]進一步,步驟(4)中,將未簽名應用需要訪問的服務地址保存到簽名中。
[0018]更進一步,將發(fā)布服務器的服務地址記錄到應用中,簽名過程中輸入應用訪問的服務地址信息,同時該簽名過程會將發(fā)布服務器的服務地址做記錄。
[0019]進一步,當應用有更新版本時,會通知終端更新應用,終端通過更新功能和發(fā)布服務器交互就會實現(xiàn)應用的更新。
[0020]進一步,應用使用時訪問的服務地址可做變動,但發(fā)布服務的地址是固定不變的。
[0021]一種通過應用簽名來攜帶服務相關信息的系統(tǒng),包括以下模塊:
[0022]上傳模塊,用于開發(fā)人員將未簽名的終端應用上傳到發(fā)布服務器;
[0023]解析模塊,用于發(fā)布服務器自動解析應用信息,并將此類信息記錄到數(shù)據(jù)庫;
[0024]修改模塊,用于部署實施人員在發(fā)布服務產(chǎn)生的未簽名服務列表中找到該應用,修改應用對應的服務地址;
[0025]簽名模塊,用于部署實施人員點擊發(fā)布服務提供的簽名功能為應用進行簽名;
[0026]發(fā)布模塊,用于應用簽名完成后,發(fā)布應用,發(fā)布的應用可供用戶直接下載。
[0027]進一步,解析模塊解析的所述應用信息包括應用包名、版本號,所述的應用在發(fā)布服務器被解壓,并提取應用的信息配置文件。
[0028]所述的簽名模塊將未簽名應用需要訪問的服務地址保存到簽名中,將發(fā)布服務器的服務地址記錄到應用中,簽名過程中輸入應用訪問的服務地址信息,同時該簽名過程會將發(fā)布服務器的服務地址做記錄;
[0029]當應用有更新版本時,所述的發(fā)布模塊會通知終端更新應用,終端通過更新功能和發(fā)布服務器交互就會實現(xiàn)應用的更新。
[0030]本發(fā)明的效果在于:采用本發(fā)明所述的方法,可以節(jié)省終端修改服務地址耗費的人力成本,只需要通過應用發(fā)布服務修改終端應用簽名,使其自動指向服務,從而解決內(nèi)網(wǎng)服務中發(fā)布應用耗費不必要的人力成本問題,提高發(fā)布效率。
【附圖說明】
[0031]圖1是本發(fā)明所述方法的流程圖;
[0032]圖2是本發(fā)明所述系統(tǒng)的結(jié)構(gòu)圖。
【具體實施方式】
[0033]下面結(jié)合附圖和【具體實施方式】對本發(fā)明作進一步描述。
[0034]本發(fā)明的核心思想在于:終端應用開發(fā)人員在開發(fā)應用時需要首先解析簽名,通過簽名獲取到其訪問的服務地址,應用開發(fā)完成后,將應用打包但不進行簽名,打包完成后將未簽名的應用上傳到發(fā)布服務器;應用發(fā)布人員在發(fā)布服務器對未簽名的應用進行簽名;應用簽名完成后,即可發(fā)布應用,用戶可以到發(fā)布服務下載該應用。
[0035]本實施例中,如圖1所示,一種通過應用簽名來攜帶服務相關信息的方法,包括以下步驟:
[0036]SI,終端應用開發(fā)人員提供未簽名的應用,并將應用上傳到發(fā)布服務器;
[0037]S2,發(fā)布服務器自動解析應用信息,比如應用包名,版本號等等,并將此類信息記錄到數(shù)據(jù)庫;
[0038]應用在發(fā)布服務器被解壓,并提取應用的信息配置文件,提取的技術(shù)因平臺而有所區(qū)別,android平臺可用以下的方法。
[0039]I)首先,通過 apktool.jar 命令提取 apk 文件中 package/res/values/string.xml文件,如果釋放apk文件時沒有得到string, xml文件,則在后臺增加:$_config_product_apktool_count參數(shù),來控制釋放的最大次數(shù);
[0040]2)讀取釋放根目錄下的AndroidManifest.xml文件,從該文件中獲取到APK包名、版本信息;
[0041]3)檢測APK包名在數(shù)據(jù)庫中是否存在,如果是新上傳的APK,則其包名在數(shù)據(jù)庫中不存在,否則就禁止上傳相同包名的APK,修改時不檢測;
[0042]4)、通過正則表達式獲取所需要的信息。
[0043]S3,部署實施人員在發(fā)布服務產(chǎn)生的未簽名服務列表中找到該應用,修改應用對應的服務地址;
[0044]S4,部署實施人員點擊發(fā)布服務提供的“簽名”功能為應用進行簽名;
[0045]因為平臺不同,簽名用到的技術(shù)和原理有差別,但是都可以通過簽名來攜帶一些信息?;诖朔N原理,發(fā)布人員將未簽名應用需要訪問的服務地址保存到簽名中。該部分需要同開發(fā)人員約定好簽名中的哪一部分是服務地址。同時會將發(fā)布服務器的服務地址記錄到應用中,以便終端自動更新。
[0046]簽名過程中要準確輸入應用訪問的服務