Java Android Wifi带宽

Java Android Wifi带宽,java,android,android-wifi,Java,Android,Android Wifi,最近,我接到一项任务,在Nexus7平板电脑上开发Android应用程序,该应用程序将通过使用wifi的tcp套接字与pc连接 特别是我必须将图像流(例如未压缩的BMP)传递到平板电脑。所以我做了一个简单的测试来检查带宽,结果让我失望。我把我的平板电脑放在wifi信号源前,上面写着连接速度是每秒54Mb,但考虑到测试结果,我只能每秒获得约16Mb 测试代码: 个人电脑: } 我错过了什么?好的,第一个54Mbps的Wifi是每秒54 x 1024 x 1024位。因此,最大速度为6.75 MB/

最近,我接到一项任务,在Nexus7平板电脑上开发Android应用程序,该应用程序将通过使用wifi的tcp套接字与pc连接

特别是我必须将图像流(例如未压缩的BMP)传递到平板电脑。所以我做了一个简单的测试来检查带宽,结果让我失望。我把我的平板电脑放在wifi信号源前,上面写着连接速度是每秒54Mb,但考虑到测试结果,我只能每秒获得约16Mb

测试代码:

个人电脑:

}


我错过了什么?

好的,第一个54Mbps的Wifi是每秒54 x 1024 x 1024位。因此,最大速度为6.75 MB/s

我在我的网络上做了这个实验,在我的Windows7设备中,这个实验的速度是54Mbps。在我的Windows7box(服务器)和XPbox(客户端)之间,我基本上使用上面的代码实现了3.0MB/s

然后我在Nexus7(服务器)和XP(客户端)之间运行了相同的代码,得到了0.3MB/s。因此,速度大幅下降。我将以下内容放在服务器线程的构造函数中:

android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
在舱单上:

<uses-permission android:name="android.permission.RAISED_THREAD_PRIORITY"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

我还靠近路由器,关掉wifi,然后再打开。它报告Nexus7的速度为54Mbps,当我运行它时,速度为3.0MB/s

因此,在这一点上,结果与Windows7相同,约为理论网络吞吐量的44%


使用多个TCP连接可以使我们接近100%的吞吐量。

好的,第一个54Mbps的Wifi是每秒54 x 1024 x 1024位。因此,最大速度为6.75 MB/s

我在我的网络上做了这个实验,在我的Windows7设备中,这个实验的速度是54Mbps。在我的Windows7box(服务器)和XPbox(客户端)之间,我基本上使用上面的代码实现了3.0MB/s

然后我在Nexus7(服务器)和XP(客户端)之间运行了相同的代码,得到了0.3MB/s。因此,速度大幅下降。我将以下内容放在服务器线程的构造函数中:

android.os.Process.setThreadPriority(android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
在舱单上:

<uses-permission android:name="android.permission.RAISED_THREAD_PRIORITY"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

我还靠近路由器,关掉wifi,然后再打开。它报告Nexus7的速度为54Mbps,当我运行它时,速度为3.0MB/s

因此,在这一点上,结果与Windows7相同,约为理论网络吞吐量的44%


使用多个TCP连接可以使我们接近100%的吞吐量。

您可以在Wifi上的两台电脑之间尝试相同的代码,以确定Android是否真的是一个因素。您是否让测试运行足够长的时间以使TCP窗口变大?总是会有一些开销,所以一个TCP连接可能无法100%使用,但我希望优于30%。您可以在Wifi上的两台PC之间尝试相同的代码,以确定Android是否真的是一个因素。您是否让测试运行足够长的时间以使TCP窗口变大?总是会有一些开销,所以一个TCP连接可能无法100%使用,但我希望优于30%。