我有一個Android應用程序,我試圖將圖片發送到服務器。我使用Base64編碼完成了這個工作,它工作得很好,但是在發送之前花費太多內存(和時間)對圖片進行編碼。Java/Android:通過套接字讀取/寫入字節數組
我試圖剝離Android應用程序到它只是簡單地發送字節數組,並沒有擺弄任何種類的編碼方案,所以它會盡可能節省內存和CPU週期。
這是我想了Android的代碼是什麼樣子:
public String sendPicture(byte[] picture, String address) {
try {
Socket clientSocket = new Socket(address, 8000);
OutputStream out = clientSocket.getOutputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
out.write(picture);
return in.readLine();
}
catch(IOException ioe) {
Log.v("test", ioe.getMessage());
}
return " ";
}
服務器是用Java編寫。如何編寫服務器代碼,以便我可以正確檢索完全相同的字節數組?我的目標是儘可能多地在Android上節省CPU週期。
到目前爲止,我嘗試過的所有方法都會導致數據損壞或引發異常。
任何幫助將不勝感激。
工作,但從流讀取字節的字節是完全低效和緩慢。更好的辦法是一次至少讀取1024個字節。 – Robert 2011-01-08 13:02:12