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

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

चार मिनट में पढ़ें
Daniel Galpin
डेवलपर एडवोकेट

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

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

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

Android17_Timeline_01_V02.png

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

  • बड़ी स्क्रीन पर साइज़ बदलने की सुविधा: Android 17 को टारगेट करने के बाद, बड़ी स्क्रीन पर ओरिएंटेशन, साइज़ बदलने, और आसपेक्ट रेशियो (लंबाई-चौड़ाई का अनुपात) से जुड़ी पाबंदियों को बनाए रखने की सुविधा से ऑप्ट आउट नहीं किया जा सकेगा.
  • डाइनैमिक कोड लोडिंग: अगर आपका ऐप्लिकेशन Android 17 या इसके बाद वाले वर्शन को टारगेट करता है, तो DEX और JAR फ़ाइलों के लिए, Android 14 में पेश की गई Safer Dynamic Code Loading (DCL) की सुरक्षा अब नेटिव लाइब्रेरी पर भी लागू होती है. 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 एल्गोरिदम के वैरिएंट उपलब्ध कराता है: KeyPairGeneratorKeyFactory, और 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 के बीटा वर्शन के अपडेट पाने के लिए, 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 पर टेस्टिंग कर रहे हों, हमारी कम्यूनिटी में शामिल हों और सुझाव/राय दें या शिकायत करें. हम सुन रहे हैं.

इसे लिखा है:

पढ़ना जारी रखें