← कार्यशाला में वापस जाएँ
पर्दे के पीछे

Android Store Screenshot Kit

असली Android ऐप्स के असली स्क्रीनशॉट, हर बार एक ही तरीके से लिए गए और Google Play के लिए तैयार।

फ़ोन की तीन स्क्रीन, बीच वाली फ़्रेम में और सही के निशान के साथ

परियोजना के बारे में

ऐप में हर बदलाव के साथ स्टोर स्क्रीनशॉट पुराने हो जाते हैं, और फ़ोन पर हाथ से लेना धीमा है और कभी दो बार एक जैसा नहीं होता। यह किट इसे दोहराने योग्य कदम बना देती है: हर ऐप बस एक छोटा टेस्ट रखता है जो अपना डेटा तैयार करता है और उसकी स्क्रीनों से गुज़रता है, बाकी सब किट सँभालती है।

यह ऐप और उसका टेस्ट बनाती है, उन्हें चुने गए Firebase Test Lab डिवाइस पर चलाती है, रन को अंत तक देखती है, स्क्रीनशॉट डाउनलोड करती है और उन्हें ऐप के स्टोर फ़ोल्डर में कॉपी करने से पहले Google Play की ज़रूरतों के हिसाब से जाँचती है।

यह कैसे काम करता है

  1. रन का विवरण लिखें। एक छोटी TOML फ़ाइल ऐप, उसका टेस्ट, इस्तेमाल होने वाले डिवाइस, और अपेक्षित स्क्रीनशॉट की संख्या और आकार बताती है।
  2. ऐप का हिस्सा लिखें। टेम्पलेट टेस्ट से शुरू करें, तय नमूना डेटा लोड करें और कैप्चर की जाने वाली स्क्रीनों की सूची बनाएँ। साझा सहायक फ़ंक्शन स्क्रीन का इंतज़ार करते हैं, टैप करते हैं, सिस्टम डायलॉग बंद करते हैं और स्क्रीन की दिशा लॉक करते हैं।
  3. एक डिवाइस चलाएँ। एक ही कमांड दोनों APK बनाती है, उन्हें Firebase Test Lab पर भेजती है और टेस्ट पूरा होने तक उस पर नज़र रखती है।
  4. इकट्ठा करें और जाँचें। स्क्रीनशॉट डाउनलोड होते हैं, संख्या, आकार और रंग फ़ॉर्मैट के लिए जाँचे जाते हैं, और रन के रिकॉर्ड के साथ सहेजे जाते हैं।

इस किट से बने

ये Google Play के लिए Pocket Omaha के टैबलेट स्क्रीनशॉट हैं, जिन्हें किट ने Firebase Test Lab में एक असली Pixel Tablet पर लिया। टेस्ट Apple, JPMorgan और Nokia का रिकॉर्ड किया डेटा लोड करता है, इसलिए कोई बाज़ार डेटा नहीं लिया गया और हर रन में वही आँकड़े दिखते हैं।

पहले रन में ऐप की एक नेटिव लाइब्रेरी के अलाइनमेंट को लेकर Android की एक संगतता चेतावनी भी सामने आई। लाइब्रेरी अपडेट करने के बाद दूसरा रन उसके बिना पूरा हुआ।

विशेषताएँ

  • हर रन में एक ही नतीजा: हर ऐप लाइव सेवाओं को बुलाने के बजाय अपना रिकॉर्ड किया हुआ नमूना डेटा लोड करता है, इसलिए स्क्रीनशॉट एक रन से दूसरे रन में नहीं बदलते।
  • इस्तेमाल से पहले जाँचे गए: हर PNG की अपेक्षित संख्या, माप और Google Play के माँगे गए बिना पारदर्शिता वाले RGB फ़ॉर्मैट की जाँच होती है।
  • हर रन का रिकॉर्ड: हर रन को अपना फ़ोल्डर मिलता है, जिसमें बिना बदले PNG और एक run.json फ़ाइल होती है, जिसमें फ़ाइल हैश, डिवाइस, Firebase Console का लिंक और सटीक कॉन्फ़िगरेशन होता है।
  • 16 KB डिवाइसों के लिए तैयार: एक अलग जाँच APK और उसके अंदर की हर नेटिव लाइब्रेरी का अलाइनमेंट जाँचती है, 16 KB मेमोरी पेज वाले Android डिवाइसों के लिए।
  • अचानक बिल नहीं: डिवाइस का नाम हमेशा बताना पड़ता है, इसलिए कोई रन कभी सभी कॉन्फ़िगर किए गए, संभवतः सशुल्क, असली डिवाइसों पर नहीं फैलता।
  • गोपनीय जानकारी बाहर: प्रोजेक्ट ID पर्यावरण चरों से आती हैं और साइन-इन Google Cloud CLI से; कॉन्फ़िगरेशन में कोई क्रेडेंशियल नहीं रहता।
  • अपनाना आसान: सहायक फ़ंक्शन सिर्फ़ AndroidX Test और UI Automator पर निर्भर हैं, इसलिए वे Jetpack Compose वाले और बिना Compose वाले, दोनों तरह के ऐप्स में फ़िट होते हैं।

हुड के नीचे

कमांड-लाइन टूल एक अकेली Python स्क्रिप्ट है जिसे Python 3.11 के अलावा कुछ नहीं चाहिए। साझा सहायक फ़ंक्शन Java में लिखी एक छोटी Android लाइब्रेरी हैं, इसलिए वे इस्तेमाल करने वाले ऐप्स पर कोई Kotlin संस्करण नहीं थोपते और AGP 8 व AGP 9 दोनों के साथ काम करते हैं। CI में हर pull request पर वर्चुअल डिवाइस चल सकते हैं, जबकि असली डिवाइस रिलीज़ कैंडिडेट के लिए रखे जा सकते हैं। यह किट GPL-3.0 लाइसेंस के तहत ओपन सोर्स है।