تا پایان امشب - بیشترین تخفیف تا امروز (%۷۰ و %۸۷) ویژه حمایت از دانشجویان‌ و کسب‌وکارهای آسیب‌دیده جزئیات

VOLLEY چیست؟ کتابخانه Volley در اندروید چیست؟ کتابخانه Volley در اندروید


VOLLEY چیست؟ کتابخانه Volley در اندروید چیست؟ کتابخانه Volley در اندروید

کتابخانه VOLLEY چیست؟ کاربرد و مزایای آن

میخواهم امروز شما رو با یکی از کتابخانه های برنامه نویسی اندروید به نام کتابخانه VOLLEY آشنا کنم. مطمئن نیستم که شما تا به حال کلمه ی Volley را شنیده باشید. اگر می خواهید با این کتابخانه آشنا شوید پیشنهاد میکنم تا انتهای این مقاله با لرن فایلز همراه باشید. کتابخانه VOLLEY در حقیقت کتابخانه ای است که توسط سخنرانی Ficus Kirkpatrick در سال 2013 در مورد Google IO ارائه شد.

کاربرد کار با کتابخانه والی :

 کتابخانه VOLLEY کتابخانه ای است که شبکه کردن نرم افزار های اندروید را ساده کرده و مهم تر از همه سریع تر می کند. این سرویس، پردازش و ذخیره سازی فراخوان ها و درخواست های برنامه نویسان اندرویدی را مدیریت می کند و با ذخیره کردن زمان برای آن ها به آن ها کمک می کند تا کد های لازم و تکراری را بارها و بار ها فراخوانی کنند. کد های کم تر، به معنی باگ کم تر است که هدف اصلی برنامه نویسان است.

منظور من، کد های شبکه یا برای مثال کد های منطق و Async Task است که شما آن ها را برای دریافت پاسخ از API های شبکه ای و نمایش آن ها به شکل مناسب استفاده می کنید. باید Progress window / Progress bar را در قسمت ()PreExecute و ()onPostExecute قرار بدهیم. می دونم که این کار سختی نیست اما کمی کسل کننده است و خود منم خیلی وقت ها موقع کد نویسی برای Progress window ،Progress bar، اجراش و کار های مشابه حوصلم سر میره. پس می‌تونیم از سرویس volley به جای Async استفاده کنیم.

مزیت های استفاده از کتابخانه VOLLEY

  • Volley به شکل اتوماتیک تمامی در خواست های شبکه را زمان بندی می کند.
  • volley تمامی در خواست های شبکه ای که برنامه ی شما آن ها را اجرا می کند را انجام می دهد و تصویر و پاسخ مورد نظر را از اینترنت برای شما می گیرد.
  • volley دیسک و حافظه ی شفاف برای ذخیره ی سازی در اختیار شما قرار می دهد.
  • volley امکان کنسل کردن درخواست API را در اختیار شما می گذارد. یعنی که می توانید درخواست تکی و یا مجموعه ای از دستور ها را هم زمان کنسل کنید.
  • volley توانایی سفارشی کردن بسیار قوی در اختیار شما می گذارد
  • volley ابزار هایی برای رفع اشکال و پیگیری دارد.

چگونه کار با والی را آغاز کنیم ؟

  • پروژه‌ی volley را Clone کنید!
  • کد را در پروژه خود Import کنید!

پروژه ی volley را کلون کنید:

git clone https://android.googlesource.com/platform/frameworks/volley
VOLLEY چیست؟ کتابخانه Volley در اندروید

فولدری به نام volley  ایجاد شده است. حالا  باید این شاخه را در یک بستر  و یا استودیوی اندرویدی سوار کنیم. من از Git GUI client بر روی سیستم ویندوزم استفاده می کنم.

حالا فرض کنید که سیستم شما Git client  ندارد و شما می خواهید کلون کنید پس باید با کمک eclipse یا ADT bundle مستقیما این کار را انجام دهید.

دو کلاس اصلی volley

دو کلاس اصلی در Volley  وجود دارد:

  • Request-queue
  • Request

Request-queue: این دقیقا هدف درخواستی شما در شبکه است و می توانید این صف درخواست را موقع نیاز ایجاد کنید اما بهتر است در زمان شروع این کار را انجام دهید و از آن به عنوان singleton استفاده کنید.

Request: شامل تمامی جزئیاتی است که برای فراخوان API در شبکه مورد استفاده قرار می گیرند. برای مثال، از متد GET یا POST در Data request برای انتقال Voice response وError response به کار می رود.

به این روش درخواست زیر در JSONObjectRequest توجه کنید :

VOLLEY چیست؟ کتابخانه Volley در اندروید

کار با کتابخانه volley در اندروید :


خوب احساس من اینه که شما تا الان کتابخانه VOLLEY رو از Git repo دانلود کرده اید. حالا، مراحل زیر را طی کنید تا مثالی ساده از دریافت توییت ها و نمایش آنها در منوی نمایش خود داشته باشید.

مرحله ی اول

مطمئن شوید که پروژه ی volley را در eclipse  بارگذاری کرده اید، بعد از بارگذاری پروژه باید یک library project بسازیم. راست کلیک کرده و گزینه‌ی Properties > android >  منوی سمت چپی را انتخاب کنید.

VOLLEY چیست؟ کتابخانه Volley در اندروید

مرحله ی دوم

حالا بر روی پروژه ی جدید کلیک کنید و نام آن را volley example بگذارید.

مرحله ی سوم

بر روی volley example راست کلیک کنید و گزینه ی volley library  را انتخاب کنید.

VOLLEY چیست؟ کتابخانه Volley در اندروید

مرحله ی چهارم

مجوز INTERNET را در فایل AndroidManifest.xml به شکل زیر قرار دهید:

مرحله ی پنجم

آبجکت زیر را در کلاس RequestQueue  ایجاد کنید :

RequestQueue queue = Volley.newRequestQueue(this);

دستور JSONObjectRequest را با پاسخ خطا ایجاد کنید:

String url = "https://www.googleapis.com/customsearch/v1?key=AIzaSyBmSXUzVZBKQv9FJkTpZXn0dObKgEQOIFU&cx=014099860786446192319:t5mr0xnusiy&q=AndroidDev&alt=json&searchType=image";
JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener() {
@Override
public void onResponse(JSONObject response) {
// TODO Auto-generated method stub
txtDisplay.setText("Response => "+response.toString());
findViewById(R.id.progressBar1).setVisibility(View.GONE);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub}
});

دستور زیر را در RequestQueue قرار دهید :

queue.add(jsObjRequest);

نهایتا کد های فایل MainActivity.java را کامل کنید :

package com.technotalkative.volleyexamplesimple;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.TextView;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
}
public class MainActivity extends Activity {
private TextView txtDisplay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
txtDisplay = (TextView) findViewById(R.id.txtDisplay);
RequestQueue queue = Volley.newRequestQueue(this);
String url = "https://www.googleapis.com/customsearch/v1?key=AIzaSyBmSXUzVZBKQv9FJkTpZXn0dObKgEQOIFU&cx=014099860786446192319:t5mr0xnusiy&q=AndroidDev&alt=json&searchType=image";
}()
JsonObjectRequest jsObjRequest = new JsonObjectRequest(Request.Method.GET, url, null, new Response.Listener() {
@Override
public void onResponse(JSONObject response) {
// TODO Auto-generated method stub
txtDisplay.setText("Response => "+response.toString());
findViewById(R.id.progressBar1).setVisibility(View.GONE);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// TODO Auto-generated method stub
}
});
queue.add(jsObjRequest);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
نظرات کاربران

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

0 نظر ثبت شده است
میهمان
محمد (9 اسفند 1396 | 15:50)

سلام دوست عزیز

خیلی خوشحال میشیم که اگر کتابخانه ی socket.io رو هم معرفی بکنید.

ارسال پاسخ
لرن فایلز
لرن فایلز
4092 روز همراهی
لرن فایلز (14 اسفند 1396 | 08:58)

سلام مجدد دوست عزیز
معرفی کتابخانه ی SOCKET.IO در سایت قرار گرفت. می تونین از لینک زیر به مطلب مورد نظر دسترسی پیدا کنین:
https://learnfiles.net/blog/socket-io/

ارسال پاسخ
لرن فایلز
لرن فایلز
4092 روز همراهی
لرن فایلز (12 اسفند 1396 | 10:13)

سلام دوست عزیز
بله حتما، در روزهای آینده قرار خواهد گرفت.

ارسال پاسخ

نوشته های دیگر در دسته بندی برترین‌های بلاگ

راز موفقیت در تسلیم شدنه!

راز موفقیت در تسلیم شدنه!

راز موفقیت در تسلیم شدنه! شاید تو نگاه اول بگی این چه حرف چرتیه ولی مقاله رو تا ته بخون
دانشگاه منو برنامه نویس کرد ؟!

دانشگاه منو برنامه نویس کرد ؟!

فارغ و التحصیل برنامه نویسی از دانشگاه باشیم و یا متخصص به صورت دانش تجربی؟ کدوم درسته؟
برنامه ریزی کافیست ، عمل کنیم !

برنامه ریزی کافیست ، عمل کنیم !

عمل کردن بدون برنامه ریزی نتیجه بهتری از برنامه ریزی بدون عمل خواهد داشت
آموزش هک

آموزش هک