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

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

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

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

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

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

Android17_Timeline_01_V02.png

टेस्टिंग के लिए, आपको अपने प्रोडक्शन ऐप्लिकेशन या टेस्ट ऐप्लिकेशन को, Android 17 के बीटा 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 वर्शन के बाद कुछ बदलाव किए हैं. इनमें, इस्तेमाल के दौरान FGS लागू करने और अलार्म ऑडियो को छूट देने के साथ-साथ, targetSDK गेटिंग की सुविधा शामिल है. पूरी जानकारी, अपडेट किए गए दिशा-निर्देशों में उपलब्ध है.

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

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

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

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

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

मेमोरी का कम इस्तेमाल होने से, परफ़ॉर्मेंस बेहतर होती है, बैटरी लाइफ़ बढ़ती है, और सभी फ़ॉर्म फ़ैक्टर में शानदार अनुभव मिलता है. आइए, 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 के स्टैंडर्ड के मुताबिक ML-DSA (Module-Lattice-Based Digital Signature Algorithm) के लिए सपोर्ट जोड़ा है. सपोर्ट करने वाले डिवाइसों पर, ML-DSA कुंजियां जनरेट की जा सकती हैं. साथ ही, इनका इस्तेमाल, डिवाइस के सुरक्षित हार्डवेयर में, क्वांटम-सेफ़ सिग्नेचर बनाने के लिए किया जा सकता है. Android Keystore, ML-DSA-65 और ML-DSA-87 एल्गोरिदम के वैरिएंट को, Java Cryptographic Architecture के स्टैंडर्ड एपीआई के ज़रिए दिखाता है: 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 के बीटा वर्शन के इस और आने वाले अपडेट, ओटीए (ओवर-द-एयर) पाने के लिए, सपोर्ट करने वाले किसी भी Pixel डिवाइस को रजिस्टर किया जा सकता है. अगर आपके पास Pixel डिवाइस नहीं है, तो Android Studio में Android Emulator के साथ 64-बिट सिस्टम इमेज का इस्तेमाल किया जा सकता है.

अगर आपने फ़िलहाल Android के बीटा प्रोग्राम के लिए रजिस्टर किया है, तो आपको बीटा 4 वर्शन का ओटीए (ओवर-द-एयर) अपडेट मिलेगा.

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

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

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

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

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

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

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

लेखक:

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