【精选】Android app 指定网络发送数据包的实现与原理分析_bindprocesstonetwork-优快云博客
补充:
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里
结合上面的,应该清楚原理了,暂时先到这儿