网络连接评分机制之NetworkFactory

这篇具有很好参考价值的文章主要介绍了网络连接评分机制之NetworkFactory。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在开机时,各个提供网络连接的对象需要向ConnectivityService注册自己,并把自己所提供的网络的分值告诉ConnectivityService。

        为了ConnectivityService便于统一管理,每一个具备提供网络服务的对象都需要创建一个NetworkFactory的子类对象,并利用该对象注册自己,以及提供自己的分值。

一、NetworkFactory介绍

        我们先来看一下该对象的属性:

        @NetworkFactory.java
        /**
         * A NetworkFactory is an entity that creates NetworkAgent objects.
         * The bearers register with ConnectivityService using {@link #register} and
         * their factory will start receiving scored NetworkRequests.  NetworkRequests
         * can be filtered 3 ways: by NetworkCapabilities, by score and more complexly by
         * overridden function.  All of these can be dynamic - changing NetworkCapabilities
         * or score forces re-evaluation of all current requests.
         * @hide
         **/
        public class NetworkFactory extends Handler {}

        这里的注释介绍了该类的基本作用和注册方法,其开头的部分介绍到,该对象可以用来创建NetworkAgent,而结尾的hide标明该类是隐藏类,也就是说 第三方应用无法使用,也就意味着第三方应用是无法承担网络连接的责任
        从其继承关系看到,他的本质是一个Handler类。
        然后我们来简单介绍一下该类提供的几个重要方法:

        //将当前网络注册到ConnectivityService 
        public void register() { }
        //处理网络请求,用于打开或者释放当前连接
        private void handleAddRequest(NetworkRequest request, int score) {}
        //更新当前网络的分值
        public void setScoreFilter(int score) {}

        以上三个是最重要的方法,在接下来的分析中将会多次看到他们的调用。还有几个比较特殊的方法:

        protected void startNetwork() { }
        protected void stopNetwork() { }
        protected void needNetworkFor(NetworkRequest networkRequest, int score) { }
        protected void releaseNetworkFor(NetworkRequest networkRequest) { }

        这些方法都是protected属性,他们的作用就是在评分后,决定当前网络被激活或者释放,因此 一般都会在子类中被覆盖

        属性和方法介绍到这里,下面介绍该对象的使用。

二、NetworkFactory在数据连接中的初始化过程

        我们从数据提供者DcTracker来看NetworkFactory的初始化以及使用方法。
        简单介绍一下DcTracker,他是数据网络的提供者,承担着APN参数选择、数据业务建立与释放等作用。
        在DcTracker初始化时将会初始化数据的NetworkFactory对象:文章来源地址https://www.toymoban.com/news/detail-709164.html

        @DcTracker.java
        public DcTracker(PhoneBase p) {
            ConnectivityManager cm = (ConnectivityManager)p.getContext().getSystemService( Context.CONNECTIVITY_SERVICE);
            mNetworkFilter = new NetworkCapabilities();
            mNetworkF

到了这里,关于网络连接评分机制之NetworkFactory的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • es elasticsearch 十四 各种机制 评分机制 正序索引 解决跳跃结果问题 解决耗时过长问题 解决相同属性值都到一个地方

    目录 评分机制 机制 查看评分实现如何算出来的explain=true 分析能否被搜索到 Doc value 正排序索引 Query phase Fetch phase Preference 问题 解决跳跃结果问题 Timeout 到达时间直接返回,解决耗时过长问题 Routing 数据准确分配到某地,解决相同属性值都到一个地方 评分机制 机制 TF分词频

    2024年02月08日
    浏览(77)
  • 使用网络adb连接android设备

    1.系统默认开启网络adb 1.1 打开cmd管理员,输入adb connect IP,例如:adb connect 192.168.4.39 1.2 返回connected to 192.168.4.39:5555 成功连接 ,可进行其它adb 指令操作,  如连接失败有些设备需要在设置中开启网络adb开关,一般是在开发者选项中。 1.3 断开adb连接 在cmd窗口中输入adb discon

    2024年02月15日
    浏览(43)
  • Android 获取网络连接状态新方法

            Android12上,有的app模块判断当前网络的类型和连接状态时,还是使用的旧的API,导致返回的结果不准确,影响代码逻辑判断,本篇文章就这一问题,整理一下判断网络类型和连接状态的新方法。         在Android 10以前的版本,大家都是通过NetworkInfo.java 的get

    2024年02月08日
    浏览(34)
  • 【计算机网络】深入理解TCP协议二(连接管理机制、WAIT_TIME、滑动窗口、流量控制、拥塞控制)

    正常情况下,TCP需要经过三次握手建立连接+四次挥手断开链接,下面看一个图: 服务器的状态变化: [CLOSED - LISTEN] 服务器端调用listen后进入LISTEN状态, 等待客户端连接; [LISTEN - SYN_RCVD] 一旦监听到连接请求(同步报文段), 就将该连接放入内核等待队列中, 并向客户端发送SYN确认

    2024年02月07日
    浏览(59)
  • Android 系统,连接Wifi后无法访问网络问题的解决方案

    Android 系统,连接Wifi后无法访问网络问题的解决方案 在使用Android手机或平板连接Wifi时,有时会遇到已成功连接上Wifi但无法访问网络的情况。这种问题可能是由于多种原因引起的,例如IP地址冲突、DNS设置错误、路由器故障等。本文将为大家提供一些常见的解决方案,并给出

    2024年02月05日
    浏览(52)
  • {Fixed} Android TV / Google TV国内开机不会自动连接WIFI / 连接国内网络不会更新时间

    引用: 悟空百科 使用usb adb、网络adb、串口敲以下命令修改安卓全局数据库 //如果你是Android R 以上的电视盒子 //Android Q 以下的电视盒子

    2024年02月19日
    浏览(39)
  • 2023年信息安全管理与评估(赛项)评分标准第三阶段夺旗挑战CTF(网络安全渗透)

    全国职业院校技能大赛 高职组 信息安全管理与评估 ( 赛项 ) 评分标准 第三阶段 夺旗挑战CTF(网络安全渗透) 本文件为信息安全管理与评估项目竞赛-第三阶段赛题,内容包括:夺旗挑战CTF(网络安全渗透)。 网络安全渗透的目标是作为一名网络安全专业人员在一个模拟

    2024年02月08日
    浏览(52)
  • Android studio 通过mysql连接数据库完成注册登录,登陆后通过tcp协议与电脑的网络调试助手互发信息

    先不多直接看软件截图 这个是首页等陆界面 xml代码如下 MainActivity文件    注册界面的xlm文件  这个界面比较简单就不介绍了   MainActivity文件 这是一个注册失败的界面,如果数据库内有相同的账号密码则显示注册失败 话不多说直接上代码 MainActivity里面的代码 这里是user类用

    2024年02月02日
    浏览(48)
  • 【LINUX协议栈】netfilter之连接跟踪机制

    连接跟踪,顾名思义,就是跟踪(并记录)连接的状态。一般conntrack用来指代“Connection Tracking”,即连接跟踪,是建立在 Netfilter框架之上的重要功能之一。 因为它是状态防火墙和NAT的实现基础。 用于实现连接跟踪入口的hook函数以较高的优先级分别被注册到了netfitler的NF_I

    2024年02月11日
    浏览(32)
  • 浅析Android OTA机制

    OTA 全称 Over-the-Air Technology,这种在线升级,无需刷机升级的方式,叫做OTA升级,OTA升级可以借助Wifi无线网络或者手机移动网络完成升级,相当于借助空中无线网络完成升级; 项目中需要OTA的功能,因此有了此文,参考下Android的OTA实现机制,可以看到Android的OTA机制随着版本

    2024年01月25日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包