基于安卓系统的多网络并用方法和系统的制作方法

文档序号:9601017阅读:591来源:国知局
基于安卓系统的多网络并用方法和系统的制作方法
【技术领域】
[0001]本发明涉及智能终端设备领域,特别是涉及一种基于安卓系统的多网络并用方法和系统。
【背景技术】
[0002]市面上的安卓系统智能手机或平板电脑,通常使用wifi上网或移动数据(包括3G、4G、GPRS)连接的方式,wifi和移动数据连接只能二选其一,并且wifi连接的默认优先级更高,即在同时打开移动数据业务和wifi功能的情况下,安卓系统会判断识别并默认优先使用wifi上网,而无法使这两条数据链路同时存在并同时使用,这样造成的结果是无法实现某些安卓层应用(如网页浏览器)使用wifi连接上网而某些其他应用同时使用移动数据流量业务上网。
[0003]基于点对点协议(Point to Point Protoco,PPP)的拨号接入是当前允许ISP (Internet Service Provider,即因特网服务提供商)提供的网络接入方式,对于ADSL等宽带拨号,接入服务主要由PPPoE(PPP over Ethernet)完成。PPPoE协议是一个将PPP帧封装在以太网帧里的协议。PPP协议是为通过电话线连接计算机和服务器彼此通信而制定的点对点的通信协议。网络服务提供商可以提供PPP连接,这样提供商的服务器就可以响应用户的请求,将用户请求接收并发送到网络上,然后将网络上的响应送回。
[0004]根据安卓系统的分层,要实现移动数据流量业务,需要通过PPPoE拨号上网,从应用层(Applicat1ns)的APP软件开始,向下需经过框架层(Framework),Linux内核层(Kernel),硬件基带(Baseband),而ΡΡΡ0Ε处于Linux层,需要由框架层于内核之间的RIL用户抽象空间根据一些策略进行ΡΡΡ0Ε调用。
[0005]Android 的无线接口层(RIL)提供了 Android 电话服务(android, telephony)与无线电硬件之间的抽象层。RIL是通讯无关的,提供基于GSM的网络支持。
[0006]Android通常的拨号上网流程是经过Android电话服务通过RIL层向硬件通讯模块发送相关Request请求,首先从Java层通过Socket将命令发送到RIL层的RILD守护进程做相应处理,进程再向下调用硬件通讯模块的驱动程序(如AT命令)与硬件进行互通,硬件对命令响应,RIL获取这个Response响应,实现数据交互,最终调用ΡΡΡ0Ε拨号上网脚本实现PPP连接服务。
[0007]Wifi的开启关闭首先由应用程序触发的事件开始(比如用户点击开启图标),然后传入框架层,框架层启动wpa_supplicant,同时建立socket连接与wpa_supplicant进行通信,包括对wpa_supplicant的控制与得到wpa_supplicant的回传结果。然而,由于wifi的WLAN0连接也处于Linux层,安卓框架层有优先级判断机制,如果wifi连接WLAN0 —旦建立,框架层会中断pppO连接而保持WLAN0连接,无法同时实现WLAN0和pppO链接同时存在,这样做的目的是防止用户在使用wifi上网的同时还消耗了移动网数据流量。
[0008]要解决Linux层的WLAN0和pppO链接同时存在且安卓应用层app软件能自由分配不同的数据流从哪个链路走,通常的做法需要修改安卓框架层ril接口代码,在框架层识别到Linux层同时建立起WLANO和pppO链接的时候,不要默认将pppO切断,并调用java外部命令设置路由表。由于安卓框架层代码结构设计严密,修改难度较大,且修改后无法保持原生态安卓系统层的稳定性,属于订制型系统,通常不便修改。

【发明内容】

[0009]基于此,有必要的提供一种简单且实现多网络并用的基于安卓系统的多网络并用方法和系统。
[0010]基于安卓系统的多网络并用方法,包括:
[0011]预先屏蔽安卓系统原生的位于RIL层的移动数据网络拨号驱动;
[0012]在安卓系统启动时运行Netlisten脚本以监控用户空间的Flag标志文件的值;
[0013]根据第一指令,打开移动数据网络连接的开关,并将所述用户空间的Flag标志文件的值修改为启动值;
[0014]当所述Netlisten脚本监控到所述Flag标志文件的值为启动值时,运行预先安装在Linux层的移动网络拨号程序以获取当前网络的IP地址;
[0015]将所述当前网络的IP地址添加到PPPoE数据连接的路由表中;
[0016]根据所述路由表在应用层建立Socket套接字以进行移动网络连接。
[0017]在其中一种实施方式中,所述在安卓系统启动时运行Netlisten脚本以监控用户空间的Flag标志文件的值的步骤包括:
[0018]在安卓系统启动时运行Netlisten脚本以检测用户空间是否有Flag标志文件;
[0019]若无,则创建Flag标志文件,将所述Flag标志文件的值设置为关闭值并实时监控Flag标志文件的值;
[0020]若有,则实时监控用户空间的Flag标志文件的值。
[0021]在其中一种实施方式中,所述运行预先安装Linux的移动网络拨号程序以获取当前网络的IP地址的步骤包括:
[0022]运行预先安装在Linux层的移动网络拨号程序查询硬件通讯模块以获取硬件的状态;
[0023]当获取的硬件状态为正常时,拨号获取当前网络的IP地址。
[0024]在其中一种实施方式中,还包括:根据第二指令,关闭移动数据网络连接的开关,并将所述用户空间的Flag标志文件的值修改为关闭值;
[0025]当所述Netlisten脚本监控到所述Flag标志文件的值为关闭值时,终止所述移动网络拨号进程。
[0026]在其中一种实施方式中,在所述根据第一指令,打开移动数据网络连接的开关,并将所述用户空间的Flag标志文件的值修改为启动值的步骤之前或之后,还包括:
[0027]根据第三指令,打开WIFI网络连接的开关;和/或,根据第四指令,打开以太网连接的开关;
[0028]在框架层启动无线网络连接程序并建立Socket套接字以进行WLAN0网络连接,和/或在框架层启动以太网连接程序并建立Socket套接字以进行以太网连接。
[0029]基于安卓系统的多网络并用系统,包括:
[0030]屏蔽模块,用于预先屏蔽安卓系统原生的位于RIL层的移动数据网络拨号驱动;
[0031]Netlisten脚本,用于在安卓系统启动时运行以监控用户空间的Flag标志文件的值;
[0032]第一启动模块,用于根据第一指令,打开移动数据网络连接的开关,并将所述用户空间的Flag标志文件的值修改为启动值;
[0033]移动网络拨号程序,预先安装在Linux层,用于在所述Netlisten脚本监控到所述Flag标志文件的值为启动值时运行以获取当前网络的IP地址;
[0034]路由表,用于将所述当前网络的IP地址添加到PPPoE数据连接的路由表中;
[0035]第一通信模块,用于根据所述路由表在应用层建立Socket套接字以进行移动网络连接。
[0036]在其中一种实施方式中,所述Netlisten脚本具体用于,在安卓系统启动时运行Netlisten脚本以检测用户空间是否有Flag标志文件;若无,则创建Flag标志文件,将所述Flag标志文件的值设置为关闭值并实时监控
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1