ভলির দৃষ্টিভঙ্গিটি এখানে দেখানো আপনার প্রয়োজনীয়তার জন্য কিছু সুবিধা রয়েছে:
ভলি, একদিকে, সম্পূর্ণরূপে স্বতন্ত্র, ছোট এইচটিটিপি অনুরোধ পরিচালনার উপর দৃষ্টি নিবদ্ধ করে। সুতরাং যদি আপনার এইচটিটিপি রিকোয়েস্টের হ্যান্ডলিংয়ে কিছু প্রশ্ন রয়েছে তবে ভলির সম্ভবত আপনার জন্য একটি হুক রয়েছে। অন্যদিকে, যদি আপনার ইমেজ হ্যান্ডলিংয়ে আপনার কোনও তাত্পর্য থাকে তবে আপনার কাছে আসল হুকটিই কেবল চিত্রের ক্যাশে । "এটি কিছুই নয়, তবে এটি খুব বেশি কিছু নয়!" তবে এর আরও আরও সুবিধা রয়েছে যেমন আপনি একবার আপনার অনুরোধগুলি সংজ্ঞায়িত করে ফেলেন, কোনও খণ্ডের মধ্যে থেকে বা ক্রিয়াকলাপের মধ্য দিয়ে এগুলি ব্যবহার করা সমান্তরাল অ্যাসিঙ্কটাস্কের বিপরীতে ব্যথাহীন
ভলির প্রো এবং কনস:
তাহলে ভলির সম্পর্কে কী সুন্দর?
নেটওয়ার্কিং অংশটি কেবল চিত্রগুলির জন্য নয়। ভলির উদ্দেশ্য আপনার পিছনের প্রান্তের একটি অবিচ্ছেদ্য অঙ্গ হতে পারে। একটি সাধারণ আরএসটি পরিষেবা ভিত্তিতে একটি নতুন প্রকল্পের জন্য, এটি একটি বড় জয় হতে পারে।
পিকাসোর চেয়ে নেটওয়্যারআইমেজভিউ অনুরোধ ক্লিনআপ সম্পর্কে আরও আক্রমণাত্মক এবং এর জিসি ব্যবহারের ধরণগুলিতে আরও রক্ষণশীল। নেটওয়ার্কআইমেজভিউ দৃ strong়রূপে শক্তিশালী মেমরি রেফারেন্সের উপর নির্ভর করে এবং একটি চিত্রভিউয়ের জন্য নতুন অনুরোধ করার সাথে সাথে বা সেই চিত্রআলভিটি অফস্ক্রিন স্থানান্তরিত হওয়ার সাথে সাথে সমস্ত অনুরোধ ডেটা সাফ করে দেয়।
কর্মক্ষমতা. এই পোস্টটি এই দাবির মূল্যায়ন করবে না, তবে তারা তাদের মেমরির ব্যবহারের ধরণগুলিতে ন্যায়বিচারের জন্য স্পষ্টভাবে কিছু যত্ন নিয়েছে। ভলে প্রসঙ্গের স্যুইচিং হ্রাস করার জন্য মূল থ্রেডে কলব্যাকগুলি ব্যাচ করার চেষ্টাও করে।
ভলির স্পষ্টতই ফিউচারসও রয়েছে। আপনার আগ্রহ থাকলে অনুরোধ ফিউচারটি দেখুন।
আপনি যদি উচ্চ-রেজুলেশন সংকোচিত চিত্রগুলির সাথে কাজ করে থাকেন তবে ভলির এখানে একমাত্র সমাধান যা ভালভাবে কাজ করে।
ভলিকে ওখট্টপ্পের সাহায্যে ব্যবহার করা যেতে পারে (আরও ভাল পারফরম্যান্সের জন্য ওখट्ट্পের নতুন সংস্করণ এনআইও সমর্থন করে)
ক্রিয়াকলাপ জীবনচক্রের সাথে ভলি দুর্দান্ত অভিনয় করে।
ভলির সমস্যা: ভল্লি
যেহেতু নতুন, তাই কয়েকটি জিনিস এখনও সমর্থিত নয়, তবে এটি স্থির।
মাল্টিপার্ট রিকোয়েস্টস (সমাধান: https://github.com/vinaysshenoy/enhanced-volley )
স্থিতি কোড 201 একটি ত্রুটি যেমন নেওয়া হয়, 200 থেকে 207 স্থিতি কোড সফল প্রতিক্রিয়া এখন। (আলোচনা: https://github.com/Vinayrraj/CustomVolley )
আপডেট: গুগল ভলির সর্বশেষ রিলিজে, 2 এক্সএক্স স্থিতি কোড বাগ এখন ঠিক করা হয়েছে! ফিকাস কির্কপ্যাট্রিককে ধন্যবাদ!
এটি কম নথিভুক্ত তবে অনেক লোক গিথুবে ভলিকে সমর্থন করছেন, ডকুমেন্টেশনের মতো জাভা পাওয়া যাবে এখানে । অ্যান্ড্রয়েড বিকাশকারী ওয়েবসাইটে, আপনি ভল্লি ব্যবহার করে নেটওয়ার্ক ডেটা সংক্রমণ করার জন্য গাইড খুঁজে পেতে পারেন । এবং ভলির উত্স কোডটি গুগল গিটে পাওয়া যাবে
ওলিএইচটিটিপি সহ ভলির ফ্রেমওয়ার্কের পুনঃনির্দেশ নীতিটি সমাধান / পরিবর্তন করতে (উপরে বর্ণিত কমন্সওয়্যার)
এছাড়াও আপনি এই তুলনা ভলির চিত্রটি পিকাসোর সাথে পড়তে পারেন
রেট্রোফিট:
এটি স্কোয়ার দ্বারা প্রকাশিত হয়েছে , এটি REST এপিআই'র ব্যবহারের জন্য খুব সহজ প্রস্তাব দেয় (আপডেট: ভিওইলা! এনআইও সমর্থন সহ)
Retrofit এর পেশাদাররা:
ভলির তুলনায়, রেট্রোফিটের আরএসটি এপিআই কোড সংক্ষিপ্ত এবং চমৎকার এপিআই ডকুমেন্টেশন সরবরাহ করে এবং সম্প্রদায়েরগুলিতে ভাল সমর্থন রয়েছে! প্রকল্পগুলিতে যুক্ত করা খুব সহজ।
আমরা এটিকে ত্রুটি পরিচালনা সহ কোনও সিরিয়ালাইজেশন লাইব্রেরি সহ ব্যবহার করতে পারি।
আপডেট:
- রেট্রোফিট ২.০.০-বিটা ২ তে প্রচুর ভাল পরিবর্তন রয়েছে
- OkHttp 2.0 সঙ্গে রেট্রোফিট সংস্করণ 1.6 এখন উপর নির্ভরশীল Okio সমর্থন java.io এবং java.nio যা অ্যাক্সেস, দোকান থেকে এটা অনেক সহজ করে তোলে এবং ব্যবহার করে আপনার ডেটা প্রক্রিয়া ByteString এবং বাফার CPU ও মেমরি সংরক্ষণ করতে কিছু চতুর কিছু করার। (অবগতির জন্য এই আমাকে মনে করিয়ে দেয় Koush এর OIN Nio সমর্থনে গ্রন্থাগার!)
আমরা ব্যবহার করতে পারি RxJava একসাথে রেট্রোফিট মেশা এবং চেইন বিশ্রাম কল ব্যবহার করে rxObservables কুশ্রী কলব্যাক চেইন এড়াতে (এড়ানোর কলব্যাক নরকে !!) ।
সংস্করণ 1.6 এর জন্য পুনঃনির্মাণের বিষয়টি:
মেমরি সম্পর্কিত ত্রুটি হ্যান্ডলিং কার্যকারিতা ভাল নয় (রিট্রোফিট / OkHttp এর পুরানো সংস্করণগুলিতে) জাভা এনআইও সমর্থন দিয়ে ওকিয়োর সাথে এটি উন্নত হয়েছে কিনা তা নিশ্চিত নয়।
নূন্যতম থ্রেডিং সহায়তা ফলস্বরূপ জাহান্নামকে কল করতে পারে যদি আমরা এটি ভুল উপায়ে ব্যবহার করি।
(উপরের সমস্ত কনসকে রিট্রোফিট ২.০ বিটার নতুন সংস্করণে সমাধান করা হয়েছে)
================================================== ======================
হালনাগাদ:
অ্যান্ড্রয়েড অ্যাসিঙ্ক বনাম ভোলি বনাম রেট্রোফিট পারফরম্যান্স বেঞ্চমার্ক (মিলিসেকেন্ড, কম মান আরও ভাল):
(উপরের এফওয়াইআই রেট্রোফিট বেঞ্চমার্কের তথ্য জাভা এনআইও সমর্থন দিয়ে উন্নত হবে কারণ ওকেহট্টপসের নতুন সংস্করণটি এনআইও ওকিও লাইব্রেরির উপর নির্ভরশীল)
বিভিন্ন পুনরাবৃত্তি (তিন - 1 - 25 বার) সহ তিনটি পরীক্ষায় ভলি 50% থেকে 75% পর্যন্ত দ্রুততর ছিল। অ্যাসিঙ্কটাস্কের তুলনায় রিট্রোফিট 50% থেকে 90% দ্রুত গতিতে এসে একই শেষ পয়েন্টটিকে একই সংখ্যার বারে আঘাত করেছে। ড্যাশবোর্ড পরীক্ষা স্যুটে, এটি ডেটা কয়েক সেকেন্ডে দ্রুত লোডিং / পার্সিংয়ে অনুবাদ করেছে। এটি একটি বিশাল বাস্তব-পার্থক্য। পরীক্ষাগুলি সুষ্ঠু করার জন্য, অ্যাসিঙ্কটাস্কস / ভলির জন্য সময়গুলি JSON পার্সিং অন্তর্ভুক্ত করেছিল যেমন retrofit এটি স্বয়ংক্রিয়ভাবে আপনার জন্য করে।
রিট্রোফিট বেঞ্চমার্ক পরীক্ষায় জিতেছে!
শেষ পর্যন্ত, আমরা আমাদের আবেদনের জন্য রেট্রোফিটের সাথে যাওয়ার সিদ্ধান্ত নিয়েছি। এটি কেবল হাস্যকরভাবেই দ্রুত নয়, এটি আমাদের বিদ্যমান আর্কিটেকচারের সাথে বেশ ভালভাবে মেসে যায়। আমরা এমন একটি প্যারেন্ট কলব্যাক ইন্টারফেস তৈরি করতে সক্ষম হয়েছি যা স্বয়ংক্রিয়ভাবে ত্রুটি হ্যান্ডলিং, ক্যাশিং এবং পৃষ্ঠাগুলি সম্পাদন করে যা আমাদের এপিআইয়ের জন্য খুব কম চেষ্টা করে। রেট্রোফিটে একীভূত হওয়ার জন্য, আমাদের মডেলগুলিকে জিএসওএন অনুবর্তী করতে, কয়েকটি সাধারণ ইন্টারফেস লিখতে, পুরানো এপিআই থেকে ফাংশনগুলি মুছতে এবং অ্যাসিঙ্কটাস ব্যবহার না করার জন্য আমাদের টুকরো পরিবর্তন করতে আমাদের ভেরিয়েবলগুলির নাম পরিবর্তন করতে হয়েছিল। এখন আমাদের কয়েকটি টুকরো সম্পূর্ণ রূপান্তরিত হয়ে গেছে, এটি বেশ বেদনাদায়ক। কিছু ক্রমবর্ধমান বেদনা এবং সমস্যাগুলি ছিল যা আমাদের পরাস্ত করতে হয়েছিল, তবে সামগ্রিকভাবে এটি সহজেই চলে গেছে। শুরুতে, আমরা কয়েকটি প্রযুক্তিগত সমস্যাগুলি / বাগগুলিতে ছুটলাম, তবে স্কয়ারের একটি দুর্দান্ত Google+ সম্প্রদায় রয়েছে যা এর মাধ্যমে আমাদের সহায়তা করতে সক্ষম হয়েছিল।
ভলি কখন ব্যবহার করবেন ?!
আমরা ভ্যালি ব্যবহার করতে পারি যখন আমাদের ইমেজগুলি লোড করার পাশাপাশি আরএসটি এপিআই গ্রহণ করা প্রয়োজন! একই সাথে অনেকগুলি এন / ডাব্লু অনুরোধের জন্য নেটওয়ার্ক কল কুইউটিং সিস্টেমের প্রয়োজন হয়! এছাড়াও ভলির রেট্রোফিটের চেয়ে মেমরি সম্পর্কিত ত্রুটি পরিচালনার ভাল রয়েছে!
OkHttp ভলির সাথে ব্যবহার করা যেতে পারে, রিট্রোফিট ডিফল্টরূপে OkHttp ব্যবহার করে! এটা আছে -এ SPDY সমর্থন, সংযোগ পুলিং, ডিস্ক ক্যাশে, স্বচ্ছ কম্প্রেশন! সম্প্রতি, এটি ওকিও লাইব্রেরির সাথে জাভা এনআইওর কিছুটা সমর্থন পেয়েছে ।
উত্স, ক্রেডিট: জনাব জোশ রুয়েশের লিখেছেন ভল্লি-বনাম- পুনঃনির্মাণ
দ্রষ্টব্য: স্ট্রিমিং সম্পর্কে এটি আরটিএসপি / আরটিসিপি-র মতো আপনি কী ধরণের স্ট্রিমিং চান তার উপর নির্ভর করে।