有谁知道为什么下面的代码在 Android 3.2(Samsung Galaxy 10.1"Tab)上的运行速度比在 2.3.3(Motorola Droid X)上慢 4 倍?
在 Android 2.3.3 上,client.execute() 调用平均需要 350 毫秒。低于 3.2 平均需要 1400 毫秒。
此外,无论是在 UI 线程还是后台线程中运行,结果都是相同的。
这是操作系统错误还是硬件问题?还是我的代码没有做正确的事情?不幸的是,我无法让 ADB 连接到我的 3.2 虚拟设备,所以我不能排除硬件问题,但我的直觉告诉我这是一个 Honeycomb 问题。
HttpResponse resp = null;
HttpParams params = new BasicHttpParams();
params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
HttpClient client = new DefaultHttpClient(params);
ArrayList<BasicNameValuePair> postParms = new ArrayList<BasicNameValuePair>();
postParms.add(new BasicNameValuePair("name", "test"))
try
{
HttpPost hp = new HttpPost("http://myserver/path/method");
UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(postParms);
hp.setEntity(formEntity);
Long start = SystemClock.elapsedRealtime();
resp = client.execute(hp);
Long stop = SystemClock.elapsedRealtime();
Log.i("Time = " + (stop-start) + "ms");
}
...
最佳答案
如果您没有对其他任何东西进行计时,请安装一个终端并查看 Galaxy Tab 上的 top
,以确保 CPU 未被消耗,例如android.process.media.
关于android - HttpPost 在 Android 3.2 上的 HttpClient 执行速度明显低于 2.3.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9152889/