مهم (تخفیف درصد بالا): جهت حمایت از کاربران و کسب و کارهای آسیب دیده تا پایان امشب 50 و 90 درصد تخفیف فعال شد... جزئیات

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;
}
نظرات کاربران

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

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

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

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

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

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

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

ارسال پاسخ

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

what is seo

سئو چیست؟ فرمول برنده برای رسیدن 0 تا 100 به صدر نتایج گوگل

سئو و نکات طلایی برای گرفتن رتبه ۱ گوگل
Image SEO

سئو تصاویر در سایت؛ 15 توصیه کاربردی برای بهینه‌ سازی سریع

سئو تصاویر سایت در کمترین زمان ممکن با 15 ترفند موثر
The Complete SEO Checklist

چک لیست سئو 2025؛ راهنمای جامع و کاربردی بهینه سازی سایت

بهترین چک لیست سئو برای رتبه‌ های برتر
آموزش هک

آموزش هک