Cuttlefish, कॉन्फ़िगर किया जा सकने वाला वर्चुअल Android डिवाइस है. इसे रिमोट तौर पर (Google Cloud Engine जैसे तीसरे पक्ष के क्लाउड ऑफ़र का इस्तेमाल करके) और स्थानीय तौर पर (Linux x86 और ARM64 मशीनों पर) चलाया जा सकता है.
कटलफ़िश के लक्ष्य
- कोड में बदलाव करने और उनकी पुष्टि करने के लिए, प्लैटफ़ॉर्म और ऐप्लिकेशन डेवलपर को फ़िज़िकल हार्डवेयर पर निर्भर होने से मुक्त करना.
- हाई फ़िडेलिटी पर फ़ोकस करके, किसी असल डिवाइस के फ़्रेमवर्क के आधार पर काम करने के तरीके को दोहराएं. इसके लिए, मुख्य फ़्रेमवर्क के साथ मिलकर काम करें.
- यह 28 के बाद के सभी एपीआई लेवल के साथ काम करता है.
- एपीआई के सभी लेवल पर, फ़ंक्शन के एक जैसे लेवल उपलब्ध कराएं. साथ ही, इन फ़ंक्शन को फ़िज़िकल हार्डवेयर के व्यवहार के हिसाब से अलाइन करें.
स्केल चालू करें:
- एक साथ कई डिवाइसों पर चलाने की सुविधा दें.
- कम लागत पर, बेहतर क्वालिटी के साथ एक साथ कई टेस्ट चलाने की सुविधा चालू करें.
कॉन्फ़िगर किया जा सकने वाला ऐसा डिवाइस उपलब्ध कराएं जिसमें डिवाइस के नाप या आकार, रैम, सीपीयू वगैरह को अडजस्ट करने की सुविधा हो.
Cuttlefish को अन्य डिवाइसों से तुलना करना
Cuttlefish और Android एम्युलेटर
Android एमुलेटर से इसकी कई चीज़ें मिलती-जुलती हैं. हालांकि, Cuttlefish, Android फ़्रेमवर्क के साथ पूरी तरह से काम करता है. भले ही, यह पूरी तरह से AOSP हो या आपके अपने ट्री में कस्टम तरीके से लागू किया गया हो. इसका मतलब है कि आपको Cuttlefish से, ओएस लेवल पर आपके इंटरैक्शन का जवाब मिल सकता है. ठीक उसी तरह जैसे, पसंद के मुताबिक बनाए गए या ओरिजनल Android OS सोर्स के साथ बनाए गए फ़िज़िकल फ़ोन टारगेट से जवाब मिलता है.
Android Emulator को ऐप्लिकेशन डेवलप करने की प्रक्रिया को आसान बनाने के लिए इस्तेमाल के उदाहरण के साथ बनाया गया है. इसमें Android ऐप्लिकेशन डेवलपर के उपयोग के उदाहरणों की ओर से अपील करने के लिए कई फ़ंक्शनल हुक मौजूद हैं. अगर आपको अपनी पसंद के मुताबिक बनाए गए Android फ़्रेमवर्क के साथ एम्युलेटर बनाना है, तो आपको चुनौतियां दिख सकती हैं. अगर आपको ऐसा वर्चुअल डिवाइस चाहिए जो आपके कस्टम प्लैटफ़ॉर्म/फ़्रेमवर्क कोड या टिप-ऑफ़-ट्री Android को दिखाए, तो Cuttlefish एक बेहतरीन वर्चुअल विकल्प है. यह एओएसपी डेवलपमेंट की मौजूदा स्थिति को दिखाने के लिए एक कैननिकल डिवाइस है.
कटलफ़िश और फ़िज़िकल डिवाइस
Cuttlefish वर्चुअल डिवाइस और आपके फ़िज़िकल डिवाइस के बीच मुख्य फ़र्क़, हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) लेवल पर होता है. साथ ही, यह फ़र्क़ कस्टम हार्डवेयर के साथ इंटरैक्ट करने वाले किसी भी सॉफ़्टवेयर में भी होता है. हार्डवेयर के हिसाब से लागू किए गए तरीकों को छोड़कर, आपको Cuttlefish और किसी फ़िज़िकल डिवाइस के बीच काम करने के तरीके में कोई अंतर नहीं दिखेगा.
कटलफ़िश कैसे मदद कर सकती है?
Cuttlefish के साथ इंटरैक्ट करने का तरीका, किसी भी ऐसे Android डिवाइस के साथ इंटरैक्ट करने के तरीके जैसा ही है जिसका इस्तेमाल डीबग करने के लिए किया जा सकता है. यह adb की मदद से किसी सामान्य डिवाइस की तरह रजिस्टर होगा और इसे रिमोट डेस्कटॉप की मदद से किसी फ़िज़िकल डिवाइस की तरह इस्तेमाल किया जा सकेगा. इस्तेमाल के उदाहरणों की संख्या ज़्यादा है. इनमें ऐप्लिकेशन टेस्टिंग, कस्टम सिस्टम के लिए बने टेस्ट वगैरह शामिल हैं.
Cuttlefish, फ़्रेमवर्क के साथ पूरी तरह से काम करने की कोशिश करता है. इसलिए, इसका इस्तेमाल आपके फ़्रेमवर्क या ऐप्लिकेशन की फ़ंक्शनल टेस्टिंग के लिए किया जा सकता है. हालांकि, इसके लिए ज़रूरी है कि ऐप्लिकेशन में ऐसी कोई भी हार्डवेयर डिपेंडेंसी न हो जिसे एमुलेट नहीं किया जा सकता.
आजकल टेस्टिंग के लिए कटलफ़िश का इस्तेमाल कैसे किया जाता है?
टेस्टिंग के लिए, Cuttlefish के कुछ सामान्य ऐप्लिकेशन में ये शामिल हैं:
- सीटीएस
- फ़्रेमवर्क का पालन करना
- लगातार इंटिग्रेशन टेस्टिंग
- कस्टम टेस्ट सुइट
क्या Cuttlefish को क्लाउड पर होस्ट किया जा सकता है?
हां, Cuttlefish, Google Cloud के साथ काम करता है. साथ ही, अन्य क्लाउड प्लैटफ़ॉर्म के साथ काम करने की सुविधा पर काम किया जा रहा है.
शुरू करें
AOSP पर आधारित Cuttlefish इंस्टेंस बनाने के बारे में जानने के लिए, Cuttlefish का इस्तेमाल करना लेख पढ़ें.