Android App选择最优的服务器地址

简介

对于很多app来说,如果有文件上传、多媒体播放之类的功能,性能调优的重点之一一定是上传或者播放的速度。

其中,可以尝试的一个做法是Server端分布式部署,在app启动时选择当前最为合适的服务器。那如何选择服务器呢?介绍几种方法。

Server提供接口

Server提供接口来评估app-该server之间的通信情况,app通过轮询的方式来选择最合适的服务器地址

Ping

通过ping来进行评估,有几种实现方式。

1. 直接使用系统的linux ping命令:

Runtime.getRuntime().exec("/system/bin/ping -c 1 8.8.8.8")

并解析其输出的字符串

2. InetAddress.isReachable()

https://developer.android.com/reference/java/net/InetAddress.html#isReachable(int)

3. 直接发送ICMP包

安卓系统的linux内核可能会对能够发送ping包的gid进行限制,可通过这个命令查看:

adb shell cat /proc/sys/net/ipv4/ping_group_range

返回值是两个int值,指定了有权限发送ping包的gid的范围。

你可能感兴趣的:(Android App选择最优的服务器地址)