Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92
上一篇看了NetworkFactory的使用过程,它是在系统初始化时就被创建,接下来在接入网络时NetworkAgent就会被创建,正是它通过NetworkFactory搭建的环境来触发网络连接评分机制
NetworkAgent和NetworkFactory类似,也是通过子类继承的方式去实现,这里对应的是WifiNetworkAgent,看其初始化过程
注册过程:
public void enter() {
//最后一个参数是score,当前设置是60
mNetworkAgent = new WifiNetworkAgent(getHandler().getLooper(), mContext,
"WifiNetworkAgent", mNetworkInfo, mNetworkCapabilitiesFilter,
mLinkProperties, 60);
}
public WifiNetworkAgent(......int score) {
//调用父类构造函数
super(l, c, TAG, ni, nc, lp, score);
}
父类构造函数是NetworkAgent():
public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
NetworkCapabilities nc, LinkProperties lp, int score, NetworkMisc misc) {
//获取connectivity service
ConnectivityManager cm = (ConnectivityManager)mContext.getSystemService(
Context.CONNECTIVITY_SERVICE);
//注册当前NetworkAgent到connectivity service中,关注其中的score参数
netId = cm.registerNetworkAgent(new Messenger(this), new NetworkInfo(ni),
new LinkProperties(lp), new NetworkCapabilities(nc), score, misc);
}
注册函数registerNetworkAgent()
public int