CN105306550A - 一种基于安卓平台的设置代理服务器联网的方法 - Google Patents
一种基于安卓平台的设置代理服务器联网的方法 Download PDFInfo
- Publication number
- CN105306550A CN105306550A CN201510630660.2A CN201510630660A CN105306550A CN 105306550 A CN105306550 A CN 105306550A CN 201510630660 A CN201510630660 A CN 201510630660A CN 105306550 A CN105306550 A CN 105306550A
- Authority
- CN
- China
- Prior art keywords
- agent
- agency
- proxy
- proxy server
- arranging
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开的一种基于安卓平台的设置代理服务器联网的方法,可以单独应用于具体的APP(比如浏览器)本身或增加设置代理的API,还包括具体UI界面的设置,使具体APP具有设置代理的功能,将APP本身通过的代理与系统代理分离开来,给予用户更多的选择,操作更加人性化,大大提高了用户体验。
Description
技术领域
本发明属移动终端联网技术领域,特别是一种基于安卓平台的设置代理服务器联网的方法。
背景技术
Android(安卓)是由Google公司和开放手机联盟(OHA)领导开发的,一种基于Linux平台的开源手机操作系统。Android平台架构从底到高主要由Linux内核层、系统运行库层、应用程序框架层以及应用层组成。其中最底层的Linux内核层主要包括以C语言开发的Linux2.6内核和与移动设备相关的驱动程序,而系统运行库层主要包括一些c/c++库以及Android运行库。应用程序框架层(Androidframework)可以看作是Android对外提供的平台api,方便应用程序开发者开发Android平台的应用程序,最上层的应用层就是基于Androidframework开发的各种应用软件(APP)。
在这些众多的APP中,有很多APP需要显示网页,为此Android提供了一个特殊的系统控件webview,通过在自身APP中嵌入webview控件就可以达到显示网页的目的,而浏览器这个APP本身就是通过webview控件专门提供网页浏览的应用程序。
AndroidWebView从最初到现在的5.X大致经过了以下三个阶段的演变过程:
第一阶段从android开始发布到android4.0,在这个阶段androidwebview的底层实现采用的是开源的webkit内核。
第二阶段从Android4.1至4.3,这个阶段其底层实现依旧是采用开源的webkit内核,但是在webview的Framework层已经引入了工厂模式,将内核与上层API接口分离开来,一方面是为了抽象接口,更是为了在后续的版本中将webkit内核替换为chromium内核做准备。
第三阶段从android4.4往后,这个阶段在保持WebView的API兼容性的前提下,其底层实现已经成功的从缺省WebKit内核切换到Chromium的内核。
Chromium是Google的一个开源的浏览器项目,其设计思想基于简单、高速、稳定、安全等理念,在架构上使用了基于KDE开源项目KHTML的Webkit渲染引擎(自28版起改为由WebKit所分支的Blink排版引擎),并采用Google独家开发出的V8引擎以提升解译JavaScript的效率,而且设计了“沙盒”、“黑名单”、“无痕浏览”等功能来实现稳定与安全的网页浏览环境。
在目前的android系统中,用户只能设置系统代理,而且一旦设置了系统代理,所有的基于webview控件的应用,包括系统浏览器本身就默认通过系统代理联网了。在计算机浏览器上大多都提供了设置浏览器代理的功能,但是在android系统中除了设置系统代理,当前的浏览器本身没有提供一个设置浏览器本身代理的途径,一旦设置了系统代理,包括浏览器在内的所有APP必须通过系统代理联网,无法实现不同APP的不同代理需求。
发明内容
本发明要解决的问题是提供一种基于安卓平台的设置代理服务器联网的方法,该方法可以实现android系统中的APP本身的代理与系统代理隔离起来,特别是浏览器代理的相对独立性,满足不同APP的联网要求。
本发明公开的基于安卓平台的设置代理服务器联网的方法,包括以下步骤:
11)扩展androidwebviewframework,为webview新增一个设置代理的API;
12)在APP中添加基于PreferenceActivity框架的设置代理UI界面,所述UI界面具有“不使用代理”、“使用系统代理”和“手动设置代理”模块,以及设置代理IP和端口号的模块。
也可以在不增加设置代理的API的情况下,实现本发明的基于安卓平台的设置代理服务器联网的方法,此种状况下该方法包括以下步骤:
21)更改APP系统库,让其不再接受系统代理发出的广播,达到浏览器代理独立于系统代理,不受系统代理影响的目的。所述更改APP系统库包括更改chromiumnet库java层代码,通过动态注册广播接收器ProxyReceiver,该广播接收器默认接收系统网络代理发送改变后所发出的广播Proxy.PROXY_CHANGE_ACTION;ProxyReceiver的onReceive中接收到自定义广播后,从intent中解析出用户代理数据,通过JNI调用网络库Native方法,将代理数据进一步设置到网络库Native层,从而达到设置代理的目的;如果用户选择的是使用系统代理,则从数据库中读取用户设置的系统代理,同样通过上述自定义广播,携带代理数据,最终发送到网络库底层。
22)在APP中添加基于PreferenceActivity框架的设置代理UI界面,所述UI界面具有“不使用代理”、“使用系统代理”和“手动设置代理”模块,以及设置代理IP和端口号的模块,UI界面的设置项的信息最终通过SharePreference以key-value的方式保存到和浏览器相关的本地文件中;
步骤21)和22)的顺序可以调换。
所述APP优选浏览器。
本发明的基于安卓平台的设置代理服务器联网的方法,可以单独应用于具体的APP(比如浏览器)本身或增加设置代理的API,使具体APP具有设置代理的功能,将APP本身通过的代理与系统代理分离开来,给予用户更多的选择,操作更加人性化,大大提高了用户体验。
附图说明
图1是本发明设置代理的UI的截图。
具体实施方式
下面结合附图,对本发明提出的一种基于安卓平台的设置代理服务器联网的方法进行详细说明。
以浏览器为例,本发明公开的一种基于安卓平台的设置代理服务器联网的方法包括以下步骤:
11)扩展androidwebviewframework,为webview新增一个设置代理的API;
12)在浏览器中添加基于PreferenceActivity框架的设置代理UI界面,如图1所示,所述UI界面具有“不使用代理”、“使用系统代理”和“手动设置代理”模块,以及设置代理IP和端口号的模块。
也可以在不增加设置代理的API的情况下,实现本发明的基于安卓平台的设置代理服务器联网的方法,此种状况下该方法包括以下步骤:
21)更改浏览器系统库,让其不再接受系统代理发出的广播,达到浏览器代理独立于系统代理,不受系统代理影响的目的。更改chromiumnet库java层代码,通过动态注册广播接收器ProxyReceiver,该广播接收器默认会接收系统网络代理发送改变后所发出的广播Proxy.PROXY_CHANGE_ACTION,更改广播接收器后,其不再接收系统网络代理发生改变的广播,而是让其接收用户在UI界面手动设置代理时所发出的自定义广播android.intent.action.MY_PROXY_CHANGE,然后在ProxyReceiver的onReceive中接收到自定义广播后,从intent中解析出用户代理数据,通过JNI调用网络库Native方法,将代理数据进一步设置到网络库Native层,从而达到设置代理的目的,也达到了独立于系统代理的目的。如果用户选择的是使用系统代理,则从数据库中读取用户设置的系统代理,同样通过上述自定义广播,携带代理数据,最终发送到网络库底层。
22)在浏览器中添加基于PreferenceActivity框架的设置代理UI界面,所述UI界面具有“不使用代理”、“使用系统代理”和“手动设置代理”模块,以及设置代理IP和端口号的模块,UI界面的设置项的信息最终通过SharePreference以key-value的方式保存到和浏览器相关的本地文件中;
最后完成UI界面相关事件的处理工作。处理工作包括:处理NetProxyPreferencesFragment::onPreferenceChange,DialogPreference::onDialogClosed等回调函数,在回调函数中,主要就是将用户设置的网络代理数据设置到intent中,然后通过一个自定义广播携带该intent发送到网络库java层的BroadcastReceiver中,然后在网路库java层又进一步将网络代理数据设置到底层的Native层网络库,从而打通了从用户界面到Native层网络库的通道。
其他APP也可以实现上述设置。
如果用户选择不使用代理,禁用UI界面的相关设置项,发送一个广播A出去,携带不使用代理的相关信息,然后网络库动态注册接受这个广播A,并从广播A中解析出相关信息,然后将不使用代理的信息设置给网络库。
如果用户选择的是使用系统代理,禁用UI界面的相关设置项,由于系统代理设置的信息是以ContentProvider的方式与其它应用程序共享,所以这里我们可以通过ContentResolver的方式获取到系统代理信息,在获取到系统代理信息后,同样携带系统代理信息,以广播的方式发送出去,网络库在接受到广播后,从中解析出系统代理的相关信息,设置给自身。如果用户没有设置系统代理,则浏览器本身也不通过代理联网。
如果用户选择的是手动设置代理,则要求用户进一步手动设置详细的代理信息,最后在得到用户最终确认后,以广播的方式将用户手动设置的代理信息发送给网络库,网络库解析出代理信息后,设置给底层网络库。
通过上面的具体实施方式的描述,本发明的内容已经非常详细,本领域的技术人员都能根据所述内容重现所述方法。当然,本领域的技术人员可以在不脱离本发明的思想和方法范围内,对本发明进行各种改动和变型。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (4)
1.一种基于安卓平台的设置代理服务器联网的方法,其特征在于,包括以下步骤:
11)扩展androidwebviewframework,为webview新增一个设置代理的API;
12)在APP中添加基于PreferenceActivity框架的设置代理UI界面,所述UI界面具有“不使用代理”、“使用系统代理”和“手动设置代理”模块,以及设置代理IP和端口号的模块,UI界面的设置项的信息最终通过SharePreference以key-value的方式保存到和浏览器相关的本地文件中。
2.根据权利要求1所述的基于安卓平台的设置代理服务器联网的方法,其特征在于,包括以下步骤:
将所述步骤11)替换为21)更改APP系统库,让其不再接受系统代理发出的广播。
3.根据权利要求1或2所述的基于安卓平台的设置代理服务器联网的方法,其特征在于,所述APP是浏览器。
4.根据权利要求3所述的基于安卓平台的设置代理服务器联网的方法,其特征在于,所述更改APP系统库包括更改chromiumnet库java层代码,通过动态注册广播接收器ProxyReceiver,该广播接收器默认接收系统网络代理发送改变后所发出的广播Proxy.PROXY_CHANGE_ACTION;ProxyReceiver的onReceive中接收到自定义广播后,从intent中解析出用户代理数据,通过JNI调用网络库Native方法,将代理数据进一步设置到网络库Native层,从而达到设置代理的目的;如果用户选择的是使用系统代理,则从数据库中读取用户设置的系统代理,同样通过上述自定义广播,携带代理数据,最终发送到网络库底层。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510630660.2A CN105306550A (zh) | 2015-09-29 | 2015-09-29 | 一种基于安卓平台的设置代理服务器联网的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510630660.2A CN105306550A (zh) | 2015-09-29 | 2015-09-29 | 一种基于安卓平台的设置代理服务器联网的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105306550A true CN105306550A (zh) | 2016-02-03 |
Family
ID=55203293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510630660.2A Pending CN105306550A (zh) | 2015-09-29 | 2015-09-29 | 一种基于安卓平台的设置代理服务器联网的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105306550A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101931635A (zh) * | 2009-06-18 | 2010-12-29 | 北京搜狗科技发展有限公司 | 网络资源访问方法及代理装置 |
CN103607454A (zh) * | 2013-11-20 | 2014-02-26 | Tcl通讯(宁波)有限公司 | Android系统浏览器设置私有代理服务器的方法 |
CN103944906A (zh) * | 2014-04-25 | 2014-07-23 | 厦门享游网络科技有限公司 | 一种iOS上针对APP的HTTP流量引导的方法 |
CN103995787A (zh) * | 2014-05-15 | 2014-08-20 | Tcl集团股份有限公司 | 一种摄像头应用的调控方法及装置 |
-
2015
- 2015-09-29 CN CN201510630660.2A patent/CN105306550A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101931635A (zh) * | 2009-06-18 | 2010-12-29 | 北京搜狗科技发展有限公司 | 网络资源访问方法及代理装置 |
CN103607454A (zh) * | 2013-11-20 | 2014-02-26 | Tcl通讯(宁波)有限公司 | Android系统浏览器设置私有代理服务器的方法 |
CN103944906A (zh) * | 2014-04-25 | 2014-07-23 | 厦门享游网络科技有限公司 | 一种iOS上针对APP的HTTP流量引导的方法 |
CN103995787A (zh) * | 2014-05-15 | 2014-08-20 | Tcl集团股份有限公司 | 一种摄像头应用的调控方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10516722B2 (en) | Mobile application system | |
US8554190B2 (en) | Mobile application system | |
EP2771803B1 (en) | File fetch from a remote client device | |
US9363622B1 (en) | Separation of client identification composition from customization payload to original equipment manufacturer layer | |
US20140195663A1 (en) | Method and System for Providing Cloud-Based Common Distribution Applications | |
EP2972822B1 (en) | System and method to enable web property access to a native application | |
JP2019506654A (ja) | ページジャンプの方法及び装置 | |
US20150378714A1 (en) | Providing Context-Specific Software Updates to Client Applications | |
CN104111944A (zh) | 页面处理方法和装置以及页面生成方法和装置 | |
US9246983B2 (en) | Method and apparatus for widget compatibility and transfer | |
CN106686200B (zh) | 移动应用程序更新方法、移动终端及更新系统 | |
US20140282032A1 (en) | Dynamically configuring user experiences with action uniform resource identifiers | |
CN102855148A (zh) | 一种基于Android的开机管理方法 | |
CN105763626A (zh) | 适用于应用客户端支付的sdk初始化方法 | |
US9462459B2 (en) | Mobile device configuration system and method | |
WO2017058684A1 (en) | Automatic multi-platform mobile application development | |
US10078532B2 (en) | Resource management method and device for terminal system among multiple operating systems | |
US9875092B2 (en) | Viral distribution of mobile application software | |
US9164817B2 (en) | Mobile communication terminal to provide widget expansion function using message communication, and operation method of the mobile communication terminal | |
US9900756B2 (en) | Dynamically updating policy controls for mobile devices and applications via policy notifications | |
CN103440145A (zh) | 一种应用程序更新方法、装置及移动终端 | |
CN103793459B (zh) | 一种网页打开方法及装置 | |
US20180300122A1 (en) | Data processing method and system, and server | |
WO2018121652A1 (zh) | 通过用户设备中的应用连接无线接入点的方法与设备 | |
CN105306550A (zh) | 一种基于安卓平台的设置代理服务器联网的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160203 |
|
RJ01 | Rejection of invention patent application after publication |