私はOLXのようなAndroidアプリを開発しています。ギャラリーに広告やコース選択用の画像を追加して自分のサーバーにアップロードすることができます。しかし、大きな画像をアップロードするには長い時間がかかります。Androidアプリで画像アップロードを高速化する方法は?
この問題を解決するにはどうすればよいですか?
私はVolleyライブラリを使用して画像をアップロードしています。より良い図書館はありますか?
私はOLXのようなAndroidアプリを開発しています。ギャラリーに広告やコース選択用の画像を追加して自分のサーバーにアップロードすることができます。しかし、大きな画像をアップロードするには長い時間がかかります。Androidアプリで画像アップロードを高速化する方法は?
この問題を解決するにはどうすればよいですか?
私はVolleyライブラリを使用して画像をアップロードしています。より良い図書館はありますか?
使用この
Retrofit retrofit = new Retrofit.Builder().client(okHttpClient).baseUrl(domain)
.addConverterFactory(GsonConverterFactory.create()).build();
Service service = retrofit.create(Service.class);
RequestBody requestBody = RequestBody.create(MediaType.parse("*/*"), file);
final MultipartBody.Part fileToUpload = MultipartBody.Part.createFormData("file", file.getName(), requestBody);
final RequestBody filename = RequestBody.create(MediaType.parse("text/plain"), file.getName());
Call<ServerResponse> upload = service.uploadFile(fileToUpload, filename);
upload.enqueue(new Callback<ServerResponse>() {
@Override
public void onResponse(Call<ServerResponse> call, final Response<ServerResponse> response) {
final ServerResponse serverResponse = response.body();
if (serverResponse.getSuccess()) {
//Handle Response
}
}
@Override
public void onFailure(Call<ServerResponse> call, Throwable t) {
if(t instanceof SocketTimeoutException){
Toast.makeText(getApplicationContext(), "Unable To Upload\nError: Socket Time out. Please try again", Toast.LENGTH_LONG).show();
}
t.printStackTrace();
}
});
サービスインタフェース
public interface Service {
@Multipart
@POST("path/upload.php")
Call<ServerResponse> uploadFile(@Part MultipartBody.Part file, @Part("file") RequestBody name);
}
Adnan Momin、あなたは正しいと思いますが、それはもっと複雑ですね? – aym1781969
@ aym1781969このリンクを使用してhttps://www.youtube.com/playlist?list=PLvhXArWo3eVxIMKJE5_zU1zb-ZHQISQT_を学習してください。それは簡単です – knownUnknown
あなたの質問は非常に広範であるが、ここではいくつかのアイデアです:
最初の2点でパフォーマンスが向上します。サーバーから地理的に遠い場合は、最後の点で少し改善が見られるかもしれません。
画像 – knownUnknown
をアップロードするためにレトロフィットを使用してみてください、あなたがBASE64に画像を変換していますか? –
はいAzhar osws私はbase64を使用しています。ビットマップを文字列に変換してから、リモートサーバに投稿してメモリを解放します。 – aym1781969