Android-support-v7-appcompat और android-support-v4 के बीच अंतर


147

मैं android-support-v4.jar और android-support-v7-appcompat.jar के बीच अंतर जानना चाहता था । अगर मैं अपने आवेदन में appcompat Action Bar जोड़ना चाहता हूँ तो क्या मुझे android-support-v7-appcompat.jar और android-support-v4.jar या केवल android-support-v7-appcompat.jar दोनों को जोड़ना होगा

इसके अलावा, क्या android-support-v13.jar में appcompat है?

जवाबों:


170

अपडेट करें

इस प्रश्न के उत्तर के बाद से समर्थन पुस्तकालय में कई बदलाव किए गए हैं। अच्छी बात है, यह बहुत अच्छी तरह से प्रलेखित भी है। इसलिए आपको अधिक विवरण और अधिक उपलब्ध समर्थन लाइब्रेरी के लिए समर्थन लाइब्रेरी दस्तावेज़ीकरण पढ़ना चाहिए ।

समर्थन लाइब्रेरी रिलीज़ 26.0.0 (जुलाई 2017) के साथ शुरू, अधिकांश समर्थन पुस्तकालयों में न्यूनतम समर्थित एपीआई स्तर अधिकांश पुस्तकालय पैकेजों के लिए एंड्रॉइड 4.0 (एपीआई स्तर 14) तक बढ़ गया है।


नीचे समर्थन लाइब्रेरी पैकेज से अंतर है :

v4 समर्थन पुस्तकालय

यह लाइब्रेरी Android 1.6 (API स्तर 4) Android 2.3 (API स्तर 9) के साथ उपयोग करने के लिए डिज़ाइन की गई है Android 4.0 (API स्तर 14) और उच्चतर के । इसमें अन्य पुस्तकालयों की तुलना में एपीआई का सबसे बड़ा सेट शामिल है, जिसमें एप्लिकेशन घटकों, उपयोगकर्ता इंटरफ़ेस सुविधाओं, पहुंच, डेटा हैंडलिंग, नेटवर्क कनेक्टिविटी और प्रोग्रामिंग उपयोगिताओं के लिए समर्थन शामिल है।

v7 पुस्तकालय

एंड्रॉइड 2.1 (एपीआई स्तर 7) एंड्रॉइड 2.3 (एपीआई स्तर 9) एंड्रॉइड 4.0 (एपीआई स्तर 14) और उच्चतर के साथ उपयोग करने के लिए डिज़ाइन किए गए कई पुस्तकालय हैं । ये पुस्तकालय विशिष्ट सुविधा सेट प्रदान करते हैं और एक दूसरे से स्वतंत्र रूप से आपके आवेदन में शामिल किए जा सकते हैं।

v7 appcompat पुस्तकालय

यह लाइब्रेरी एक्शन बार यूजर इंटरफेस डिजाइन पैटर्न के लिए समर्थन जोड़ता है।

नोट: यह लाइब्रेरी v4 सपोर्ट लाइब्रेरी पर निर्भर करती है। यदि आप चींटी या ग्रहण का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आप इस पुस्तकालय के कक्षापथ के हिस्से के रूप में v4 समर्थन पुस्तकालय को शामिल करते हैं।

यदि आप v7 का उपयोग करना चाहते हैं तो हां, आपको दोनों जार की आवश्यकता है।


Android-support-v13.jar के लिए अपडेट करें

v13 समर्थन पुस्तकालय

इस इंटरफ़ेस को एपीआई स्तर 27.1.0 में पदावनत किया गया था। फ्रेमवर्क के बजाय फ्रेगमेंट का उपयोग करें ।

v13 समर्थन पुस्तकालय

यह लाइब्रेरी एंड्रॉइड 3.2 (एपीआई स्तर 13) और उच्चतर के लिए उपयोग करने के लिए डिज़ाइन की गई है। यह (FragmentCompat) वर्ग और अतिरिक्त टुकड़ा समर्थन वर्गों के साथ Fragment उपयोगकर्ता इंटरफ़ेस पैटर्न के लिए समर्थन जोड़ता है

जब आप पैकेज विवरण देखते हैं तो इसमें एक वर्ग होता है FragmentCompat जैसा कि परिभाषा में दिया गया है। तो यह appcompat पुस्तकालय के सभी वर्गों नहीं है।


2
यदि आप min api 19 से एक ऐप विकसित कर रहे हैं। क्या आपको इनकी आवश्यकता है?

2
v4 समर्थन पुस्तकालय - इन पुस्तकालयों को Android 2.3 (एपीआई स्तर 9) और उच्चतर केसाथ उपयोग करने के लिए डिज़ाइन किया गया है।
वाडिक

1
और v7 सपोर्ट लाइब्रेरी - एंड्रॉइड 2.3 (एपीआई स्तर 9) और उच्चतर के साथ उपयोग किए जाने के लिए डिज़ाइन किए गए कई पुस्तकालय हैं ।
वाडिक

@ user5366495 शायद हाँ। अधिकांश अच्छी चीजें हैं API21 and above और यदि आप इसे कम उपयोग करना चाहते हैं, तो आपको उसके लिए समर्थन पुस्तकालय का उपयोग करना चाहिए। तो आपको अभी भी इसकी आवश्यकता हो सकती है API19
महदी-मालव

48

एक समर्थन पुस्तकालय क्या है?

समर्थन पुस्तकालय कोड लाइब्रेरी (कक्षाओं का संग्रह) हैं जो पुराने उपकरणों के साथ काम करने के लिए एक नई जोड़ी गई सुविधा बनाता है।
लेकिन - उदाहरण के लिए, सामग्री डिज़ाइन एपीआई 21 (Lolipop Android 5.0) में पेश किया गया था v7-समर्थन पुस्तकालय
यह एपीआई 7 (एंड्रॉयड 2.1.x -Eclair) और उच्च के लिए उपलब्ध बनाता है।

विभिन्न समर्थन पुस्तकालय क्या हैं?

कुछ मुख्य सहायता पुस्तकालय हैं

  • V4 समर्थन पुस्तकालय

  • V7 समर्थन पुस्तकालय

  • V8 समर्थन पुस्तकालय

  • v13 समर्थन पुस्तकालय

V7 सपोर्ट लाइब्रेरी के लिए 7 स्टैंड क्या है?

इसका अर्थ है कि इस पुस्तकालय में एपीआई स्तर 7 और उच्चतर के साथ उपयोग की जाने वाली विशेषताएं हैं। समान V4 के साथ जाता है (इसमें एपीआई 4 और उच्चतर के लिए सुविधाएँ शामिल हैं) और इसी तरह।

V7 समर्थन पुस्तकालय और v7 appcompat पुस्तकालय के बीच अंतर?

मेरे सहित कुछ लोग इन दो शब्दों से भ्रमित हो जाते हैं। दरअसल, v7 एप्कोम्पैट लाइब्रेरी v7 सपोर्ट लाइब्रेरी का एक हिस्सा है। v7 समर्थन पुस्तकालय मुख्य रूप से एपीआई 7 और उच्चतर के लिए सामग्री डिजाइन और एक्शनबार डिजाइन पैटर्न का समर्थन करने के लिए विकसित किया गया था।
V7 को अधिक उप श्रेणियों में वर्गीकृत किया जा सकता है

  • v7 appcompat पुस्तकालय

  • v7 कार्ड व्यू लाइब्रेरी

  • v7 recyclerView पुस्तकालय

  • v7 पैलेट लाइब्रेरी आदि

v7 appcompat लाइब्रेरी में प्रमुख कक्षाएं एक्शनबेर, एक्शनबेरक्टिविटी, शेयरएशनपॉइडर हैं।

इसलिए जोड़ना,

com.android.support:appcompat-v7:21.0.+

आपकी ग्रेड फ़ाइल में निर्भरता, उपर्युक्त वर्गों को आयात करती है।

बक्शीश

अन्य समर्थन पुस्तकालयों

मल्टीडेक्स सपोर्ट लाइब्रेरी (65k से अधिक विधियों वाले ऐप्स बनाने के लिए)
v17 लीनबैक सपोर्ट लाइब्रेरी (एक सपोर्ट लाइब्रेरी जो एंड्रॉइड टीवी के लिए महत्वपूर्ण विजेट प्रदान करती है)

प्रासंगिक लिंक


6
यह स्वीकृत उत्तर होना चाहिए, सरल शब्दों में सब कुछ स्पष्ट रूप से बताता है।
जियगोबाइट

44

लाइब्रेरी का समर्थन केवल तभी आवश्यक है जब आपका न्यूनतम एसडीके संस्करण एपीआई स्तर 11 से कम हो। अन्यथा आपको अपी लेवल 11 या ग्रेटर के लिए अपनी परियोजना में सहायता पुस्तकालय जोड़ने की आवश्यकता नहीं है।

android-समर्थन-v4.jar: समर्थन android.appवर्गों एंड्रॉयड एपीआई स्तर 4 या बाद के लिए अनुप्रयोगों के विकास के साथ सहायता करते हैं। ताकि आप अपने एप्लिकेशन को बैकवर्ड संगत बना सकें,

android-support-v7.jar यह हाल ही में नवीनतम समर्थन लाइब्रेरी अपडेशन में जोड़ा गया है। ActionBar ऐक्शन बार यूजर इंटरफेस डिजाइन पैटर्न को एंड्रॉइड 2.1 (एपीआई स्तर 7) और उच्चतर पर वापस लागू करने की अनुमति देता है। इस वर्ग के उपयोग के लिए आवश्यक है कि आप नई ActionBarActivityकक्षा का विस्तार करके अपनी गतिविधि को लागू करें ।

अगर मैं अपने आवेदन में appcompat एक्शन बार जोड़ना चाहता हूँ तो क्या मुझे android-support-v7-appcompat.jar और android-support-v4.jar या केवल android-support-v7-appcompat.jar दोनों को जोड़ना होगा।

हां, यदि आप इसका उपयोग करना चाहते हैं, तो आपको दोनों पुस्तकालयों का संदर्भ जोड़ना होगा।

क्या android-support-v13.jar में appcompat है?

नहीं, इसमें FragmentCompat शामिल है ताकि यदि कुछ Fragment फ़ीचर जोड़ा जाए तो संस्करण 13 के बाद आप इसे Api स्तर 11 के लिए अनुकूल बना सकते हैं, ताकि API लक्ष्य 11 या उससे अधिक का अनुप्रयोग नए संस्करणों में जोड़े गए फ़ीचर का उपयोग कर सके।


9
DrawerLayout/ NavigationDrawerवर्तमान में केवल समर्थन पुस्तकालयों में मौजूद है।
किरण

3
अन्य घटक हैं जो आप अपने एंड्रॉइड ऐप में उपयोग कर सकते हैं जो कि एक समर्थन लाइब्रेरी पर आधारित है जो कि एपीआई में डिफ़ॉल्ट रूप से 11 से अधिक शामिल नहीं है जैसे कि com.android.support:multidex:1.0.0 और com.android। समर्थन करते हैं: डिजाइन: 23.1.0। पूरी जानकारी के लिए इसे देखें: developer.android.com/tools/support-library/features.html
aselims

जैसा कि google डेवलपर. android.com/topic/lbooks/support-library/… में कहता है कि v4 समर्थन और v7 समर्थन के बीच कोई अंतर नहीं है। दोनों एपीआई 9 और उससे ऊपर के लिए हैं। क्या ये सच है?!
महदी

केंजी, हाँ यह सच है। Google 4 से 9 और 7 से 9 तक माइन सपोर्ट को शिफ्ट करता है और दोनों लाइब्रेरी अब एक दूसरे को डुप्लिकेट करती हैं।
यारोस्लाव हैवरलोविच

यदि आप min api 19 से एक ऐप विकसित कर रहे हैं। क्या आपको इनकी आवश्यकता है?

10

सबसे पहले, हमें यह समझने की आवश्यकता है कि एंड्रॉइड सपोर्ट लाइब्रेरी क्या है ?

एंड्रॉइड सपोर्ट लाइब्रेरी मूल रूप से 2011 में जारी की गई थी, आप कह सकते हैं कि एंड्रॉइड संगतता लाइब्रेरी के रूप में। एंड्रॉइड सपोर्ट लाइब्रेरी पुराने रिलीज के लिए नए एपीआई प्रदान करती है। लेकिन कहानी पर्याप्त नहीं है।

यह थोड़ा भ्रामक हो सकता है कि उच्चतर संस्करण संख्या वाले पुस्तकालयों का समर्थन पिछली पुस्तकालयों की सुविधाओं में शामिल है (आप सोच सकते हैं कि v7-appcompat में सुधार होता है और v4 से सभी सुविधाएँ शामिल हैं)। ज्यादातर मामलों में, यह गलत है। लेकिन पुस्तकालयों में स्वयं एक संशोधन संख्या होती है। उदाहरण के लिए, "AppCompat v21" वास्तव में पुस्तकालय v7-appcompat, संशोधन 21 का समर्थन करने के लिए संदर्भित करता है।

एंड्रॉइड सपोर्ट लाइब्रेरी एक एकल लाइब्रेरी नहीं है, लेकिन इसे मोटे तौर पर दो समूहों में विभाजित किया जा सकता है: संगतता और घटक लाइब्रेरी।

1-संगतता लायब्रेरी नए फ्रेमवर्क रिलीज़ से बैकपोर्टिंग सुविधाओं पर ध्यान केंद्रित करती है ताकि पिछले रिलीज़ में चलने वाले डिवाइस नए एपीआई का लाभ ले सकें। मुख्य संगतता पुस्तकालय v4 और v7-appcompat हैं।

v4 पुस्तकालय : इसमें कई विशेषताएं शामिल हैं और, जैसा कि इसके नाम से पता चलता है, एपीआई 4 का समर्थन करता है। इसके अलावा, फ्रैगमेंट और लोडर जैसी प्रमुख कक्षाओं के लिए कार्यान्वयन का समर्थन करने के लिए (जो दोनों एपीआई 11 में रूपरेखा में पेश किए गए थे), आप भी करेंगे। कई व्यापक रूप से उपयोग की जाने वाली कक्षाएं, जैसे कि ViewPager और DrawerLayout, में बिल्कुल भी मौजूद नहीं हैं।

v7-appcompat : v7-appcompat लाइब्रेरी ActionBar (API 11 में शुरू की गई) और टूलबार (API 21 में शुरू) के लिए API 7. को वापस रिलीज़ करने के लिए समर्थन प्रदान करता है। इसमें v4 लाइब्रेरी की आवश्यकता होती है, लेकिन इसमें इसे शामिल नहीं किया जाता है। इस प्रकार, v7-appcompat पर निर्भर कोई भी सुविधा v4 पर भी निर्भर है।

2-कंपोनेंट लाइब्रेरी एंड्रॉइड सपोर्ट लाइब्रेरी भी छोटे, अधिक मॉड्यूलर घटक लाइब्रेरी प्रदान करती है जो डेवलपर्स को उन विशेषताओं को जोड़ने में सक्षम बनाती हैं जो अन्यथा मानक ढांचे का हिस्सा नहीं हैं। इन स्व-निहित पुस्तकालयों को आश्रितों की चिंता के बिना आसानी से जोड़ा या हटाया जा सकता है। विचार करने के लिए कई मूल्यवान घटक पुस्तकालय हैं:

v7-recyclerview : RecyclerView घटक प्रदान करता है, जो बड़ी मात्रा में डेटा को कुशलतापूर्वक प्रदर्शित और एनिमेट करता है और इसे ListView को बदलने के लिए डिज़ाइन किया गया है

v7-cardview : कार्ड यूआई डिजाइन पैटर्न को सक्षम करने, कार्ड व्यू घटक प्रदान करता है

v7-gridlayout : GridLayout वर्ग प्रदान करता है, जो UI तत्वों को एक आयताकार ग्रिड में व्यवस्थित करने में सक्षम बनाता है। आदि..

अन्य लाइब्रेरीज़ एंड्रॉइड सपोर्ट लाइब्रेरी में कुछ अन्य लाइब्रेरियाँ भी शामिल हैं जिनका उपयोग अक्सर कम किया जाता है, लेकिन फिर भी यह ध्यान देने योग्य है:

v8: RenderScript (API 11 में शुरू किया गया) के लिए वापस API 8 को सपोर्ट प्रदान करता है

v13 : Fragment UI पैटर्न के लिए अतिरिक्त संगतता समर्थन प्रदान करता है और v4 लाइब्रेर को बंडल करता है

v17 : टीवी UI बनाने के लिए समर्थन प्रदान करता है

मुझे एंड्रॉइड सपोर्ट लाइब्रेरी का उपयोग कब करना चाहिए?

जब आपको विशिष्ट फ्रेमवर्क विशेषताओं की आवश्यकता होती है, तो आपको किसी एक समर्थन लाइब्रेरी का उपयोग करना चाहिए जो आपके ऐप के minSdkVersion की तुलना में नए हैं या जो मानक फ्रेमवर्क में उपलब्ध नहीं हैं।

और मैं इस ट्यूटोरियल को संदर्भित करता हूं


5

यह उत्तर समर्थन पुस्तकालयों के ग्राहकों के लिए प्रासंगिक है जो उनका संस्करण> = = 26.0.0 है:

सावधानी : समर्थन लाइब्रेरी रिलीज़ 26.0.0 (जुलाई 2017) से शुरू होकर, अधिकांश समर्थन पुस्तकालयों में न्यूनतम समर्थित एपीआई स्तर अधिकांश पुस्तकालय पैकेजों के लिए एंड्रॉइड 4.0 (एपीआई स्तर 14) तक बढ़ गया है।

उदाहरण के लिए, सपोर्ट-वी 4 और सपोर्ट-वी 7 पैकेज दोनों न्यूनतम एपीआई स्तर 14 का समर्थन करते हैं , 26.0.0 और उच्चतर से सपोर्ट लाइब्रेरी के रिलीज के लिए ।

अधिक जानकारी के लिए, समर्थन लाइब्रेरी - संस्करण सहायता और पैकेज नाम देखें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.