2012-03-29 11 views
31

मैं सिर्फ एंड्रॉयड सहायता पैकेज/संगतता लाइब्रेरी के इस विवरण पढ़ा है ...एंड्रॉइड सपोर्ट पैकेज/संगतता लाइब्रेरी - v4 या v13 का उपयोग करें?

http://developer.android.com/sdk/compatibility-library.html

... और यह मुझे थोड़ा भ्रमित छोड़ दिया है! यह कहता है कि v13 लाइब्रेरी v4 का सुपरसेट है लेकिन मैंने सोचा कि यह दूसरी तरफ था?

व्यावहारिक हो रहा है: यदि मैं संगतता लाइब्रेरी का उपयोग करना चाहता हूं जैसे कि मेरा ऐप एंड्रॉइड 2.2 (एपीआई 8) से 4.0 (एपीआई 8) और उससे आगे के फोन के लिए ठीक काम करता है, तो v4 मेरे लिए पर्याप्त होगा?

उत्तर

35

एपीआई 8 (v2.2) को लक्षित करने के लिए आप v4 संस्करण का उपयोग करना चाहिए।

v13 के बड़े वर्गों काम करेंगे, लेकिन अगर आपको लगता है कि मंच 13 एपीआई पर भरोसा करते हैं उस में सुविधाओं के किसी भी उपयोग करके आपके एप्लिकेशन पुराने उपकरणों पर उड़ा देगा।

वहाँ एक विशेष रूप से सम्मोहक v13 जरूरत के लिए कारण नहीं है जब तक, मैं v4 के लिए सीधे जा रहा सुझाव देना चाहेंगे।

+0

स्पष्ट करने के लिए: मैं "8" के रूप में "14" और 'minSdkVersion' 'targetSdkVersion' को निर्दिष्ट कर रहा हूँ मेरी प्रकट में। तो v4 अभी भी एक है जिसे मैं सही चाहता हूं? –

+2

यदि आप v13 का उपयोग करते हैं, और आप इसमें एक सुविधा का उपयोग करते हैं जो प्लेटफार्म 13 एपीआई पर निर्भर करता है, तो आपका ऐप उड़ाएगा। सिर्फ इसलिए कि यह संकलित करता है, इसका मतलब यह नहीं है कि यह सभी उपकरणों पर काम करेगा। –

+0

मुझे अभी भी समझ में नहीं आता है कि v13 को 13+ डिवाइसों की आवश्यकता है क्यों यह v4 का सुपरसेट है ... – Olivier

9

उत्तर सही है लेकिन थोड़ा उलझन में भी है! वर्तमान में 3 समर्थन जार हैं: वी 4, वी 7 और वी 13। दुर्भाग्यवश वी 7 विशेष रूप से केवल ग्रिडलेआउट के लिए है और इसलिए सुपरसैट नहीं है।

हम समर्थन पुस्तकालय से केवल एक जार में रुचि रखते हैं [जब तक हम भी gridlayout चाहते हैं (मैं नहीं पता है कि यह क्या है!)]। इसलिए हम अपने एंड्रॉइड को देख रहे हैं: minSdkVersion = "8" और जार के खिलाफ इसे जांचना। तो हम वी 4 चाहते हैं।

V13 अर्थ में केवल एक सुपरसेट है कि यह V4 तरीकों, नहीं कोड डुप्लिकेट है। अर्थात। इस उदाहरण में वी 13 का उपयोग गलत होगा।

5

मुझे नहीं लगता कि हम इन तीन पुस्तकालयों (v4, v7, v13) का वर्णन करने के सुपरसेट (या सबसेट) का उपयोग करना चाहिए, हालांकि सरल अर्थ लगता है पिछड़े संगत संस्करण 4, 7 और 13

गूगल जोड़ा पहले v4 में फ्रैगमेंट, फिर प्रत्येक नए संस्करण को प्रकाशित होने पर इसे अपडेट करें। इसका मतलब है कि जब तक आपका ऐप केवल नवीनतम संस्करण का समर्थन नहीं करता है (जिसे दृढ़ता से अनुशंसित नहीं किया जाता है), हम को लगभग किसी भी समय समर्थन-v4 की आवश्यकता है। मान लें कि आपका minsdk 14 है जिसमें खंड है पहले से ही, लेकिन 'एम्बेडेड खंड' 17 के बाद केवल समर्थन है, इसलिए हमें अभी भी v4 की आवश्यकता है और उस स्थिति में v4 खंड का उपयोग करें।

इस वर्ष (2013) Google ने प्रकाशित v7, और इसमें एपकोम्पेट-लाइब्रेरी जोड़ा। इसका मतलब है कि तीसरे समर्थन के अलावा एक्शनबार (एक्शनबार शेरलॉक) 11 से पहले, ऑफिकल समर्थन शायद बेहतर One ?? तब मेरा मानना ​​है कि हमारे पास प्रत्येक एक्शनबार सुविधा अपडेट होगा जब भविष्य में प्रत्येक नए संस्करण को v7 में प्रकाशित किया जाएगा।

हम अभी भी = XX today (Nov.24,2013) (7 और 10 के बीच) हम टुकड़ा और समर्थन-v7 के लिए ActionBar दोनों के लिए सबसे अच्छा अभ्यास के लिए जोड़ना चाहिए समर्थन-v4 minsdk की जरूरत है।

+0

आपका उत्तर बहुत अच्छी तरह से बताता है कि इन पुस्तकालयों के बीच कोई सबसेट सुपरसैट संबंध नहीं है जो अधिकांश लोगों का मानना ​​है। – thedarkpassenger

0

v13 सिर्फ टुकड़ा के बारे में कार्य हैं। अधिकतर यदि आपका मिनवर्सन 13 से ऊपर है और फ़ंक्शंसपेगर एडाप्टर, FragmentStatePagerAdapter, FragmentTabHost, और नेस्टेड टुकड़े जैसे फ़ंक्शंस का उपयोग नहीं किया जाता है; आपको समर्थन v13 की आवश्यकता नहीं है।

तो "v4 v13 का सबसेट है" गलत है!

1

मैंने v13 के स्रोत कोड की जांच की, इसमें केवल 4 और वर्ग जोड़े गए।

  • FragmentCompat
  • FragmentPagerAdapter
  • FragmentStatePagerAdapter
  • FragmentTabHost

FragmentCompat 2 स्थिर util तरीकों जो v4 टुकड़ा में पहले से ही शामिल किए गए हैं कहते हैं।

FragmentPagerAdapter, FragmentStatePagerAdapter और FragmentTabHost, इन सभी 3 वर्गों में v4 में समान नाम कक्षाएं हैं, और समान व्यवहार है।

v13 में प्रदान किए गए अतिरिक्त API आवश्यक नहीं हैं।

तो v4 जोड़कर, आप v13 के साथ समान व्यवहार के साथ v13 की तुलना में अधिक प्लेटफॉर्म का समर्थन कर सकते हैं, तो क्यों न केवल v4 का उपयोग करें?

तो मुझे v13 के लिए कोई निरंतरता दिखाई नहीं दे सका। क्या मैं सही हूँ?

0

थोड़ा देर हो चुकी है लेकिन कृपया नीचे दी गई तस्वीर पर एक अच्छा नज़र डालें। JAR फ़ाइल android-समर्थन-v13.jar में, वहाँ 3 संकुल हैं:

  • एनोटेशन
  • v4
  • v13

मतलब हम सिर्फ इस एक जार जोड़ने की जरूरत है, और हम दोनों v4 और v13 के लिए समर्थन होगा। चूंकि v7 संकलन में नहीं है, इसलिए हमें उस JAR को अपने आप जोड़ना होगा।

enter image description here

संबंधित मुद्दे