کتابخانه VOLLEY چیست؟ کتابخانه والی در اندروید
بلاگ آکادمی لرن فایلز
حمایت از دانشجویان و کسبوکارهای آسیبدیده با ۷۰و۸۵ درصد تخفیف-تا امشب
دریافتبلاگ آکادمی لرن فایلز
میخواهم امروز شما رو با یکی از کتابخانه های برنامه نویسی اندروید به نام کتابخانه VOLLEY آشنا کنم. مطمئن نیستم که شما تا به حال کلمه ی Volley را شنیده باشید. اگر می خواهید با این کتابخانه آشنا شوید پیشنهاد میکنم تا انتهای این مقاله با لرن فایلز همراه باشید. کتابخانه VOLLEY در حقیقت کتابخانه ای است که توسط سخنرانی Ficus Kirkpatrick در سال ۲۰۱۳ در مورد Google IO ارائه شد.
کتابخانه VOLLEY کتابخانه ای است که شبکه کردن نرم افزار های اندروید را ساده کرده و مهم تر از همه سریع تر می کند. این سرویس، پردازش و ذخیره سازی فراخوان ها و درخواست های برنامه نویسان اندرویدی را مدیریت می کند و با ذخیره کردن زمان برای آن ها به آن ها کمک می کند تا کد های لازم و تکراری را بارها و بار ها فراخوانی کنند. کد های کم تر، به معنی باگ کم تر است که هدف اصلی برنامه نویسان است. منظور من، کد های شبکه یا برای مثال کد های منطق و Async Task است که شما آن ها را برای دریافت پاسخ از API های شبکه ای و نمایش آن ها به شکل مناسب استفاده می کنید. باید Progress window / Progress bar را در قسمت ()PreExecute و ()onPostExecute قرار بدهیم. می دونم که این کار سختی نیست اما کمی کسل کننده است و خود منم خیلی وقت ها موقع کد نویسی برای Progress window ،Progress bar، اجراش و کار های مشابه حوصلم سر میره. پس میتونیم از سرویس volley به جای Async استفاده کنیم.
Volley به شکل اتوماتیک تمامی در خواست های شبکه را زمان بندی می کند.
volley تمامی در خواست های شبکه ای که برنامه ی شما آن ها را اجرا می کند را انجام می دهد و تصویر و پاسخ مورد نظر را از اینترنت برای شما می گیرد.
volley دیسک و حافظه ی شفاف برای ذخیره ی سازی در اختیار شما قرار می دهد.
volley امکان کنسل کردن درخواست API را در اختیار شما می گذارد. یعنی که می توانید درخواست تکی و یا مجموعه ای از دستور ها را هم زمان کنسل کنید.
volley توانایی سفارشی کردن بسیار قوی در اختیار شما می گذارد
volley ابزار هایی برای رفع اشکال و پیگیری دارد.
پروژهی volley را Clone کنید!
کد را در پروژه خود Import کنید!
[java]git clone https://android.googlesource.com/platform/frameworks/volley[/java]
فولدری به نام volley ایجاد شده است. حالا باید این شاخه را در یک بستر و یا استودیوی اندرویدی سوار کنیم. من از Git GUI client بر روی سیستم ویندوزم استفاده می کنم.
حالا فرض کنید که سیستم شما Git client ندارد و شما می خواهید کلون کنید پس باید با کمک eclipse یا ADT bundle مستقیما این کار را انجام دهید.
دو کلاس اصلی در Volley وجود دارد:
Request-queue
Request
Request-queue: این دقیقا هدف درخواستی شما در شبکه است و می توانید این صف درخواست را موقع نیاز ایجاد کنید اما بهتر است در زمان شروع این کار را انجام دهید و از آن به عنوان singleton استفاده کنید.
Request: شامل تمامی جزئیاتی است که برای فراخوان API در شبکه مورد استفاده قرار می گیرند. برای مثال، از متد GET یا POST در Data request برای انتقال Voice response وError response به کار می رود.
به این روش درخواست زیر در JSONObjectRequest توجه کنید :
خوب احساس من اینه که شما تا الان کتابخانه VOLLEY رو از Git repo دانلود کرده اید. حالا، مراحل زیر را طی کنید تا مثالی ساده از دریافت توییت ها و نمایش آنها در منوی نمایش خود داشته باشید.
مرحله ی اول
مطمئن شوید که پروژه ی volley را در eclipse بارگذاری کرده اید، بعد از بارگذاری پروژه باید یک library project بسازیم. راست کلیک کرده و گزینهی Properties > android > منوی سمت چپی را انتخاب کنید.
مرحله ی دوم
حالا بر روی پروژه ی جدید کلیک کنید و نام آن را volley example بگذارید.
مرحله ی سوم
بر روی volley example راست کلیک کنید و گزینه ی volley library را انتخاب کنید.
مرحله ی چهارم
مجوز INTERNET را در فایل AndroidManifest.xml به شکل زیر قرار دهید:
مرحله ی پنجم
آبجکت زیر را در کلاس RequestQueue ایجاد کنید :
[java ]RequestQueue queue = Volley.newRequestQueue(this);[/java]
دستور JSONObjectRequest را با پاسخ خطا ایجاد کنید:
[java]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}
});[/java]
دستور زیر را در RequestQueue قرار دهید :
[java]queue.add(jsObjRequest);[/java]
نهایتا کد های فایل MainActivity.java را کامل کنید :
[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;
}[/java]
سلام دوست عزیز
خیلی خوشحال میشیم که اگر کتابخانه ی socket.io رو هم معرفی بکنید.
سلام دوست عزیز
بله حتما، در روزهای آینده قرار خواهد گرفت.
سلام مجدد دوست عزیز
معرفی کتابخانه ی SOCKET.IO در سایت قرار گرفت. می تونین از لینک زیر به مطلب مورد نظر دسترسی پیدا کنین:
https://learnfiles.com/blog/socket-io/