简介
对于很多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的范围。
网友评论