【精选】Android app 指定网络发送数据包的实现与原理分析_bindprocesstonetwork-CSDN博客

补充:

frameworks/base/core/java/android/net/ConnectivityManager.java

函数: bindProcessToNetwork

调用到了 NetworkUtils.bindProcessToNetwork

但是NetworkUtils的 bindProcessToNetwork一下子找不到在哪儿

发现是个native函数,发现jni实现是在下面

frameworks/base/core/jni/android_net_NetUtils.cpp

调用到 android_net_utils_bindProcessToNetwork -> setNetworkForProcess

然后又找不到调用的地方了,

frameworks/base/core/jni/Android.bp

看jni的Android.bp 和 android_net_NetUtils.cpp ,应该是在 NetdClient.h,这个文件应该是

libnetd_client库里

system/netd/client/Android.bp

system/netd/client/NetdClient.cpp

结果发现 setNetworkForProcess 确实在  NetdClient.cpp里

结合上面的,应该清楚原理了,暂时先到这儿

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐