1、需要root的实现方案:
其原理是在root后的机器使用root权限来配置iptable,利用linux这个自带的防火墙实行流量控制。
例如:
Droidwall:https://github.com/CfYz/droidwall
android_firewall:https://github.com/skullone/android_firewall
2、不需要root的实现方案;
android的vpnservice技术,实现了免root的防火墙,Android提供了VpnService类。这是一个Service的子类。一旦start了该service,它会创建一个类似于应用代理的服务。任何应用外出的包,都会先发给该服务,然后该服务再转发到网络上。于是这个VpnService就成为需要使用网络的应用和网络服务器之间的一个中间人。这就提供了一个机会来控制外出流量。
用途:网络管理、流量管理、网络安全,广告过滤、联网控制、WiFi安全通道等等
例如:
NetGuard:https://github.com/M66B/NetGuard
WIFI连接相关:
https://github.com/rorist/android-network-discovery
https://github.com/mkch/android-wifi-connecter
参考文章:
如何使用Android系统自带的VPN服务框架
Android VPN Service实现免root防火墙