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

Cuttlefish, कॉन्फ़िगर किया जा सकने वाला वर्चुअल Android डिवाइस है. इसे रिमोटली (Google Cloud Engine जैसी तीसरे पक्ष की क्लाउड सेवाओं का इस्तेमाल करके) और स्थानीय तौर पर (Linux x86 और ARM64 मशीनों पर) चलाया जा सकता है.

कटलफ़िश के लक्ष्य

  • इसकी मदद से, प्लैटफ़ॉर्म और ऐप्लिकेशन डेवलपर को कोड में बदलाव करने और उनकी पुष्टि करने के लिए, फ़िज़िकल हार्डवेयर पर निर्भर नहीं रहना पड़ता.
  • यह फ़्रेमवर्क, किसी असली डिवाइस के फ़्रेमवर्क के आधार पर काम करता है. इसमें ज़्यादा फ़िडेलिटी पर फ़ोकस किया जाता है. इसके लिए, यह फ़्रेमवर्क के साथ पूरी तरह से अलाइन रहता है.
  • एपीआई लेवल 28 के बाद के सभी लेवल के साथ काम करता हो.
  • एपीआई लेवल के हिसाब से, एक जैसा फ़ंक्शनल लेवल उपलब्ध कराएं. यह फ़ंक्शनल लेवल, फ़िज़िकल हार्डवेयर के व्यवहार के मुताबिक होना चाहिए.
  • स्केल करने की सुविधा चालू करें:

    • एक साथ कई डिवाइसों को चलाने की सुविधा मिलती है.
    • कम कीमत पर, ज़्यादा भरोसेमंद तरीके से एक साथ कई टेस्ट चलाने की सुविधा चालू करें.
  • कॉन्फ़िगर किया जा सकने वाला ऐसा डिवाइस उपलब्ध कराएं जिसमें नाप या आकार, रैम, सीपीयू वगैरह को अडजस्ट किया जा सके.

Cuttlefish की तुलना अन्य डिवाइसों से करना

Cuttlefish और Android Emulator

इसमें Android Emulator से मिलती-जुलती कई सुविधाएं हैं. हालांकि, Cuttlefish, Android फ़्रेमवर्क के साथ पूरी तरह से काम करता है. भले ही, यह पूरी तरह से AOSP हो या आपके ट्री में कस्टम तौर पर लागू किया गया हो. असल दुनिया में इसका मतलब यह है कि आपको Cuttlefish से, ओएस लेवल पर उसी तरह के जवाब मिलने चाहिए जैसे आपको किसी ऐसे फ़िज़िकल फ़ोन से मिलते हैं जिसे उसी तरह के कस्टम या प्योर Android ओएस सोर्स से बनाया गया है.

Android Emulator को इस तरह से बनाया गया है कि इससे ऐप्लिकेशन को आसानी से डेवलप किया जा सके. इसमें कई फ़ंक्शनल हुक शामिल हैं, ताकि Android ऐप्लिकेशन डेवलपर के इस्तेमाल के मामलों को पूरा किया जा सके. अगर आपको अपने हिसाब से बनाए गए Android फ़्रेमवर्क के साथ कोई एम्युलेटर बनाना है, तो आपको समस्याएं आ सकती हैं. अगर आपको एक ऐसे वर्चुअल डिवाइस की ज़रूरत है जो आपके कस्टम प्लैटफ़ॉर्म/फ़्रेमवर्क कोड या टिप-ऑफ़-ट्री Android का प्रतिनिधित्व करे, तो Cuttlefish एक बेहतरीन वर्चुअल विकल्प है. यह AOSP डेवलपमेंट की मौजूदा स्थिति को दिखाने वाला कैननिकल डिवाइस है.

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

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

Cuttlefish आपकी मदद कैसे कर सकता है?

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

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

आजकल, Cuttlefish का इस्तेमाल आम तौर पर टेस्टिंग के लिए कैसे किया जाता है?

Cuttlefish का इस्तेमाल, इन कामों के लिए किया जा सकता है:

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

क्या क्लाउड में Cuttlefish को होस्ट किया जा सकता है?

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

शुरू करें

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