android13(T) 网络比分机制

2023-11-21 10:44
文章标签 网络 机制 android13 比分

本文主要是介绍android13(T) 网络比分机制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网络比分核心类

packages\modules\Connectivity\framework\src\android\net\NetworkScore.java
packages\modules\Connectivity\framework\src\android\net\NetworkAgent.java
packages\modules\Connectivity\service\src\com\android\server\ConnectivityService.java

1、WIFI 默认分数 60

packages\modules\Wifi\service\java\com\android\server\wifi\WifiScoreReport.java

// Cache of the last score
private int mLegacyIntScore = ConnectedScore.WIFI_INITIAL_SCORE;//60private NetworkScore.Builder getScoreBuilder() {// We should force keep connected for a MBB CMM which is not lingering.boolean shouldForceKeepConnected =mCurrentRole == ActiveModeManager.ROLE_CLIENT_SECONDARY_TRANSIENT&& !mShouldReduceNetworkScore;int keepConnectedReason =shouldForceKeepConnected? NetworkScore.KEEP_CONNECTED_FOR_HANDOVER: NetworkScore.KEEP_CONNECTED_NONE;boolean exiting = SdkLevel.isAtLeastS() && mWifiConnectedNetworkScorerHolder != null? !mIsUsable : mLegacyIntScore < ConnectedScore.WIFI_TRANSITION_SCORE;return new NetworkScore.Builder().setLegacyInt(mShouldReduceNetworkScore ? LINGERING_SCORE : mLegacyIntScore).setTransportPrimary(mCurrentRole == ActiveModeManager.ROLE_CLIENT_PRIMARY).setExiting(exiting).setKeepConnectedReason(keepConnectedReason);}

packages\modules\Wifi\service\java\com\android\server\wifi\ConnectedScore.java

 /** Maximum NetworkAgent score that should be generated by wifi */public static final int WIFI_MAX_SCORE = 60;/** Initial Wifi score when starting up NetworkAgent. */public static final int WIFI_INITIAL_SCORE = WIFI_MAX_SCORE;

2、4G 默认分数 50

frameworks\opt\telephony\src\java\com\android\internal\telephony\data\TelephonyNetworkFactory.java


private static final int TELEPHONY_NETWORK_SCORE = 50;public TelephonyNetworkFactory(Looper looper, Phone phone, PhoneSwitcher phoneSwitcher) {super(looper, phone.getContext(), "TelephonyNetworkFactory[" + phone.getPhoneId()+ "]", null);mPhone = phone;mInternalHandler = new InternalHandler(looper);mSubscriptionController = SubscriptionController.getInstance();mAccessNetworksManager = mPhone.getAccessNetworksManager();setCapabilityFilter(makeNetworkFilter(mSubscriptionController, mPhone.getPhoneId()));setScoreFilter(TELEPHONY_NETWORK_SCORE);mPhoneSwitcher = phoneSwitcher;.......// apply or revoke requests if our active-ness changesprivate void onActivePhoneSwitch() {logl("onActivePhoneSwitch");if (mSubscriptionId == mSubscriptionController.getActiveDataSubscriptionId()) {logl("onActivePhoneSwitch: set primary flag for phoneId: " + mPhone.getPhoneId());setScoreFilter(new NetworkScore.Builder().setLegacyInt(TELEPHONY_NETWORK_SCORE).setTransportPrimary(true).build());} else {setScoreFilter(new NetworkScore.Builder().setLegacyInt(TELEPHONY_NETWORK_SCORE).setTransportPrimary(false).build());}

3、以太网 默认分数 Integer.MIN_VALUE

packages\modules\Connectivity\service-t\src\com\android\server\ethernet\EthernetNetworkFactory.java

 private static NetworkScore getBestNetworkScore() {return new NetworkScore.Builder().build();}private void setCapabilities(@NonNull final NetworkCapabilities capabilities) {mCapabilities = new NetworkCapabilities(capabilities);mLegacyType = getLegacyType(mCapabilities);if (mLinkUp) {// registering a new network offer will update the existing one, not install a// new one.mNetworkProvider.registerNetworkOffer(getBestNetworkScore(),new NetworkCapabilities(capabilities), cmd -> mHandler.post(cmd),mNetworkOfferCallback);}}

这篇关于android13(T) 网络比分机制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/401843

相关文章

SpringRetry重试机制之@Retryable注解与重试策略详解

《SpringRetry重试机制之@Retryable注解与重试策略详解》本文将详细介绍SpringRetry的重试机制,特别是@Retryable注解的使用及各种重试策略的配置,帮助开发者构建更加健... 目录引言一、SpringRetry基础知识二、启用SpringRetry三、@Retryable注解

SpringKafka错误处理(重试机制与死信队列)

《SpringKafka错误处理(重试机制与死信队列)》SpringKafka提供了全面的错误处理机制,通过灵活的重试策略和死信队列处理,下面就来介绍一下,具有一定的参考价值,感兴趣的可以了解一下... 目录引言一、Spring Kafka错误处理基础二、配置重试机制三、死信队列实现四、特定异常的处理策略五

Linux系统配置NAT网络模式的详细步骤(附图文)

《Linux系统配置NAT网络模式的详细步骤(附图文)》本文详细指导如何在VMware环境下配置NAT网络模式,包括设置主机和虚拟机的IP地址、网关,以及针对Linux和Windows系统的具体步骤,... 目录一、配置NAT网络模式二、设置虚拟机交换机网关2.1 打开虚拟机2.2 管理员授权2.3 设置子

揭秘Python Socket网络编程的7种硬核用法

《揭秘PythonSocket网络编程的7种硬核用法》Socket不仅能做聊天室,还能干一大堆硬核操作,这篇文章就带大家看看Python网络编程的7种超实用玩法,感兴趣的小伙伴可以跟随小编一起... 目录1.端口扫描器:探测开放端口2.简易 HTTP 服务器:10 秒搭个网页3.局域网游戏:多人联机对战4.

java中反射(Reflection)机制举例详解

《java中反射(Reflection)机制举例详解》Java中的反射机制是指Java程序在运行期间可以获取到一个对象的全部信息,:本文主要介绍java中反射(Reflection)机制的相关资料... 目录一、什么是反射?二、反射的用途三、获取Class对象四、Class类型的对象使用场景1五、Class

SpringBoot使用OkHttp完成高效网络请求详解

《SpringBoot使用OkHttp完成高效网络请求详解》OkHttp是一个高效的HTTP客户端,支持同步和异步请求,且具备自动处理cookie、缓存和连接池等高级功能,下面我们来看看SpringB... 目录一、OkHttp 简介二、在 Spring Boot 中集成 OkHttp三、封装 OkHttp

Linux系统之主机网络配置方式

《Linux系统之主机网络配置方式》:本文主要介绍Linux系统之主机网络配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、查看主机的网络参数1、查看主机名2、查看IP地址3、查看网关4、查看DNS二、配置网卡1、修改网卡配置文件2、nmcli工具【通用

使用Python高效获取网络数据的操作指南

《使用Python高效获取网络数据的操作指南》网络爬虫是一种自动化程序,用于访问和提取网站上的数据,Python是进行网络爬虫开发的理想语言,拥有丰富的库和工具,使得编写和维护爬虫变得简单高效,本文将... 目录网络爬虫的基本概念常用库介绍安装库Requests和BeautifulSoup爬虫开发发送请求解

Nginx之upstream被动式重试机制的实现

《Nginx之upstream被动式重试机制的实现》本文主要介绍了Nginx之upstream被动式重试机制的实现,可以通过proxy_next_upstream来自定义配置,具有一定的参考价值,感兴... 目录默认错误选择定义错误指令配置proxy_next_upstreamproxy_next_upst

如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解

《如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别详解》:本文主要介绍如何通过海康威视设备网络SDK进行Java二次开发摄像头车牌识别的相关资料,描述了如何使用海康威视设备网络SD... 目录前言开发流程问题和解决方案dll库加载不到的问题老旧版本sdk不兼容的问题关键实现流程总结前言作为