Cuttlefish वर्चुअल Android डिवाइस

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 एक बेहतरीन वर्चुअल विकल्प है. यह AOSP डेवलपमेंट की मौजूदा स्थिति को दिखाने के लिए, कैननिकल डिवाइस है.

कटलफ़िश और फ़िज़िकल डिवाइस

Cuttlefish वर्चुअल डिवाइस और आपके फ़िज़िकल डिवाइस के बीच मुख्य फ़र्क़, हार्डवेयर एब्स्ट्रैक्शन लेयर (एचएएल) लेवल पर होता है. साथ ही, यह फ़र्क़ कस्टम हार्डवेयर के साथ इंटरैक्ट करने वाले किसी भी सॉफ़्टवेयर में भी होता है. हार्डवेयर के हिसाब से लागू किए गए तरीकों को छोड़कर, आपको Cuttlefish और किसी फ़िज़िकल डिवाइस के बीच काम करने के तरीके में कोई अंतर नहीं दिखेगा.

कटलफ़िश से कैसे मदद मिल सकती है?

Cuttlefish के साथ इंटरैक्ट करने का तरीका, किसी भी ऐसे Android डिवाइस के साथ इंटरैक्ट करने के तरीके जैसा ही है जिसका इस्तेमाल डीबग करने के लिए किया जा सकता है. यह adb की मदद से, अपने-आप सामान्य डिवाइस के तौर पर रजिस्टर हो जाएगा. साथ ही, रिमोट डेस्कटॉप की मदद से, इसे किसी फ़िज़िकल डिवाइस की तरह इस्तेमाल किया जा सकता है. इस्तेमाल के उदाहरणों की संख्या ज़्यादा है. इनमें ऐप्लिकेशन टेस्टिंग, कस्टम सिस्टम के लिए बने टेस्ट वगैरह शामिल हैं.

Cuttlefish, फ़्रेमवर्क के साथ पूरी तरह से काम करता है. इसलिए, इसका इस्तेमाल आपके फ़्रेमवर्क या ऐप्लिकेशन की फ़ंक्शनल टेस्टिंग के लिए किया जा सकता है. हालांकि, इसके लिए ज़रूरी है कि ऐप्लिकेशन में ऐसी कोई हार्डवेयर डिपेंडेंसी न हो जिसे एमुलेट नहीं किया जा सकता.

आजकल टेस्टिंग के लिए कटलफ़िश का इस्तेमाल कैसे किया जाता है?

टेस्टिंग के लिए, Cuttlefish के कुछ सामान्य ऐप्लिकेशन में ये शामिल हैं:

  • सीटीएस
  • फ़्रेमवर्क का पालन करना
  • लगातार इंटिग्रेशन टेस्टिंग
  • कस्टम टेस्ट सुइट

क्या Cuttlefish को क्लाउड पर होस्ट किया जा सकता है?

हां, Cuttlefish, Google Cloud के साथ काम करता है. साथ ही, अन्य क्लाउड प्लैटफ़ॉर्म के साथ काम करने की सुविधा पर काम किया जा रहा है.

शुरू करें

AOSP पर आधारित Cuttlefish इंस्टेंस बनाने के बारे में जानने के लिए, Cuttlefish का इस्तेमाल करना लेख पढ़ें.