प्रॉडक्ट से जुड़ी खबरें

Android 17 का चौथा बीटा वर्शन

4 मिनट में पढ़ें
डैनियल गैल्पिन की प्रोफ़ाइल देखें
Daniel Galpin डेवलपर एडवोकेट

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

अपने ऐप्लिकेशन, लाइब्रेरी, टूल, और गेम इंजन तैयार करें!

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

Android17_Timeline_01_V02.png

टेस्टिंग में, Android 17 Beta 4 पर चलने वाले किसी डिवाइस या एम्युलेटर पर, Google Play या किसी अन्य तरीके से, प्रोडक्शन ऐप्लिकेशन या आपकी लाइब्रेरी या इंजन का इस्तेमाल करने वाला टेस्ट ऐप्लिकेशन इंस्टॉल करना शामिल है. अपने ऐप्लिकेशन के सभी फ़्लो को आज़माएं और फ़ंक्शन या यूज़र इंटरफ़ेस (यूआई) से जुड़ी समस्याओं का पता लगाएं. Android के हर वर्शन में, प्लैटफ़ॉर्म से जुड़े ऐसे बदलाव किए जाते हैं जिनसे निजता, सुरक्षा, और उपयोगकर्ता अनुभव बेहतर होता है. Android 17 पर चलने वाले और टारगेट करने वाले ऐप्लिकेशन के लिए, ऐप्लिकेशन के व्यवहार में होने वाले बदलावों की समीक्षा करें. इससे आपको टेस्टिंग पर फ़ोकस करने में मदद मिलेगी. इसमें ये शामिल हैं:

  • बड़ी स्क्रीन पर साइज़ बदलने की सुविधा: Android 17 को टारगेट करने के बाद, बड़ी स्क्रीन पर स्क्रीन की दिशा, साइज़ बदलने, और आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) से जुड़ी पाबंदियों को बनाए रखने की सुविधा से बाहर नहीं हुआ जा सकेगा.
  • डाइनैमिक कोड लोडिंग: अगर आपका ऐप्लिकेशन Android 17 या इसके बाद के वर्शन को टारगेट करता है, तो Safer Dynamic Code Loading (DCL) की सुरक्षा Android 14 में DEX और JAR फ़ाइलों के लिए पेश की गई थी. अब यह नेटिव लाइब्रेरी के लिए भी उपलब्ध है. System.load() का इस्तेमाल करके लोड की गई सभी नेटिव फ़ाइलों को 'सिर्फ़ पढ़ने के लिए' के तौर पर मार्क किया जाना चाहिए. ऐसा न होने पर, सिस्टम UnsatisfiedLinkError दिखाता है.
  • सीटी को डिफ़ॉल्ट रूप से चालू करें: सर्टिफ़िकेट ट्रांसपैरेंसी (सीटी) डिफ़ॉल्ट रूप से चालू होती है. (Android 16 पर, सीटी उपलब्ध है. हालांकि, ऐप्लिकेशन को ऑप्ट इन करना होगा.)
  • लोकल नेटवर्क की सुरक्षा से जुड़ी सुविधाएं: Android 17 या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, लोकल नेटवर्क का ऐक्सेस डिफ़ॉल्ट रूप से ब्लॉक होता है. अगर हो सके, तो निजता बनाए रखने वाले पिकर का इस्तेमाल करें. साथ ही, लगातार और बड़े पैमाने पर ऐक्सेस करने के लिए, ACCESS_LOCAL_NETWORK अनुमति का इस्तेमाल करें.
  • बैकग्राउंड में ऑडियो चलाने की सुविधा को बेहतर बनाना: Android 17 से, ऑडियो फ़्रेमवर्क बैकग्राउंड में ऑडियो चलाने से जुड़ी पाबंदियां लागू करता है. इनमें ऑडियो चलाने, ऑडियो फ़ोकस के अनुरोध, और आवाज़ बदलने वाले एपीआई शामिल हैं. आपके सुझाव के आधार पर, हमने बीटा 2 के बाद से कुछ बदलाव किए हैं. इनमें, 'इस्तेमाल में होने पर एफजीएस लागू करने के दौरान targetSDK गेटिंग' और 'अलार्म ऑडियो को छूट देना' शामिल है. पूरी जानकारी, अपडेट किए गए दिशा-निर्देशों में उपलब्ध है.

ऐप्लिकेशन के लिए मेमोरी की सीमाएं

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

मौजूदा तरीके में, अगर आपके ऐप्लिकेशन पर असर पड़ा है, तो ApplicationExitInfo में मौजूद getDescription में "MemoryLimiter" स्ट्रिंग शामिल होगी. मेमोरी की सीमा पूरी होने पर इकट्ठा किए गए हीप डंप पाने के लिए, TRIGGER_TYPE_ANOMALY के साथ ट्रिगर पर आधारित प्रोफ़ाइलिंग का इस्तेमाल किया जा सकता है.

unnamed (2).png
Android Studio Profiler में LeakCanary टास्क

मेमोरी लीक का पता लगाने में आपकी मदद करने के लिए, Android Studio Panda में LeakCanary इंटिग्रेशन को सीधे तौर पर Android Studio Profiler में जोड़ा गया है. इसे एक खास टास्क के तौर पर जोड़ा गया है. इसे आईडीई में कॉन्टेक्स्ट के हिसाब से रखा गया है और यह आपके सोर्स कोड के साथ पूरी तरह से इंटिग्रेट किया गया है.

मेमोरी फ़ुटप्रिंट कम होने से, परफ़ॉर्मेंस बेहतर होती है, बैटरी लाइफ़ बढ़ती है, और सभी फ़ॉर्म फ़ैक्टर में प्रीमियम अनुभव मिलता है. आइए, साथ मिलकर Android के नेटवर्क को ज़्यादा तेज़ और भरोसेमंद बनाएं!

ऐप्लिकेशन में गड़बड़ियों की पहचान करने के लिए प्रोफ़ाइलिंग ट्रिगर

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

सिस्टम की परफ़ॉर्मेंस से जुड़ी समस्याओं का पता लगाने के लिए, TRIGGER_TYPE_ANOMALY ट्रिगर का इस्तेमाल करें. जैसे, बहुत ज़्यादा बाइंडर कॉल और बहुत ज़्यादा मेमोरी का इस्तेमाल. जब कोई ऐप्लिकेशन, ओएस की तय की गई मेमोरी की सीमाओं का उल्लंघन करता है, तो अनियमितता ट्रिगर होने पर डेवलपर को ऐप्लिकेशन के हिसाब से हीप डंप मिलते हैं. इससे उन्हें मेमोरी से जुड़ी समस्याओं की पहचान करने और उन्हें ठीक करने में मदद मिलती है. इसके अलावा, अगर बाइंडर में बहुत ज़्यादा स्पैम होता है, तो अनियमितता ट्रिगर, बाइंडर के लेन-देन की स्टैक सैंपलिंग प्रोफ़ाइल उपलब्ध कराता है.

यह एपीआई कॉलबैक, सिस्टम की ओर से लागू किए गए किसी भी उल्लंघन से पहले होता है. उदाहरण के लिए, इससे डेवलपर को सिस्टम की ओर से ऐप्लिकेशन बंद किए जाने से पहले, डीबग डेटा इकट्ठा करने में मदद मिल सकती है. ऐसा तब होता है, जब ऐप्लिकेशन मेमोरी की तय सीमा से ज़्यादा मेमोरी इस्तेमाल करता है. ट्रिगर का इस्तेमाल करने का तरीका जानने के लिए, ट्रिगर पर आधारित प्रोफ़ाइलिंग के बारे में हमारा दस्तावेज़ पढ़ें.

    val profilingManager = applicationContext.getSystemService(ProfilingManager::class.java)
    val triggers = ArrayList<ProfilingTrigger>()  
    triggers.add(ProfilingTrigger.Builder(
                 ProfilingTrigger.TRIGGER_TYPE_ANOMALY))
    val mainExecutor: Executor = Executors.newSingleThreadExecutor()
    val resultCallback = Consumer<ProfilingResult> { profilingResult ->
        if (profilingResult.errorCode != ProfilingResult.ERROR_NONE) {
            // upload profile result to server for further analysis          
            setupProfileUploadWorker(profilingResult.resultFilePath)
        } 
    profilingManager.registerForAllProfilingResults(mainExecutor, resultCallback)
    profilingManager.addProfilingTriggers(triggers)
}

Android Keystore में पोस्ट-क्वांटम क्रिप्टोग्राफ़ी (पीक्यूसी) की सुविधा

Android Keystore ने NIST-standardized ML-DSA (Module-Lattice-Based Digital Signature Algorithm) के लिए सहायता जोड़ी है. जिन डिवाइसों पर एमएल-डीएसए की सुविधा काम करती है उन पर एमएल-डीएसए कुंजियां जनरेट की जा सकती हैं. साथ ही, इनका इस्तेमाल डिवाइस के सुरक्षित हार्डवेयर में, क्वांटम-सुरक्षित सिग्नेचर बनाने के लिए किया जा सकता है. Android Keystore, स्टैंडर्ड Java Cryptographic Architecture API के ज़रिए ML-DSA-65 और ML-DSA-87 एल्गोरिदम के वैरिएंट उपलब्ध कराता है: KeyPairGenerator, KeyFactory, और Signature. ज़्यादा जानकारी के लिए, हमारा डेवलपर दस्तावेज़ देखें.

KeyPairGenerator generator = KeyPairGenerator.getInstance(
        “ML-DSA-65”, "AndroidKeyStore");
generator.initialize(
        new KeyGenParameterSpec.Builder(
                “my-key-alias”,
                KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY)
        .build());
KeyPair keyPair = generator.generateKeyPair();

Android 17 का इस्तेमाल शुरू करना

इस और आने वाले समय में Android के बीटा वर्शन के अपडेट पाने के लिए, ज़रूरी शर्तें पूरी करने वाले किसी भी Pixel डिवाइस को रजिस्टर करें. अगर आपके पास Pixel डिवाइस नहीं है, तो Android Studio में Android Emulator के साथ 64-बिट सिस्टम इमेज का इस्तेमाल किया जा सकता है.

अगर आप फ़िलहाल Android के बीटा प्रोग्राम में शामिल हैं, तो आपको Beta 4 का ओटीए अपडेट मिलेगा.

सुझाव/राय देने या शिकायत करने वाले पेज पर जाकर, समस्याओं की शिकायत करें और सुविधाओं के लिए अनुरोध करें. हमें आपका सुझाव, शिकायत या राय जितनी जल्दी मिलेगी, हम उसे फ़ाइनल रिलीज़ में उतना ही ज़्यादा शामिल कर पाएंगे.

Android 17 के साथ बेहतर डेवलपमेंट अनुभव पाने के लिए, हमारा सुझाव है कि आप Android Studio (Panda) के नए प्रीव्यू वर्शन का इस्तेमाल करें. सेट अप करने के बाद, आपको ये काम करने चाहिए:

  • नए SDK के हिसाब से कंपाइल करें, सीआई एनवायरमेंट में टेस्ट करें, और सुझाव/राय देने या शिकायत करने वाले पेज पर, हमारे ट्रैकर में किसी भी समस्या की शिकायत करें.
  • अपने मौजूदा ऐप्लिकेशन की जांच करें कि वह Android 17 के साथ काम करता है या नहीं. यह भी जानें कि Android 17 में हुए बदलावों का आपके ऐप्लिकेशन पर असर पड़ा है या नहीं. इसके बाद, अपने ऐप्लिकेशन को Android 17 पर काम करने वाले डिवाइस या एम्युलेटर पर इंस्टॉल करें और उसकी अच्छी तरह से जांच करें.

हम Android 17 के रिलीज़ साइकल के दौरान, प्रीव्यू/बीटा सिस्टम इमेज और एसडीके को समय-समय पर अपडेट करते रहेंगे. बीटा वर्शन इंस्टॉल करने के बाद, आपको आने वाले समय में सभी बाद के प्रीव्यू और बीटा वर्शन के अपडेट, ओवर-द-एयर (वायरलेस तरीके से) अपने-आप मिलते रहेंगे.

पूरी जानकारी के लिए, Android 17 की डेवलपर साइट पर जाएं.

बातचीत में शामिल हों

आपके सुझाव, शिकायत या राय हमारे लिए सबसे अहम हैं. चाहे आप Canary चैनल के शुरुआती उपयोगकर्ता हों या ऐप्लिकेशन डेवलपर हों और Beta 4 को टेस्ट कर रहे हों, हमारी कम्यूनिटी में शामिल हों और सुझाव/राय दें या शिकायत करें. हम सुन रहे हैं.

लेखक:
पढ़ना जारी रखें