一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种无侵入监听应用网络流量使用的实现方法与流程

2022-05-21 05:53:57 来源:中国专利 TAG:


1.本发明涉及流量监听领域,尤其涉及一种无侵入监听应用网络流量使用的实现方法。


背景技术:

2.众所周知,移动端用户对流量使用非常敏感,因此市面上提供了应用流量使用限制开关,但ios又无法像安卓一样便捷的监听本应用使用的多少了流量。当遇到需统计用户在本应用使用了多少数据流量,一般的做法是统计下载资源的大小然后算出总和,但此法方法忽略接口请求耗费的流量,存在着一定的误差。还有的做法是开启监听设备流量统计,但这种做法统计的设备当前使用的流量,并不是本应用使用的流量,所以更是存在着极大的统计误差。并且统计应用流量使用,不应该影响改动到业务层。


技术实现要素:

3.(一)要解决的技术问题
4.为了解决现有技术的上述问题,本发明提供一种无侵入监听应用网络流量使用的实现方法,能够快速接入并准确地统计应用的流量使用情况。
5.(二)技术方案
6.词语解释:
7.hook:hook是一种实现拦截底层方法并添加自定义实现的技术。
8.nsurlsession:nsurlsession为ios系统底层网络框架用于请求网络的类族,包括下载和上传的相关接口。
9.nsurlprotocol是苹果为我们提供的底层网络加载系统的一部分,能够重新定义ios系统网络加载的行为。
10.为了达到上述目的,本发明采用的技术方案为:一种无侵入监听应用网络流量使用的实现方法,包括:
11.在应用中导入自定义sdk并初始化所述自定义sdk,以监听应用的流量使用情况,所述自定义sdk具体实现流程如下:
12.s1、注册重写nsurlprotocol方法监听并拦截上下行数据接口的请求信息,所述上下行数据接口的请求信息包括request请求信息和response请求信息,计算所述上下行数据接口的请求信息消耗的流量大小;
13.hook nsurlsession中的downloadtask方法以hook网络库中的下载接口的请求信息和返回信息,计算所述下载接口的请求信息和返回信息消耗的流量大小;
14.hook nsurlsession中的uploadtask方法以hook网络库中的上传接口的请求信息和返回信息,计算所述上传接口的请求信息和返回信息消耗的流量大小;
15.s2、统计s1中共消耗的流量大小,并将统计结果保存至本地数据库。
16.(三)有益效果
17.本发明的有益效果是:通过注册重写nsurlprotocol方法监听并拦截上下行数据接口的请求信息,通过hook nsurlsession中的downloadtask方法和uploadtask方法,来hook网络库中的上传资源和下载资源消耗的流量大小,且通过sdk的方式接入应用,满足无侵入无感知接入统计,业务方无需改动,便可快速接入并且准确的统计流量使用情况。
附图说明
18.图1为本发明的一种无侵入监听应用网络流量使用的实现方法的流程图。
具体实施方式
19.为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
20.请参照图1所示,一种无侵入监听应用网络流量使用的实现方法,包括:
21.在应用中导入自定义sdk并初始化所述自定义sdk,以监听应用的流量使用情况,所述自定义sdk具体实现流程如下:
22.s1、注册重写nsurlprotocol方法监听并拦截上下行数据接口的请求信息,所述上下行数据接口的请求信息包括request请求信息和response请求信息,即包括request请求的http.header和body数据加上response的http.header和body数据,计算所述上下行数据接口的请求信息消耗的流量大小;
23.hook nsurlsession中的downloadtask方法以hook网络库中的下载接口的请求信息和返回信息,计算所述下载接口的请求信息和返回信息消耗的流量大小;
24.hook nsurlsession中的uploadtask方法以hook网络库中的上传接口的请求信息和返回信息,计算所述上传接口的请求信息和返回信息消耗的流量大小;
25.s2、统计s1中共消耗的流量大小,并将统计结果保存至本地数据库。
26.从上述描述可知,本发明的有益效果在于:通过注册重写nsurlprotocol方法监听并拦截上下行数据接口的请求信息,通过hook nsurlsession中的downloadtask方法和uploadtask方法,来hook网络库中的上传资源和下载资源消耗的流量大小,且通过sdk的方式接入应用,满足无侵入无感知接入统计,业务方无需改动,便可快速接入并且准确的统计流量使用情况。
27.进一步地,所述s1之后还包括:
28.s11、判断当前的网络环境为wifi环境还是移动数据网络环境并根据判断结果将s1中消耗的流量大小进行分类;
29.所述s2包括:统计s1中共消耗的流量大小和流量类别并将统计结果保存至本地数据库。
30.从上述描述可知,还可统计消耗流量类别,便于用户进一步了解应用流量消耗的具体情况。
31.进一步地,所述s2包括:
32.判断当前时间是否为当天,若是,则统计s1中共消耗的流量大小为当天流量数据,并将统计结果保存至本地数据库;
33.若否,则统计s1中共消耗的流量大小为新的一天的流量数据,并将统计结果保存
至本地数据库。
34.从上述描述可知,可将流量信息分时间来统计,便于用户进一步了解应用流量消耗的具体情况。
35.实施例一
36.请参照图1所示,一种无侵入监听应用网络流量使用的实现方法,包括:
37.在应用中导入自定义sdk,并在cocoapod组件选中相应组件进行导入,例如导入networkmonitor监听组件即可实现监听功能,并初始化所述自定义sdk,以监听应用的流量使用情况,所述自定义sdk具体实现流程如下:
38.s1、注册重写nsurlprotocol方法监听并拦截上下行数据接口的请求信息,所述上下行数据接口的请求信息包括request请求信息和response请求信息,计算所述上下行数据接口的请求信息消耗的流量大小;
39.hook nsurlsession中的downloadtask方法以hook网络库中的下载接口的请求信息和返回信息,计算所述下载接口的请求信息和返回信息消耗的流量大小;
40.hook nsurlsession中的uploadtask方法以hook网络库中的上传接口的请求信息和返回信息,计算所述上传接口的请求信息和返回信息消耗的流量大小;
41.s2、统计s1中共消耗的流量大小,并将统计结果保存至本地数据库。
42.其中,所述s1之后还包括:
43.s11、判断当前的网络环境为wifi环境还是移动数据网络环境并根据判断结果将s1中消耗的流量大小进行分类;
44.所述s2包括:统计s1中共消耗的流量大小和流量类别并将统计结果保存至本地数据库。
45.其中,所述s2包括:
46.判断当前时间是否为当天,若是,则统计s1中共消耗的流量大小为当天流量数据,并将统计结果保存至本地数据库;
47.若否,则统计s1中共消耗的流量大小为新的一天的流量数据,并将统计结果保存至本地数据库。
48.综上所述,本发明提供的一种无侵入监听应用网络流量使用的实现方法,通过注册重写nsurlprotocol方法监听并拦截上下行数据接口的请求信息,通过hook nsurlsession中的downloadtask方法和uploadtask方法,来hook网络库中的上传资源和下载资源消耗的流量大小,且通过sdk的方式接入应用,满足无侵入无感知接入统计,业务方无需改动,便可快速接入并且准确的统计流量使用情况。
49.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献