मोबाइल डेवलपर के तौर पर, अक्सर अपने ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) को एक साथ बनाने के बजाय, उसे चरण दर चरण बनाया जाता है. Android Studio, Jetpack Compose के साथ इस अप्रोच का इस्तेमाल करता है. इसके लिए, यह ऐसे टूल उपलब्ध कराता है जिनकी मदद से, पूरी तरह से बनाए गए ऐप्लिकेशन की जांच करने, वैल्यू में बदलाव करने, और फ़ाइनल नतीजे की पुष्टि करने के लिए, पूरे ऐप्लिकेशन को फिर से बनाने की ज़रूरत नहीं होती.
लाइव एडिट
लाइव एडिट एक ऐसी सुविधा है जिसकी मदद से, एम्युलेटर और फ़िज़िकल डिवाइसों में कंपोज़ेबल को रीयल टाइम में अपडेट किया जा सकता है. इस सुविधा से, ऐप्लिकेशन बनाने और कोडिंग करने के बीच कॉन्टेक्स्ट स्विच करने की ज़रूरत कम हो जाती है. इससे आपको बिना किसी रुकावट के ज़्यादा देर तक कोडिंग करने में मदद मिलती है.
लाइव बदलाव करने की सुविधा में तीन मोड होते हैं:
- मैन्युअल: कोड में किए गए बदलाव तब लागू होते हैं, जब उन्हें मैन्युअल तरीके से पुश किया जाता है. इसके लिए, Control+' (macOS पर Command+') का इस्तेमाल करें
- सेव करने पर मैन्युअल: कोड में किए गए बदलाव तब लागू होते हैं, जब उन्हें Control+S (macOS पर Command+S) का इस्तेमाल करके मैन्युअल तरीके से सेव किया जाता है.
- अपने-आप: कंपोज़ेबल फ़ंक्शन को अपडेट करने पर, आपके डिवाइस या एम्युलेटर में बदलाव लागू हो जाते हैं.
लाइव एडिट की सुविधा, यूज़र इंटरफ़ेस (यूआई) और उपयोगकर्ता अनुभव (यूएक्स) से जुड़े कोड में किए गए बदलावों पर फ़ोकस करती है. लाइव एडिट की सुविधा, इन बदलावों के साथ काम नहीं करती: मेथड सिग्नेचर अपडेट करना, नए तरीके जोड़ना या क्लास के क्रम में बदलाव करना. ज़्यादा जानकारी के लिए, लाइव एडिटिंग की सुविधाओं से जुड़ी पाबंदियां देखें.
यह सुविधा, ऐप्लिकेशन बनाने और उसे चलाने या बदलाव लागू करें की जगह इस्तेमाल नहीं की जा सकती. इसके बजाय, इसे Compose UI बनाने, डिप्लॉय करने, और उसे बेहतर बनाने के दौरान आपके वर्कफ़्लो को ऑप्टिमाइज़ करने के लिए डिज़ाइन किया गया है.
सबसे सही तरीके से काम करने का तरीका यहां दिया गया है:
- अपने ऐप्लिकेशन को सेट अप करें, ताकि उसे चलाया जा सके.
- जब तक हो सके, लाइव एडिट का इस्तेमाल करें. ऐसा तब तक करें, जब तक आपको कोई ऐसा बदलाव न करना हो जिसे लाइव एडिट की सुविधा के साथ नहीं किया जा सकता. जैसे, ऐप्लिकेशन के चालू होने के दौरान नए तरीके जोड़ना.
- ऐसे बदलाव करने के बाद जो काम नहीं करते, चलाएं
पर क्लिक करके, अपने ऐप्लिकेशन को फिर से शुरू करें और लाइव बदलाव करने की सुविधा फिर से चालू करें.
लाइव बदलाव करने की सुविधा का इस्तेमाल शुरू करना
शुरू करने के लिए, इन चरणों का पालन करके एक खाली Compose Activity बनाएं. इसके बाद, अपने प्रोजेक्ट के लिए Live Edit की सुविधा चालू करें और Live Edit की मदद से बदलाव करें.
नया प्रोजेक्ट सेट अप करना
शुरू करने से पहले, पक्का करें कि आपने Android Studio Giraffe या उसके बाद का वर्शन इंस्टॉल किया हो. साथ ही, आपके फ़िज़िकल डिवाइस या एम्युलेटर का एपीआई लेवल कम से कम 30 हो.
Android Studio खोलें. इसके बाद, Android Studio में आपका स्वागत है डायलॉग में जाकर, नया प्रोजेक्ट चुनें. अगर आपने पहले से ही कोई प्रोजेक्ट खोला हुआ है, तो फ़ाइल > नया > नया प्रोजेक्ट पर जाकर, नया प्रोजेक्ट बनाया जा सकता है.
फ़ोन और टैबलेट के लिए, बिना कंपोज़ ऐक्टिविटी वाला टेंप्लेट चुनें. इसके बाद, आगे बढ़ें पर क्लिक करें.
पहली इमेज. इनमें से कोई भी टेंप्लेट चुना जा सकता है. लाइव बदलाव करने के लिए, Empty Compose Activity चुनें. नया प्रोजेक्ट डायलॉग बॉक्स में ज़रूरी जानकारी डालें: नाम, पैकेज का नाम, सेव करने की जगह, एसडीके का कम से कम वर्शन, और बिल्ड कॉन्फ़िगरेशन की भाषा.
दूसरी इमेज. प्रोजेक्ट सेटिंग का उदाहरण. पूरा करें पर क्लिक करें.
लाइव एडिट की सुविधा चालू करना
लाइव बदलाव करने की सुविधा चालू करने के लिए, सेटिंग पर जाएं.
- Windows या Linux पर, फ़ाइल > सेटिंग > एडिटर > लाइव बदलाव पर जाएं.
- macOS पर, Android Studio > Settings > Editor > Live Edit पर जाएं.
लाइव बदलाव करें विकल्प चुनें. इसके बाद, सेटिंग में जाकर वह मोड चुनें जिसमें आपको बदलाव करने हैं.
मैन्युअल मोड में, Control+' (macOS पर Command+') दबाने पर, आपके कोड में किए गए बदलावों को हर बार पुश किया जाता है. सेव करने के मैन्युअल मोड में, आपके कोड में किए गए बदलाव तब लागू होते हैं, जब उन्हें मैन्युअल तरीके से सेव किया जाता है. इसके लिए, Control+S (macOS पर Command+S) का इस्तेमाल करें. ऑटोमैटिक मोड में, कोड में किए गए बदलाव आपके डिवाइस या एम्युलेटर में लागू हो जाते हैं.
तीसरी इमेज. लाइव स्ट्रीम के दौरान बदलाव करने की सेटिंग. एडिटर में,
MainActivityफ़ाइल खोलें. यह आपके ऐप्लिकेशन का एंट्री पॉइंट है.अपने ऐप्लिकेशन को डिप्लॉय करने के लिए, चलाएं
पर क्लिक करें.लाइव बदलाव करने की सुविधा चालू करने के बाद, अप-टू-डेट हरे रंग का सही का निशान, डिवाइसों पर चल रहा है टूल विंडो में सबसे ऊपर दाईं ओर दिखता है:

बदलाव करना और उनकी समीक्षा करना
एडिटर में बदलाव करने पर, वर्चुअल या फ़िज़िकल टेस्ट डिवाइस अपने-आप अपडेट हो जाता है.
उदाहरण के लिए, MainActivity में मौजूद Greeting तरीके में बदलाव करके, इसे यहां दिए गए तरीके में बदलें:
@Composable fun Greeting(name: String) { Text( text = "Hello $name!", Modifier .padding(80.dp) // Outer padding; outside background .background(color = Color.Cyan) // Solid element background color .padding(16.dp) // Inner padding; inside background, around text) ) }
आपके बदलाव, टेस्ट डिवाइस पर तुरंत दिखते हैं. जैसा कि इमेज 4 में दिखाया गया है.
Greeting तरीके में लाइव एडिट की सुविधा का इस्तेमाल करके किए गए बदलाव दिखाए जा रहे हैं.लाइव एडिट की सुविधा से जुड़ी समस्या हल करना
अगर आपको टेस्ट डिवाइस पर किए गए बदलाव नहीं दिखते हैं, तो हो सकता है कि Android Studio आपके बदलावों को अपडेट न कर पाया हो. देखें कि लाइव बदलाव करने की सुविधा के इंडिकेटर में, फ़िगर 5 में दिखाए गए तरीके से पुराना हो गया है लिखा हो. इससे पता चलता है कि कंपाइल करने में गड़बड़ी हुई है. गड़बड़ी के बारे में जानकारी पाने और उसे ठीक करने के सुझाव पाने के लिए, इंडिकेटर पर क्लिक करें.
लाइव एडिट की सुविधा से जुड़ी सीमाएं
यहां मौजूदा सीमाओं की सूची दी गई है.
[यह सिर्फ़ Android Studio Giraffe और इसके बाद के वर्शन पर लागू होता है] लाइव एडिट के लिए, Compose Runtime 1.3.0 या इसके बाद का वर्शन होना ज़रूरी है. अगर आपके प्रोजेक्ट में Compose के पुराने वर्शन का इस्तेमाल किया जा रहा है, तो लाइव एडिट की सुविधा काम नहीं करेगी.
[यह सिर्फ़ Android Studio Giraffe और इसके बाद के वर्शन पर लागू होता है] लाइव एडिट के लिए, AGP 8.1.0-alpha05 या इसके बाद का वर्शन होना ज़रूरी है. अगर आपके प्रोजेक्ट में AGP के पुराने वर्शन का इस्तेमाल किया जा रहा है, तो लाइव एडिट की सुविधा काम नहीं करेगी.
लाइव बदलाव करने की सुविधा के लिए, किसी ऐसे डिवाइस या एम्युलेटर की ज़रूरत होती है जिस पर एपीआई लेवल 30 या उसके बाद का वर्शन चल रहा हो.
लाइव बदलाव करने की सुविधा सिर्फ़ फ़ंक्शन के मुख्य हिस्से में बदलाव करने की अनुमति देती है. इसका मतलब है कि फ़ंक्शन का नाम या सिग्नेचर नहीं बदला जा सकता. साथ ही, फ़ंक्शन जोड़ा या हटाया नहीं जा सकता. इसके अलावा, फ़ंक्शन से जुड़े नहीं हुए फ़ील्ड में भी बदलाव नहीं किया जा सकता.
लाइव एडिट की सुविधा, किसी फ़ाइल में Compose फ़ंक्शन में पहली बार बदलाव करने पर, ऐप्लिकेशन की स्थिति को रीसेट कर देती है. ऐसा सिर्फ़ कोड में पहली बार बदलाव करने के बाद होता है. इसके बाद, उस फ़ाइल में Compose फ़ंक्शन के कोड में किए गए बदलावों से ऐप्लिकेशन की स्थिति रीसेट नहीं होती.
लाइव बदलाव की सुविधा का इस्तेमाल करके बदली गई क्लास की परफ़ॉर्मेंस पर कुछ असर पड़ सकता है. अपने ऐप्लिकेशन को चलाएं और अगर आपको उसकी परफ़ॉर्मेंस का आकलन करना है, तो रिलीज़ बिल्ड का इस्तेमाल करें.
लाइव एडिट की सुविधा का इस्तेमाल करके बदली गई क्लास पर डीबगर को चलाने के लिए, आपको पूरा रन करना होगा.
लाइव एडिट की सुविधा का इस्तेमाल करके, किसी ऐप्लिकेशन में बदलाव करने पर वह क्रैश हो सकता है. अगर ऐसा होता है, तो चलाएं
बटन की मदद से, ऐप्लिकेशन को फिर से डिप्लॉय किया जा सकता है.लाइव एडिट, आपके प्रोजेक्ट की बिल्ड फ़ाइल में तय किए गए किसी भी बाइटकोड में बदलाव नहीं करता. उदाहरण के लिए, बाइटकोड में ऐसा बदलाव जो बिल्ड मेन्यू में मौजूद विकल्पों का इस्तेमाल करके या बिल्ड या चलाएं बटन पर क्लिक करके प्रोजेक्ट को बिल्ड करते समय लागू किया जाता है.
नॉन-कंपोज़ेबल फ़ंक्शन, डिवाइस या एम्युलेटर पर लाइव अपडेट किए जाते हैं. साथ ही, पूरा रीकंपोज़िशन ट्रिगर होता है. ऐसा हो सकता है कि पूरी तरह से फिर से कंपोज़ करने पर, अपडेट किया गया फ़ंक्शन लागू न हो. कंपोज़ नहीं किए जा सकने वाले फ़ंक्शन के लिए, आपको नए अपडेट किए गए फ़ंक्शन को ट्रिगर करना होगा या ऐप्लिकेशन को फिर से चलाना होगा.
ऐप्लिकेशन को रीस्टार्ट करने पर, लाइव एडिटिंग की सुविधा फिर से शुरू नहीं होती है. आपको ऐप्लिकेशन को फिर से चलाना होगा.
लाइव बदलाव करने की सुविधा सिर्फ़ डीबग की जा सकने वाली प्रोसेस के साथ काम करती है.
लाइव एडिट की सुविधा, उन प्रोजेक्ट के साथ काम नहीं करती है जिनमें बिल्ड कॉन्फ़िगरेशन में
kotlinOptionsके तहतmoduleNameके लिए कस्टम वैल्यू का इस्तेमाल किया जाता है.लाइव बदलाव करने की सुविधा, एक से ज़्यादा डिप्लॉयमेंट के साथ काम नहीं करती. इसका मतलब है कि एक डिवाइस पर ऐप्लिकेशन डिप्लॉय करने के बाद, उसे दूसरे डिवाइस पर डिप्लॉय नहीं किया जा सकता. लाइव बदलाव करने की सुविधा, सिर्फ़ उन डिवाइसों पर काम करती है जिन पर ऐप्लिकेशन को हाल ही में डिप्लॉय किया गया था.
लाइव बदलाव करने की सुविधा, एक से ज़्यादा डिवाइसों पर ऐप्लिकेशन डिप्लॉय करने की सुविधा के साथ काम करती है. इसका मतलब है कि यह सुविधा, उन डिवाइसों पर ऐप्लिकेशन डिप्लॉय करने के लिए काम करती है जिन्हें टारगेट डिवाइस के ड्रॉपडाउन में एक से ज़्यादा डिवाइस चुनें विकल्प के ज़रिए चुना गया था. हालांकि, यह आधिकारिक तौर पर उपलब्ध नहीं है और इसमें समस्याएं आ सकती हैं. अगर आपको समस्याएं आ रही हैं, तो कृपया उनकी शिकायत करें.
बदलाव लागू करें/कोड में किए गए बदलाव लागू करें, लाइव एडिट के साथ काम नहीं करते. इसके लिए, ऐप्लिकेशन को रीस्टार्ट करना ज़रूरी है.
फ़िलहाल, लाइव एडिट की सुविधा Android Automotive प्रोजेक्ट के साथ काम नहीं करती.
लाइव बदलाव करने की सुविधा के बारे में अक्सर पूछे जाने वाले सवाल
लाइव एडिटिंग की सुविधा का मौजूदा स्टेटस क्या है?
लाइव एडिट की सुविधा, Android Studio Giraffe में उपलब्ध है. इसे चालू करने के लिए, फ़ाइल > सेटिंग > एडिटर > लाइव एडिट पर जाएं (macOS पर Android Studio > सेटिंग > एडिटर > लाइव एडिट पर जाएं).
मुझे लाइव एडिटिंग की सुविधा का इस्तेमाल कब करना चाहिए?
अगर आपको यूज़र एक्सपीरियंस (यूएक्स) के एलिमेंट (जैसे, मॉडिफ़ायर अपडेट और ऐनिमेशन) में किए गए अपडेट का असर, पूरे ऐप्लिकेशन के अनुभव पर तुरंत देखना है, तो लाइव एडिट की सुविधा का इस्तेमाल करें.
मुझे लाइव एडिटिंग की सुविधा का इस्तेमाल कब नहीं करना चाहिए?
लाइव एडिट की सुविधा, यूज़र इंटरफ़ेस (यूआई) और उपयोगकर्ता अनुभव (यूएक्स) से जुड़े कोड में किए गए बदलावों पर फ़ोकस करती है. यह इन बदलावों के साथ काम नहीं करता: मेथड सिग्नेचर अपडेट करना, नई मेथड जोड़ना या क्लास के क्रम में बदलाव करना. ज़्यादा जानकारी के लिए, लाइव एडिटिंग की सीमाएं लेख पढ़ें.
मुझे कंपोज़ प्रीव्यू का इस्तेमाल कब करना चाहिए?
अलग-अलग कंपोज़ेबल डेवलप करते समय, कंपोज़ प्रीव्यू का इस्तेमाल करें. झलक में, Compose एलिमेंट दिखते हैं. साथ ही, कोड में किए गए बदलावों का असर दिखाने के लिए, यह अपने-आप रीफ़्रेश हो जाती है. पूर्वावलोकन में, यूज़र इंटरफ़ेस (यूआई) एलिमेंट को अलग-अलग कॉन्फ़िगरेशन और स्थितियों में देखने की सुविधा भी मिलती है. जैसे, गहरे रंग वाली थीम, स्थान-भाषाएं, और फ़ॉन्ट स्केल.
Compose के साथ इटरेटिव कोड डेवलपमेंट
Compose Multiplatform के लिए लाइव एडिट और हॉट रिलोड ऐसी सुविधाएं हैं जो Compose का इस्तेमाल करके ऐप्लिकेशन डेवलप करते समय आपका समय बचा सकती हैं और आपकी प्रॉडक्टिविटी बढ़ा सकती हैं. हालांकि, ये अलग-अलग तरह के डेवलपमेंट की ज़रूरतों को पूरा करते हैं:
लाइव एडिट की सुविधा, Android ऐप्लिकेशन के लिए Jetpack Compose के साथ, बार-बार डेवलपमेंट करने में मदद करती है. इसकी मदद से, एम्युलेटर और फ़िज़िकल डिवाइसों में कंपोज़ेबल को रीयल टाइम में अपडेट किया जा सकता है. इस सुविधा की मदद से, ऐप्लिकेशन बनाने और कोड लिखने के बीच कॉन्टेक्स्ट स्विच करने की ज़रूरत कम हो जाती है. इससे आपको बिना किसी रुकावट के ज़्यादा देर तक कोड लिखने पर ध्यान देने में मदद मिलती है.
Compose Hot Reload भी इसी तरह काम करता है. हालांकि, यह Compose Multiplatform से बनाए गए डेस्कटॉप ऐप्लिकेशन के साथ काम करता है. इसकी मदद से, Compose Multiplatform ऐप्लिकेशन में यूज़र इंटरफ़ेस (यूआई) कोड में बदलाव किए जा सकते हैं. साथ ही, जब भी कोड में बदलाव किया जाता है, तो उसे स्मार्ट तरीके से फिर से लोड करके, रीयल टाइम में नतीजे देखे जा सकते हैं.
इन दोनों सुविधाओं में, Compose इंजन की कई टेक्नोलॉजी इस्तेमाल की जाती हैं. साथ ही, ये एक जैसे कई इस्तेमाल के उदाहरणों के साथ काम करती हैं. हालांकि, इनमें एक जैसी सुविधाएं नहीं होतीं, क्योंकि ये Compose डेवलपमेंट के अलग-अलग टाइप पर लागू होती हैं.
अगर आपको कोई Android ऐप्लिकेशन डेवलप करना है, तो डेवलपमेंट की प्रोसेस को तेज़ करने के लिए, लाइव एडिट सुविधा का इस्तेमाल करें. अगर Compose Multiplatform का इस्तेमाल करके डेस्कटॉप ऐप्लिकेशन बनाया जा रहा है, तो आपको Compose Hot Reload का इस्तेमाल करना चाहिए.
लिटरल में लाइव बदलाव करने की सुविधा (अब काम नहीं करती)
Android Studio, प्रीव्यू, एम्युलेटर, और फ़िज़िकल डिवाइस में इस्तेमाल किए गए कुछ कॉन्स्टेंट लिटरल को रीयल टाइम में अपडेट कर सकता है. यहां कुछ ऐसे टाइप दिए गए हैं जिनके लिए यह सुविधा काम करती है:
IntStringColorDpBoolean
लाइव एडिट ऑफ़ लिटरल यूज़र इंटरफ़ेस (यूआई) इंडिकेटर के ज़रिए लिटरल डेकोरेशन चालू करके, ऐसे कॉन्स्टेंट लिटरल देखे जा सकते हैं जो कंपाइल किए बिना रीयल टाइम में अपडेट होते हैं:
बदलाव लागू करें
बदलाव लागू करें सुविधा की मदद से, कोड और संसाधनों को अपडेट किया जा सकता है. इसके लिए, आपको अपने ऐप्लिकेशन को एम्युलेटर या फ़िज़िकल डिवाइस पर फिर से डिप्लॉय करने की ज़रूरत नहीं होती. हालांकि, इस सुविधा के इस्तेमाल से जुड़ी कुछ सीमाएं हैं.
कंपोज़ेबल जोड़ने, उनमें बदलाव करने या उन्हें मिटाने पर, कोड में किए गए बदलाव लागू करें बटन पर क्लिक करके, ऐप्लिकेशन को फिर से डिप्लॉय किए बिना अपडेट किया जा सकता है:

आपके लिए सुझाव
- ध्यान दें: JavaScript बंद होने पर लिंक टेक्स्ट दिखता है
- ऐनिमेशन को पसंद के मुताबिक बनाना {:#customize-animations}
- वैल्यू के आधार पर ऐनिमेशन