我正在從FTP服務器下載MP3文件。這是一個Android應用程序,它將下載並播放MP3文件。下載使用apache commons庫以Java實現,代碼主要基於另一個教程。在運行Java的桌面上,下載速度非常快,大約需要5秒來下載一個大約10mb的文件,但是在Android設備上運行的相同代碼(我嘗試過2)使用5-10分鐘下載相同的文件。 (兩個測試都是通過Wifi完成的)。基於FTP下載在Android極其緩慢(快速在Java中)
代碼:http://androiddev.orkitra.com/?p=28&cpage=2#comment-40
下面的代碼顯示使用的兩種方法:連接和下載。
public boolean connect(String host, String username, String pass, int port){
try{
mFTPClient.connect(host, port);
if(FTPReply.isPositiveCompletion(mFTPClient.getReplyCode())) {
boolean loginStatus = mFTPClient.login(username, pass);
mFTPClient.setFileType(FTP.BINARY_FILE_TYPE);
mFTPClient.enterLocalPassiveMode();
mFTPClient.setKeepAlive(true);
return loginStatus;
}
} catch (Exception e){
System.err.println("Error: Could not connect to: " + host);
e.printStackTrace();
}
return false;
}
public boolean download(String srcFilePath, String dstFilePath) {
boolean downloadStatus = false;
try {
FileOutputStream dstFileStream = new FileOutputStream(dstFilePath);
downloadStatus = mFTPClient.retrieveFile(srcFilePath, dstFileStream);
dstFileStream.close();
return downloadStatus;
} catch (Exception e) {
System.err.println("Error: Failed to download file from " + srcFilePath + " to " + dstFilePath);
}
return downloadStatus;
}
希望我所提到的所需的所有細節,並希望如果有人可以解釋爲什麼它是又慢又如何,如果在所有我可以使它在一個合理的時間下載。
比較speedtest.net桌面和移動結果嗎?我家裏有一個Wi-Fi網絡,但我從來沒有像從PC那樣快速下載任何東西。 –
剛剛完成並且Speed Test在手機上給出了〜26mb,在桌面上給出了〜29mb。然而,ping在桌面上使用23ms,在手機上使用62ms。這可能是問題的原因嗎? –
你的手機上有另一個FTP客戶端嗎?如果是,結果是否可比? – fge