日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

移動智能終端下轉(zhuǎn)發(fā)應(yīng)用程序內(nèi)流量的方法

文檔序號:9646431閱讀:660來源:國知局
移動智能終端下轉(zhuǎn)發(fā)應(yīng)用程序內(nèi)流量的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動互聯(lián)網(wǎng)領(lǐng)域,尤其是涉及移動智能終端下轉(zhuǎn)發(fā)應(yīng)用程序內(nèi)流量的方法。
【背景技術(shù)】
[0002]移動智能終端是指像個(gè)人電腦一樣,具有獨(dú)立的操作系統(tǒng),可以由用戶自行安裝軟件、游戲等第三方服務(wù)商提供的程序,通過此類程序來不斷對終端的功能進(jìn)行擴(kuò)充,并可以通過移動通訊網(wǎng)絡(luò)來實(shí)現(xiàn)無線網(wǎng)絡(luò)接入的便攜式設(shè)備。常見的移動智能終端包括智能手機(jī)和平板電腦。得益于其高度的便攜性,移動智能終端正在成為人們使用頻率最高的電子設(shè)備。
[0003]移動智能終端被使用的最多的功能之一是訪問互聯(lián)網(wǎng),這正在取代通過臺式電腦或者筆記本電腦訪問互聯(lián)網(wǎng)的傳統(tǒng)方式。在這種背景下,希望移動智能終端也具有以往僅在臺式電腦或者筆記本電腦上實(shí)現(xiàn)的各種網(wǎng)絡(luò)服務(wù),例如網(wǎng)絡(luò)代理服務(wù)。
[0004]網(wǎng)絡(luò)代理服務(wù)允許一個(gè)網(wǎng)絡(luò)終端(一般為客戶端)通過這個(gè)服務(wù)與另一個(gè)網(wǎng)絡(luò)終端(一般為服務(wù)器)進(jìn)行非直接的連接。代理服務(wù)有利于保障網(wǎng)絡(luò)終端的隱私或安全,防止攻擊,同時(shí)可以緩存源服務(wù)器的內(nèi)容,降低源服務(wù)器的負(fù)載壓力。
[0005]目前移動智能終端中的應(yīng)用程序上使用代理服務(wù),主要有以下幾種方法:
[0006]1、CNAME方法:CNAME指別名記錄(也被稱為規(guī)范名字),這種記錄允許將多個(gè)名字映射到同一臺計(jì)算機(jī)??梢酝ㄟ^DNS (Domain Name System,域名系統(tǒng))將域名映射到代理服務(wù)器的地址。這一方法的缺點(diǎn)是僅限HTTP/HTTPS協(xié)議,且該方法在配置后會有一定的延遲時(shí)間,無法立即生效。
[0007]2、APN方法,通過配置APN(Access Point Name,接入點(diǎn))來引導(dǎo)流量。這一方法的缺點(diǎn)是配置了 APN的移動智能終端上所有的應(yīng)用程序都會被迫使用所配置的代理服務(wù)器,安全性低。
[0008]3、代碼控制:應(yīng)用程序開發(fā)者直接在代碼中對應(yīng)用程序的各個(gè)網(wǎng)絡(luò)請求進(jìn)行代理設(shè)置,將流量發(fā)送到代理服務(wù)器。這一方法的缺點(diǎn)是代碼改動量大,復(fù)用程度低,且在有些操作系統(tǒng)(例如Google公司的Android系統(tǒng))中,這種方式不適用于已經(jīng)編譯完成的第三方應(yīng)用程序。

【發(fā)明內(nèi)容】

[0009]本發(fā)明所要解決的技術(shù)問題是提供一種移動智能終端下轉(zhuǎn)發(fā)應(yīng)用程序內(nèi)流量的方法,其能夠在Android這樣的操作系統(tǒng)中讓已經(jīng)編譯完成的第三方應(yīng)用程序?qū)崿F(xiàn)代理設(shè)置。
[0010]本發(fā)明為解決上述技術(shù)問題而采用的技術(shù)方案是提出一種移動智能終端下轉(zhuǎn)發(fā)應(yīng)用程序內(nèi)流量的方法,適用于安卓操作系統(tǒng),該方法包括以下步驟:
[0011]在一代碼重寫工具包讀取應(yīng)用程序的字節(jié)碼文件,該應(yīng)用程序的字節(jié)碼文件由該應(yīng)用程序的打包程序在導(dǎo)出應(yīng)用包時(shí)獲取;
[0012]在該代碼重寫工具包檢索該字節(jié)碼文件中與一個(gè)或多個(gè)網(wǎng)絡(luò)請求對應(yīng)的一個(gè)或多個(gè)第一字節(jié)碼;
[0013]在該代碼重寫工具包從一軟件開發(fā)工具包中提取與各第一字節(jié)碼對應(yīng)的第二字節(jié)碼,并以各第二字節(jié)碼替換各第一字節(jié)碼;以及
[0014]將各第二字節(jié)碼返回給該打包程序,從而使該打包程序使用重寫的各第二字節(jié)碼生成應(yīng)用包。
[0015]在本發(fā)明的一實(shí)施例中,該代碼重寫工具包具有一配置信息,該配置信息包含各第一字節(jié)碼的匹配信息,該代碼重寫工具包根據(jù)該配置信息檢索需要重寫的各第一字節(jié)碼。
[0016]在本發(fā)明的一實(shí)施例中,該打包程序被配置一 Java代理(javaagent)參數(shù),該Java代理參數(shù)的文件存儲目標(biāo)為該代碼重寫工具包。
[0017]在本發(fā)明的一實(shí)施例中,上述方法還包括經(jīng)由該代碼重寫工具包將該Java代理參數(shù)傳遞給安卓開發(fā)環(huán)境的dx程序。
[0018]在本發(fā)明的一實(shí)施例中,該一個(gè)或多個(gè)網(wǎng)絡(luò)請求的其中之一使用Http客戶端(Httpclient)訪問網(wǎng)絡(luò)。
[0019]在本發(fā)明的一實(shí)施例中,各第二字節(jié)碼包括:替換該第一字節(jié)碼中的第一執(zhí)行函數(shù)的第二執(zhí)行函數(shù)、將Http客戶端實(shí)例以及執(zhí)行函數(shù)的參數(shù)傳遞給該第二執(zhí)行函數(shù)的指令。
[0020]在本發(fā)明的一實(shí)施例中,該一個(gè)或多個(gè)網(wǎng)絡(luò)請求的其中之一使用URL訪問網(wǎng)絡(luò)。
[0021]在本發(fā)明的一實(shí)施例中,各第二字節(jié)碼包括:替換該第一字節(jié)碼中的第一連接函數(shù)的第二連接函數(shù)、將URL實(shí)例及連接函數(shù)的參數(shù)傳遞給該第二連接函數(shù)的指令。
[0022]在本發(fā)明的一實(shí)施例中,該一個(gè)或多個(gè)網(wǎng)絡(luò)請求的其中之一使用套接字(Socket)訪問網(wǎng)絡(luò)。
[0023]在本發(fā)明的一實(shí)施例中,各第二字節(jié)碼包括:替換該第一字節(jié)碼中的第一連接函數(shù)的第二連接函數(shù)、將Socket實(shí)例及連接函數(shù)的參數(shù)傳遞給該第二連接函數(shù)的指令。
[0024]本發(fā)明由于采用以上技術(shù)方案,使之與現(xiàn)有技術(shù)相比,具有如下顯著優(yōu)點(diǎn):
[0025]1、支持協(xié)議種類多。支持HTTP/HTTPS和其他所有基于TCP的應(yīng)用層協(xié)議。
[0026]2、響應(yīng)快速。對于是否使用代理的開關(guān),所使用代理服務(wù)器的地址等修改能立即生效。
[0027]3、不影響其他應(yīng)用。確保只有需要使用服務(wù)的應(yīng)用的流量被轉(zhuǎn)發(fā)到代理服務(wù)器,智能移動終端上的其他應(yīng)用不受影響。
[0028]4、兼容性強(qiáng)。使用方法簡單透明,與應(yīng)用自身實(shí)現(xiàn)關(guān)聯(lián)度極低,能兼容絕大多數(shù)應(yīng)用。
[0029]5、部署簡單。應(yīng)用開發(fā)者只需要在開發(fā)工程中使用代碼重寫工具包和軟件開發(fā)工具包,能以最低的成本將代理功能部署到應(yīng)用上。
【附圖說明】
[0030]為讓本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,以下結(jié)合附圖對本發(fā)明的【具體實(shí)施方式】作詳細(xì)說明,其中:
[0031]圖1是本發(fā)明一實(shí)施例中進(jìn)行代碼重寫的流程圖。
[0032]圖2是本發(fā)明一實(shí)施例中HttpClient訪問網(wǎng)絡(luò)的重寫后代碼執(zhí)行流程圖。
[0033]圖3是本發(fā)明一實(shí)施例中使用URL訪問網(wǎng)絡(luò)的重寫后代碼執(zhí)行流程圖。
[0034]圖4是本發(fā)明一實(shí)施例中使用Socket訪問網(wǎng)絡(luò)的重寫后代碼執(zhí)行流程圖。
[0035]圖5是本發(fā)明另一實(shí)施例中使用Socket訪問網(wǎng)絡(luò)的重寫后代碼執(zhí)行流程圖。
【具體實(shí)施方式】
[0036]本發(fā)明的實(shí)施例描述一種在移動智能終端平臺下將網(wǎng)絡(luò)請求轉(zhuǎn)發(fā)到指定服務(wù)器(后文稱為代理服務(wù)器)的方法。本發(fā)明的實(shí)施例所涉及的移動終端平臺例如為谷歌(Google)公司的安卓(Android)操作系統(tǒng)。
[0037]已知的CNAME方法僅限HTTP/HTTPS協(xié)議,且該方法在配置后會有一定的延遲時(shí)間,無法立即生效。已知的APN方法迫使移動智能終端上所有的應(yīng)用程序都使用所配置的代理服務(wù)器。已知的代碼控制方法需要直接在代碼中對應(yīng)用程序的各個(gè)網(wǎng)絡(luò)請求進(jìn)行代理設(shè)置,代碼改動量大、復(fù)用程度低,且在有些操作系統(tǒng)(例如Google公司的Android系統(tǒng))中存在不適用于已經(jīng)編譯完成的第三方應(yīng)用程序。
[0038]本發(fā)明的各實(shí)施例適用于各種協(xié)議的網(wǎng)絡(luò)請求,包括但不限于HTTP/HTTPS協(xié)議和TCP/IP協(xié)議。另外,本發(fā)明的實(shí)施例的方法可允許應(yīng)用程序單獨(dú)設(shè)定代理。再者,本發(fā)明的實(shí)施例的方法可以讓已經(jīng)編譯完成的第三方應(yīng)用程序擁有代理設(shè)置的能力。
[0039]本發(fā)明的實(shí)施例在應(yīng)用程序打包時(shí)進(jìn)行代碼的檢索和重寫。在已編譯的應(yīng)用程序打包過程中,一個(gè)代碼重寫工具包可以獲得應(yīng)用程序的所有代碼,檢索代碼中涉及網(wǎng)絡(luò)請求的那部分代碼,然后從一個(gè)軟件開發(fā)工具包(Software Development Kit, SDK)中獲得事先編寫好的替換代碼。使用替換代碼來替換所檢索到的那部分代碼,從而加入所期望的代理設(shè)置功能。
[0040]圖1是本發(fā)明一實(shí)施例中進(jìn)行代碼重寫的流程圖。為便于理解,在應(yīng)用程序打包的整個(gè)流程中描述本實(shí)施例的代碼重寫流程100。代碼重寫流程100會使用代碼重寫工具包和軟件開發(fā)工具包。較佳地,這兩個(gè)工具包可以由應(yīng)用程序開發(fā)者以外的第三方提供,以節(jié)省應(yīng)用程序開發(fā)者的開發(fā)精力。
[0041]參考圖1所示,流程如下:
[0042]在步驟101,開始進(jìn)行應(yīng)用程序打包。應(yīng)用程序打包可以在安卓的集成開發(fā)環(huán)境(Integrated Development Environment, IDE)中使用打包程序?qū)嵤?br>[0043]在步驟102,在IDE開始打包程序的時(shí)候,為打包程序設(shè)置Java代理(javaagent)參數(shù)。
[0044]打包程序會在啟動ProcessBuilder的時(shí)候,獲取所有的設(shè)置,從而獲取到j(luò)avaagent參數(shù)。通過設(shè)置javaagent參數(shù)可以讀取應(yīng)用程序的所有字節(jié)碼,而獲得應(yīng)用程序的字節(jié)碼文件,且javaagent參數(shù)會指定其文件存儲目標(biāo)為代碼重寫工具包。
[0045]步驟103, ProcessBuilder會把獲取到的javaagent參數(shù)經(jīng)過代碼重寫工具包等層層傳遞,最終傳遞到安卓開發(fā)平臺的dx程序。
[0046]dx程序是An droid應(yīng)用打包的最后一個(gè)步驟。在dx程序中,會將應(yīng)用程序的所有代碼(以class文件形式存在)傳遞到j(luò)avaagent參數(shù)中指定的代碼重寫工具包。
[0047]從步驟104-107為代碼重寫工具包將執(zhí)行代碼重寫的流程100。
[0048]在步驟104,代碼重寫工具包讀取應(yīng)用程序的字節(jié)碼文件,即由前述打包程序在導(dǎo)出應(yīng)用包時(shí)讀取到的應(yīng)用程序的字節(jié)碼文件。
[0049]代碼重寫工具包可以在dx程序的premain函數(shù)中獲取到class字節(jié)碼。
[0050]在步驟105,代碼重寫工具包檢索字節(jié)碼文件中與一個(gè)或多個(gè)網(wǎng)絡(luò)請求對應(yīng)的一個(gè)或多個(gè)第一字節(jié)碼。
[0051]具體地說,代碼重寫工具包可以遍歷字
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1