जवाबों:
इस साल के Google I / O (18), Google ने Jetpack की घोषणा की है जो डेवलपर के जीवन को आसान बनाने के लिए पुस्तकालयों का सेट / संग्रह है।
जेटपैक में पहले पेश किए गए एंड्रॉइड आर्किटेक्चर घटक (ViewModel, Room, Paging, LiveData आदि) के साथ-साथ WorkManager, नेविगेशन जैसे नए शुरू किए गए आर्किटेक्चर घटक शामिल हैं। इसके अलावा जेटपैक में एंड्रॉइड, एंड्रॉइडकेटीएक्स आदि जैसे पुस्तकालयों के अन्य सेट भी हैं।
AndroidX Android समर्थन पुस्तकालयों जैसे समर्थन, डेटाबाइंडिंग, डिज़ाइन आदि के लिए नया पैकेज संरचना है
जैसे अब वार्ड के डेवलपर androidx.databinding का उपयोग करेंगे। android.databinding के बजाय । हमारी परियोजनाओं में पुस्तकालयों का आयात करते समय
यह गूगल जोड़ने में सक्षम बनाता SemVer या सिमेंटिक संशोधन वहाँ पुस्तकालय संकुल में। डेवलपर्स के लिए, इसका मतलब है कि हमें सभी समर्थन पुस्तकालयों के लिए एक ही समर्थन लाइब्रेरी संस्करण का उपयोग करने की आवश्यकता नहीं है। AndroidX लाइब्रेरी कहने के लिए हर समर्थन या बेहतर अपने स्वयं के संस्करण को बनाए रखेगा।
डेवलपर्स के लिए एक और लाभ यह है कि हमें अपनी परियोजना में सभी समर्थन लाइब्रेरी के लिए एक ही संस्करण बनाए रखने की परवाह नहीं है।
Jetifier के बारे में, यह बिल्ड टाइम पर निर्भरता के सभी समर्थन पैकेज को परिवर्तित करता है। जेटिफायर के आधिकारिक प्रलेखन के अनुसार
जेटीफ़ायर टूल इसके बजाय समकक्ष AndroidX पैकेजों पर भरोसा करने के लिए समर्थन-पुस्तकालय-निर्भर पुस्तकालयों को माइग्रेट करता है। उपकरण आपको एंड्रॉइड स्टूडियो के साथ बंडल किए गए एंड्रॉइड ग्रेडल प्लगइन का उपयोग करने के बजाय सीधे एक व्यक्तिगत लाइब्रेरी को माइग्रेट करने देता है।
किसी प्रोजेक्ट में AndroidX का उपयोग करने के लिए हमें अपने प्रोजेक्ट के लिए 28 के लिए targetSdkVersion सेट करना होगा और gradle.properties फ़ाइल में 2 लाइनों को जोड़ना होगा ।
android.useAndroidX=true
android.enableJetifier=true
मुझे उम्मीद है कि यह आपकी क्वेरी का जवाब देगा।
संपादित करें
इस लिंक में उनके AndroidX काउंटर भाग के साथ सभी समर्थन पुस्तकालय घटक की मैपिंग है।
AndroidX के बारे में विस्तृत विवरण के लिए कृपया इस ब्लॉग को देखें
यह मानते हुए कि आप परिचित हैं AndroidX
। यदि नहीं, तो कृपया इस पोस्ट को देखें @ ।
Jetifier
support libraries
आपकी सभी निर्भरताओं कोAndroidX
स्वचालित रूप से परिवर्तित कर देगा , यदि आप इसे सेट नहीं करते हैं,true
तो आपकी परियोजना में दोनों होंगे, समर्थन ( 28.0.0 संस्करण के बाद पदावनत हो गया ) और AndroidX पैकेज, जो बेमानी है।
यदि आपके पास PhotoView.java
अपनी निर्भरता है। वह समर्थन पुस्तकालय का उपयोग करता है AppCompatImageView
।
import android.support.v7.widget.AppCompatImageView;
इस वर्ग को अब androidx
पैकेज में बदल दिया गया है, तो PhotoView
androidx कैसे मिलेगा AppCompatImageView
? और ऐप अभी भी डिवाइस में चलता है।
यह रन किसने बनाया?
जेटिफायर , जो बिल्ड टाइम पर निर्भरता के सभी समर्थन पैकेज को परिवर्तित करता है।
Jetifier प्रोजेक्ट android.support.v7.widget.AppCompatImageView
बनाते androidx.appcompat.widget.AppCompatImageView
समय परिवर्तित हो जाएगा ।
जब आप समर्थन लायब्रेरी से AndroidX पर माइग्रेट करते हैं, तो Jetifier को सक्षम करना महत्वपूर्ण है ।
AndroidX के बारे में अधिक समझने के लिए इस पोस्ट को देखें ।
निर्भरता कक्षाओं का उपयोग करते समय Jetifier को सक्षम करने के बाद आपका कोड संकलन समय त्रुटियों को दिखा सकता है। जो आप को हटाने के द्वारा निकाल सकते हैं .idea
, .gradle
और फिर से समन्वयन परियोजना।
Jetifier के लिए एक एंड्रॉयड परियोजना पलायन करने में मदद करता है AndroidX ।
Jetifier आपके AndroidX प्रोजेक्ट के साथ 3rd पार्टी लाइब्रेरी को संगत बनाने में मदद करता है ।
यदि आप अपने एंड्रॉइड प्रोजेक्ट में किसी भी 3 पार्टी लाइब्रेरी का उपयोग नहीं कर रहे हैं, तो आपको Jetifier का उपयोग करने की आवश्यकता नहीं है क्योंकि Jetifier केवल आपकी परियोजना के साथ "3rd पार्टी लाइब्रेरी" बनाने में मदद करता है, यदि आप AndroidX में माइग्रेट कर रहे हैं। तो अपने प्रोजेक्ट को Jetifier का उपयोग करने के लिए, आप gradle.properties में कोड के नीचे लिखें ।
android.enableJetifier=true
android.useAndroidX=true
यदि आप AndroidX पर नहीं जा रहे हैं और Android पुस्तकालयों (जैसे: com.android.support ) का उपयोग करने के पिछले तरीके का उपयोग कर रहे हैं , तो इन 3 पार्टी पुस्तकालयों को संगत बनाने की आवश्यकता नहीं है क्योंकि ये 3 पार्टी पुस्तकालय पहले से ही पिछले तरीके से संगत हैं Android पुस्तकालयों का उपयोग करना। उस स्थिति में, आपको Jetifier का उपयोग करने की आवश्यकता नहीं है, इसलिए अब, आपको ऊपर दी गई लाइनें लिखने की आवश्यकता नहीं है या आप androidx में जाने के लिए भविष्य में मूल्यों को बदलने के लिए नीचे लिख सकते हैं: -
android.enableJetifier=false
android.useAndroidX=false
Jetifier
Jetifier कि स्वचालित रूप से आपके माइग्रेट करती है एक आसान उपकरण है dependencies
करने के लिए AndroidX
का निर्माण समय में। इसके बिना, आपको माइग्रेट करने से पहले AndroidX संस्करण का उपयोग करने के लिए आपके द्वारा उपयोग की जाने वाली प्रत्येक निर्भरता की आवश्यकता होगी, और शायद कुछ समय के लिए ऐसा नहीं होगा।
नोट करने के लिए एक महत्वपूर्ण सीमा है: जेटिफायर केवल पैकेज्ड कलाकृतियों पर काम करता है। यह आपके स्रोत कोड पर काम नहीं करता है, जिससे आपको अपने आप को अपडेट करने की उम्मीद है
AndroidX को सक्षम करने के लिए, आपको अपनी gradle.properties
फ़ाइल में 2 ध्वज जोड़ने होंगे । पहला ध्वज एंड्रॉइड प्लगइन को AndroidX
इसके बजाय पैकेज का उपयोग करने के लिए कहता है AppCompat
, और दूसरा ध्वज सक्षम करेगा Jetifier
:
android.useAndroidX=true
android.enableJetifier=true
जब यह ध्वज सत्य पर सेट होता है, तो एंड्रॉइड प्लगइन स्वचालित रूप से अपने बायनेरिज़ को फिर से लिखकर AndroidX निर्भरता का उपयोग करने के लिए मौजूदा तीसरे पक्ष के पुस्तकालयों को स्थानांतरित कर देता है। यदि यह निर्दिष्ट नहीं है तो ध्वज डिफ़ॉल्ट रूप से गलत है।
यह अनुकूलता के लिए उपयोगी है। जब कोई कंज्यूमर उपयोग करता है androidX
और कोई प्रोड्यूसर उपयोग करता है support
। उदाहरण के लिए जब आपका प्रोजेक्ट AndroidX
निर्भरता का उपयोग करना चाहता है जो [उदाहरण] केsupport library
बजाय उपयोग करता हैAndroidX
इन दो पंक्तियों को जोड़ें android.useAndroidX = true
android.enableJetifier सच =
में buid.gradle यह मेरे लिए काम किया
implementation "com.commonsware.cwac:document:0.3.0"
हैdependencies
। उस लाइब्रेरी संस्करण पर एक सकरात्मक निर्भरता हैcom.android.support:support-annotations:27.0.2
। हालाँकि, आपandroidx.annotation:annotation
अन्य AndroidX निर्भरता के उपयोग के भाग के रूप में उपयोग करना चाहते हैं । Jetifier किसी तरहcom.commonsware.cwac:document
उपयोग के लिए अद्यतन करेगाandroidx.annotation:annotation
।