android永远在线内部如何工作?

时间:2018-06-13 01:25:16

标签: android android-intent service vpn android-vpn-service

我可以从developer.android.com上了解如何从VPN应用程序的角度支持永远在线VPN

但是找不到任何有关android系统内部如何实现此功能的信息?

  • android系统是否定期唤醒并检查VPN服务是否正在运行,如果没有则尝试启动指定的VPN服务?
  • 这是否会定期发生?
  • 如果没有网络连接怎么办? android会等到n / w conn恢复启动VPN服务吗?

提前致谢

1 个答案:

答案 0 :(得分:2)

  

android系统是否定期唤醒并检查VPN服务是否正在运行,如果没有则尝试启动指定的VPN服务?

不,系统启动后系统会启动一次VPN服务(使用操作android.net.VpnService)。根据Android版本,用户首先必须解锁系统(Android 8+似乎就是这种情况)。在Android 7.x上并非如此,如果VPN应用程序可能存在问题,例如需要访问已锁定KeyChain中的凭据。

只要用户在系统的VPN设置中启用了永远在线VPN功能,它也会启动VPN服务。

  

这是否会定期发生?

不,但是自Android 8以来,如果启用了永远在线VPN功能,系统会显示通知,但当前没有隧道界面(点击通知将打开系统的VPN设置)。

  

如果没有网络连接怎么办? android会等到n / w conn恢复以启动VPN服务吗?

不,VPN应用程序必须处理这种情况。