Android 7.0 Nougat में कई तरह के उपयोगकर्ताओं और डेवलपर के लिए नई सुविधाएं और क्षमताएं. इस दस्तावेज़ में बताया गया है कि डेवलपर के लिए क्या नया है.
Android 7.0 के व्यवहार में हुए बदलावों के बारे में ज़रूर जानें. इससे आपको उन चीज़ों के बारे में पता चलेगा जिन पर प्लैटफ़ॉर्म में हुए बदलावों का असर आपके ऐप्लिकेशन पर पड़ सकता है.
Android 7.0 के उपभोक्ता के लिए उपलब्ध सुविधाओं के बारे में ज़्यादा जानने के लिए, www.android.com पर जाएं.
मल्टी-विंडो (एक से ज़्यादा विंडो) की सुविधा
Android 7.0 में, हम एक नई सुविधा ला रहे हैं, जिसके लिए सबसे ज़्यादा अनुरोध किए गए थे प्लैटफ़ॉर्म पर मल्टीटास्किंग सुविधा — मल्टी-विंडो सहायता.
उपयोगकर्ता अब स्क्रीन पर एक साथ दो ऐप्लिकेशन पॉप-अप कर सकते हैं.
- फ़ोन और टैबलेट पर Android 7.0 वर्शन चला रहे हैं, तो उपयोगकर्ता एक साथ दो ऐप्लिकेशन चला सकते हैं या स्प्लिट स्क्रीन मोड में एक-दूसरे के ऊपर. उपयोगकर्ता, ऐप्लिकेशन के बीच मौजूद डिवाइडर को खींचकर, ऐप्लिकेशन का साइज़ बदल सकते हैं.
- Android TV डिवाइसों पर, ऐप्लिकेशन खुद को पिक्चर में पिक्चर मोड में डाल सकते हैं मोड की मदद से, वे वीडियो को ब्राउज़ करते समय भी उसका इस्तेमाल कर सकते हैं या दूसरे ऐप्लिकेशन के साथ इंटरैक्ट करता हो.
खास तौर पर, टैबलेट और बड़ी स्क्रीन वाले अन्य डिवाइसों पर, मल्टी-विंडो की सुविधा भी उपलब्ध है आपको लोगों की दिलचस्पी बनाए रखने के नए तरीके उपलब्ध कराता है. आपके पास 'खींचें और छोड़ें' सुविधा भी चालू करने का विकल्प है आपके ऐप्लिकेशन की मदद से उपयोगकर्ता आसानी से कॉन्टेंट को खींचकर आपके ऐप्लिकेशन में ला सकते हैं या वहां से बाहर निकाल सकते हैं — यह बेहतरीन उपयोगकर्ता अनुभव को बेहतर बनाने का तरीका बताया गया है.
अपने ऐप्लिकेशन में मल्टी-विंडो सपोर्ट जोड़ना और इसे कॉन्फ़िगर करना आसान है मल्टी-विंडो डिसप्ले को हैंडल करता है. उदाहरण के लिए, आप उपयोगकर्ताओं को नीचे दी गई गतिविधि का साइज़ बदलने से रोकने वाले कम से कम डाइमेंशन . अपने ऐप्लिकेशन के लिए मल्टी-विंडो डिसप्ले को भी बंद किया जा सकता है, इस बात की पुष्टि करता है कि सिस्टम आपके ऐप्लिकेशन को सिर्फ़ फ़ुल-स्क्रीन मोड में दिखाएगा.
ज़्यादा जानकारी के लिए, एक से ज़्यादा विंडो के लिए सहायता लेख पढ़ें डेवलपर दस्तावेज़ पढ़ें.
बेहतर सूचना पाने की सुविधा
Android 7.0 में हमने सूचनाओं को फिर से डिज़ाइन किया है, ताकि उन्हें आसान बनाया जा सके और और तेज़ी से काम करता है. इनमें से कुछ बदलावों में ये शामिल हैं:
- टेंप्लेट अपडेट: हम सूचना टेंप्लेट अपडेट कर रहे हैं हीरो इमेज और अवतार को नए नज़रिए से दिखाया जाए. डेवलपर ये काम कर पाएंगे कोड में कम से कम बदलाव करके नए टेंप्लेट का फ़ायदा लें.
-
मैसेज की शैली को पसंद के मुताबिक बनाना: आप मैसेज की स्टाइल को पसंद के मुताबिक बना सकते हैं
आपकी सूचनाओं से जुड़े यूज़र इंटरफ़ेस लेबल जोड़ने के लिए,
MessagingStyle
क्लास. इस मैसेज को कॉन्फ़िगर किया जा सकता है. बातचीत का टाइटल और कॉन्टेंट व्यू. - बंडल की गई सूचनाएं: सिस्टम मैसेज को ग्रुप कर सकता है साथ में, मैसेज के विषय के हिसाब से, और ग्रुप को दिखाया जा सकता है. एक उपयोगकर्ता यह कर सकता है उन पर ख़ारिज करें या संग्रहित करें जैसी कार्रवाइयाँ करें. अगर आपको Android Wear के लिए सूचनाएं लागू की हैं, आप इनके बारे में पहले से जानते हैं इस मॉडल.
- सीधे तौर पर जवाब देने की सुविधा: रीयल-टाइम में बातचीत की सुविधा देने वाले ऐप्लिकेशन के लिए, Android सिस्टम पर इनलाइन जवाब की सुविधा काम करती है, ताकि लोग तुरंत जवाब दे सकें सीधे सूचना इंटरफ़ेस में एसएमएस या टेक्स्ट मैसेज भेज सकते हैं.
- कस्टम व्यू: दो नए एपीआई की मदद से, सिस्टम का फ़ायदा लिया जा सकता है सजावट, जैसे कि सूचना के हेडर और कार्रवाइयां, व्यू की संख्या.
नई सुविधाओं को लागू करने का तरीका जानने के लिए, यहां जाएं: सूचनाएं पढ़ें.
प्रोफ़ाइल के निर्देशों के साथ जेआईटी/एओटी का कंपाइलेशन
Android 7.0 में, हमने कोड के साथ जस्ट इन टाइम (JIT) कंपाइलर जोड़ा है ART में प्रोफ़ाइल बनाना, जिससे यह अपनी परफ़ॉर्मेंस को लगातार बेहतर बना पाता है चलने के दौरान Android ऐप्लिकेशन. जेआईटी कंपाइलर, एआरटी के मौजूदा वर्शन से मिलता-जुलता है Ahead of Time (AOT) कंपाइलर और रनटाइम की परफ़ॉर्मेंस को बेहतर बनाने में मदद करता है, और ऐप्लिकेशन के अपडेट और सिस्टम अपडेट की रफ़्तार को तेज़ करें.
प्रोफ़ाइल के निर्देशों के साथ कंपाइलेशन की मदद से, एआरटी के लिए एओटी/जेआईटी कंपाइलेशन को मैनेज किया जा सकता है हर ऐप्लिकेशन को उसके असल इस्तेमाल और डिवाइस की शर्तों के हिसाब से देखा जा सकता है. उदाहरण के लिए, ART हर ऐप के हॉट तरीकों की प्रोफ़ाइल बनाकर रखता है और बेहतरीन परफ़ॉर्मेंस के लिए उन तरीकों को प्रीकंपाइल और कैश मेमोरी में सेव करेगा. यह बाकी हिस्सों को छोड़ देता है की पूरी जानकारी को कंपाइल नहीं किया जाता, जब तक कि उनका इस्तेमाल नहीं हो जाता.
ऐप्लिकेशन के मुख्य हिस्सों की परफ़ॉर्मेंस को बेहतर बनाने के साथ-साथ, प्रोफ़ाइल से जुड़े निर्देशों का भी पालन किया जा सकता है कंपाइलेशन, ऐप्लिकेशन के कुल रैम फ़ुटप्रिंट को कम करने में मदद करता है. इसमें यह भी शामिल है बाइनरी. यह सुविधा, खास तौर पर कम मेमोरी वाले डिवाइसों के लिए ज़रूरी है.
एआरटी, प्रोफ़ाइल निर्देशों के साथ कंपाइलेशन को इस तरह मैनेज करता है कि डिवाइस की बैटरी. यह प्रीकंपाइलेशन सिर्फ़ तब करता है, जब डिवाइस कुछ समय से इस्तेमाल में न हो और फ़ोन को पहले से ही चार्ज कर लें, ताकि समय और बैटरी बचे.
ऐप्लिकेशन इंस्टॉल करने के लिए क्विक पाथ
ART के JIT कंपाइलर का सबसे बड़ा लाभ है ऐप की स्पीड और सिस्टम अपडेट. बड़े ऐप्लिकेशन को भी इन ऐप्लिकेशन को ऐक्सेस करने में कुछ मिनट लग सकते थे Android 6.0 में 'ऑप्टिमाइज़ और इंस्टॉल करें' के ज़रिए सेकंड. सिस्टम अपडेट भी ज़्यादा तेज़ होते हैं, क्योंकि ऑप्टिमाइज़ करने की कोई ज़रूरत नहीं होती.
चलते-फिरते बैटरी बचाएं...
Android 6.0 में Doze मोड की सुविधा जोड़ी गई थी. यह एक सिस्टम मोड है, जो डिवाइस के इस्तेमाल में न होने पर, ऐप्लिकेशन के सीपीयू और नेटवर्क गतिविधियों को रोककर बैटरी बचाता है. जैसे, जब डिवाइस टेबल पर या ड्रॉर में हो.
अब Android 7.0 में, Doze एक कदम आगे बढ़ जाता है और चलते-फिरते बैटरी की बचत करता है. किसी भी समय स्क्रीन बंद रहने और डिवाइस के अनप्लग होने पर, Doze ऐप्लिकेशन पर जाने-पहचाने सीपीयू और नेटवर्क से जुड़ी पाबंदियों का सबसेट लागू करता है. इसका मतलब यह है कि उपयोगकर्ता अपने डिवाइस को अपने जेब में रखना.
डिवाइस के बैटरी पर होने के दौरान स्क्रीन बंद होने के कुछ समय बाद, बैटरी बचाएं नेटवर्क ऐक्सेस करने पर पाबंदी लगाता है. साथ ही, जॉब और सिंक को डेफ़र्स करता है. कुछ समय के रखरखाव के दौरान विंडो, ऐप्लिकेशन को नेटवर्क ऐक्सेस करने की अनुमति है और उनके लिए कुछ समय के लिए जॉब/सिंक चलाए जाते हैं. स्क्रीन को चालू करने या डिवाइस को प्लग-इन करने से डिवाइस को डोज़ से हटाया जा रहा है.
जब डिवाइस फिर से स्थिर हो जाए, तो स्क्रीन बंद होने और बैटरी चालू होने पर
समयावधि के दौरान, Doze PowerManager.WakeLock
, AlarmManager
अलार्म, और
जीपीएस/वाई-फ़ाई स्कैन.
अपने ऐप्लिकेशन को Doze के हिसाब से बनाने के सबसे सही तरीके एक जैसे हैं. डिवाइस मूव हो रहा है या नहीं. इसलिए, अगर आपने पहले ही अपने ऐप्लिकेशन को ग्रेसफ़ुली मोड पर अपडेट कर दिया है डोज़ को हैंडल करें, आप पूरी तरह से तैयार हैं. अगर नहीं, तो अपनाना शुरू करें बैटरी बचाएं.
प्रोजेक्ट Svelte: बैकग्राउंड ऑप्टिमाइज़ेशन
Project Svelte का मकसद है कि सिस्टम और ऐप्लिकेशन में रैम के इस्तेमाल को कम से कम किया जा सके अलग-अलग तरह के Android डिवाइसों की सूची पर लागू होती है. Android 7.0 में, Project Svelte का फ़ोकस बैकग्राउंड में ऐप्लिकेशन के चलने के तरीके को ऑप्टिमाइज़ करने पर है.
बैकग्राउंड प्रोसेसिंग, ज़्यादातर ऐप्लिकेशन का ज़रूरी हिस्सा होती है. जब इसे सही से संभाला जाए, तो आपके उपयोगकर्ता अनुभव को शानदार बना सकता है. — तुरंत, तेज़, और कॉन्टेक्स्ट के हिसाब से समझने में आसान होता है. बैकग्राउंड प्रोसेसिंग को सही तरीके से मैनेज न करने पर, यह ज़रूरत से ज़्यादा रैम (और बैटरी) का इस्तेमाल कर सकती है. साथ ही, इससे अन्य ऐप्लिकेशन की परफ़ॉर्मेंस पर भी असर पड़ सकता है.
Android 5.0 से, JobScheduler
बैकग्राउंड में काम करने के पसंदीदा तरीके को
उपयोगकर्ताओं के लिए. ऐप्लिकेशन, जॉब शेड्यूल कर सकते हैं. ऐसा करने पर, सिस्टम इनके आधार पर सिस्टम को ऑप्टिमाइज़ करता है
मेमोरी, पावर, और कनेक्टिविटी की स्थिति. JobScheduler आपको
और हम चाहते हैं कि सभी ऐप्लिकेशन इसका इस्तेमाल करें.
एक और अच्छा विकल्प है
GCMNetworkManager
, Google Play Services का हिस्सा है.
मिलती-जुलती जॉब शेड्यूल करने की सुविधा देता है. साथ ही, इसके पुराने वर्शन पर भी काम करता है
Android.
हम JobScheduler
और
GCMNetworkManager
की ज़रूरतों को पूरा करने के लिए
आपके उपयोग के उदाहरण — उदाहरण के लिए, Android 7.0 में अब आप
जो कॉन्टेंट उपलब्ध कराने वालों की संख्या में हुए बदलावों के मुताबिक काम करते हैं. इसके साथ ही, हम इन्हें शुरू कर रहे हैं
कुछ पुराने पैटर्न का इस्तेमाल बंद कर दें, जो सिस्टम की परफ़ॉर्मेंस को खराब कर सकते हैं.
खासकर कम मेमोरी वाले डिवाइसों पर.
Android 7.0 में हम आमतौर पर उपयोग किए जाने वाले तीन अस्पष्ट प्रसारण निकाल रहे हैं —
CONNECTIVITY_ACTION
, ACTION_NEW_PICTURE
, और ACTION_NEW_VIDEO
— क्योंकि ये
एक साथ कई ऐप्लिकेशन के बैकग्राउंड में होने वाली प्रोसेस की वजह से, मेमोरी और बैटरी पर असर पड़ता है. अगर आपने
आपको ये सब मिल रहे हैं, तो Android 7.0 का इस्तेमाल करके
इसके बजाय, JobScheduler
और उससे जुड़े एपीआई पर माइग्रेट करें.
बैकग्राउंड पर एक नज़र डालें ऑप्टिमाइज़ेशन ज़्यादा जानकारी के लिए दस्तावेज़.
SurfaceView
Android 7.0, SurfaceView
में सिंक्रोनस मूवमेंट
क्लास होती है, जिससे बैटरी की परफ़ॉर्मेंस बेहतर होती है
TextureView
से ज़्यादा है: वीडियो रेंडर करते समय या
3D कॉन्टेंट, स्क्रोलिंग वाले ऐप्लिकेशन, और ऐनिमेशन वाले वीडियो की पोज़िशन के हिसाब से, ये कम बैटरी खर्च करते हैं:
TextureView
के मुकाबले SurfaceView
.
SurfaceView
क्लास, बैटरी की कम खपत करने वाली कंपोज़िटिंग की सुविधा चालू करती है
स्क्रीन पर जाता है, क्योंकि इसे ऐप से अलग, खास हार्डवेयर में कंपोज़िट किया जाता है
विंडो कॉन्टेंट. इस वजह से, यह कम इंटरमीडिएट
TextureView
से ज़्यादा कॉपी.
SurfaceView
ऑब्जेक्ट के कॉन्टेंट की पोज़िशन को अब सिंक्रोनस (यानी एक ही समय पर) से अपडेट किया जाता है
जिसमें ऐप्लिकेशन का कॉन्टेंट शामिल हो. इस बदलाव का एक फ़ायदा यह है कि SurfaceView
में चल रहे वीडियो के आसान अनुवाद या स्केल में, अब व्यू के साथ काले रंग की पट्टी नहीं दिखती.
Android 7.0 और उसके बाद के वर्शन में, हमारा सुझाव है कि आप Android 10 के बाद के वर्शन का इस्तेमाल करके
TextureView
के बजाय SurfaceView
.
डेटा बचाने वाला विकल्प
आम तौर पर, मोबाइल डिवाइस इस्तेमाल करने के दौरान मोबाइल डेटा प्लान का खर्च डिवाइस की लागत से ज़्यादा हो जाता है. कई उपयोगकर्ताओं के लिए, मोबाइल डेटा एक महंगा संसाधन है जिसे वे बचाना चाहते हैं.
Android 7.0 में पेश है डेटा बचाने वाला मोड. यह एक नई सिस्टम सेवा है, जो बिलिंग साइकल के खत्म होने के समय, ऐप्लिकेशन के लिए मोबाइल डेटा का इस्तेमाल, चाहे रोमिंग में हो, या छोटे प्रीपेड डेटा पैक पर उपलब्ध है. डेटा बचाने की सेटिंग से उपयोगकर्ता यह कंट्रोल कर सकते हैं कि ऐप्लिकेशन मोबाइल डेटा का इस्तेमाल करते हैं और जब डेटा इकट्ठा करता है, तो डेवलपर को बेहतर सेवा देने में मदद मिलती है सेवर चालू है.
जब कोई उपयोगकर्ता सेटिंग में डेटा बचाने की सेटिंग चालू करता है और डिवाइस सीमित डेटा वाले नेटवर्क पर, सिस्टम बैकग्राउंड डेटा के इस्तेमाल पर रोक लगाता है और ऐप्लिकेशन को सिग्नल देता है जहां भी मुमकिन हो, फ़ोरग्राउंड में कम डेटा का इस्तेमाल करने के लिए. जैसे, स्ट्रीमिंग के लिए बिट रेट, इमेज की क्वालिटी कम करना, आशावादी प्रीकैशिंग को टालना, वगैरह. उपयोगकर्ता, डेटा बचाने की सेटिंग चालू होने पर भी, कुछ ऐप्लिकेशन को बैकग्राउंड में मेज़र किए गए डेटा का इस्तेमाल करने की अनुमति दे सकते हैं.
Android 7.0 में ConnectivityManager
को बेहतर बनाया गया है, ताकि ऐप्लिकेशन उपयोगकर्ता की डेटा सेवर की सेटिंग को ऐक्सेस कर सकें और सेटिंग में हुए बदलावों को मॉनिटर कर सकें. सभी ऐप्लिकेशन को यह जांच करनी चाहिए कि उपयोगकर्ता ने डेटा चालू किया है या नहीं
सेव करें और फ़ोरग्राउंड और बैकग्राउंड डेटा के इस्तेमाल को कम करें.
Vulkan एपीआई
Android 7.0, प्लैटफ़ॉर्म में VulkanTM के साथ काम करता है. यह एक नया 3D रेंडरिंग एपीआई है. OpenGL™ ES की तरह, Vulkan भी 3D ग्राफ़िक्स और रेंडरिंग के लिए एक ओपन स्टैंडर्ड है. इसे Khronos Group मैनेज करता है.
Vulkan को इस तरह से डिज़ाइन किया गया है कि ड्राइवर का सीपीयू ओवरहेड कम हो, और अपने ऐप्लिकेशन को सीधे जीपीयू ऑपरेशन को कंट्रोल करने की अनुमति दें. वल्कन साथ ही, कई थ्रेड को परफ़ॉर्म करने की अनुमति देकर, एक साथ बेहतर तरीके से काम करने की सुविधा भी मिलती है जैसे कि एक बार में कमांड बफ़र बनाना.
Vulkan डेवलपमेंट टूल और लाइब्रेरी को Android 7.0 SDK टूल में रोल आउट किया गया है. वे शामिल करें:
- हेडर
- पुष्टि करने वाली लेयर (डीबग लाइब्रेरी)
- SPIR-V शेडर कंपाइलर
- SPIR-V रनटाइम शेडर कंपाइलेशन लाइब्रेरी
Vulkan सिर्फ़ उन डिवाइसों पर ऐप्लिकेशन के लिए उपलब्ध है जिनमें Vulkan के साथ काम करने वाला हार्डवेयर है. जैसे, Nexus 5X, Nexus 6P, और Nexus Player. हम पब्लिशर के साथ मिलकर काम कर रहे हैं. हमारे पार्टनर, Vulkan को जल्द से जल्द ज़्यादा डिवाइसों पर उपलब्ध कराएंगे.
ज़्यादा जानकारी के लिए, एपीआई से जुड़े दस्तावेज़ देखें.
क्विक सेटिंग टाइल एपीआई
क्विक सेटिंग, मुख्य सेटिंग और कार्रवाइयों को सार्वजनिक करने का एक लोकप्रिय और आसान तरीका है, सूचना शेड से सीधे संपर्क किया जा सकता है. Android 7.0 में, हमने इसे ज़्यादा उपयोगी और सुविधाजनक बनाने के लिए क्विक सेटिंग.
हमने क्विक सेटिंग टाइल के लिए ज़्यादा जगह जोड़ी है. उपयोगकर्ता इनका इस्तेमाल कर सकते हैं बाईं या दाईं ओर स्वाइप करके, पेज नंबर वाले डिसप्ले एरिया को ऐक्सेस करें. हमने भी इससे उपयोगकर्ता यह कंट्रोल कर सकते हैं कि क्विक सेटिंग टाइल कौनसी दिखें और कहां दिखें दिखाई देता है — उपयोगकर्ता टाइल को खींचकर और छोड़कर टाइल को जोड़ या दूसरी जगह ले जा सकते हैं.
डेवलपर के लिए, Android 7.0 में एक नया एपीआई भी जोड़ा गया है. इसकी मदद से, अपने एपीआई को खुद तय किया जा सकता है क्विक सेटिंग टाइल की मदद से, उपयोगकर्ता आपके ऐप्लिकेशन के मुख्य कंट्रोल और कार्रवाइयों को आसानी से ऐक्सेस कर सकते हैं.
क्विक सेटिंग टाइल, उन कंट्रोल या कार्रवाइयों के लिए रिज़र्व होती हैं जो इसका तुरंत इस्तेमाल किया जाना चाहिए या इसका इस्तेमाल अक्सर किया जाना चाहिए. साथ ही, इसका इस्तेमाल शॉर्टकट के तौर पर कोई ऐप्लिकेशन लॉन्च करते समय.
टाइलें तय करने के बाद, उन्हें उन उपयोगकर्ताओं को दिखाया जा सकता है जो ऐसेट जोड़ने की अनुमति देते हैं खींचकर और छोड़कर क्विक सेटिंग में बदल सकते हैं.
ऐप्लिकेशन टाइल बनाने के बारे में ज़्यादा जानने के लिए, रेफ़रंस दस्तावेज़ देखें
Tile
के लिए.
नंबर ब्लॉक करना
Android 7.0 अब प्लैटफ़ॉर्म में नंबर ब्लॉक करने की सुविधा देता है और फ़्रेमवर्क एपीआई की मदद से, सेवा देने वाली कंपनियां ब्लॉक की गई नंबर की सूची बनाए रख सकती हैं. डिफ़ॉल्ट एसएमएस ऐप्लिकेशन, डिफ़ॉल्ट फ़ोन ऐप्लिकेशन, और मोबाइल और इंटरनेट सेवा देने वाली कंपनी के ऐप्लिकेशन, ब्लॉक किए गए नंबर की सूची को पढ़ सकते हैं और उसमें बदलाव कर सकते हैं. इस सूची को दूसरे ऐप्लिकेशन ऐक्सेस नहीं कर सकते.
नंबर को ब्लॉक करने की सुविधा देकर, Android ये सुविधाएं देता है: ऐप्लिकेशन के लिए, इस्तेमाल करने का एक ही तरीका है. डिवाइस. ऐप्लिकेशन के इस्तेमाल से, ये फ़ायदे भी मिल सकते हैं:
- कॉल के लिए ब्लॉक किए गए नंबर, मैसेज के लिए भी ब्लॉक हो जाते हैं
- ब्लॉक किए गए नंबर, बैकअप लेने की सुविधा की मदद से सभी रीसेट और डिवाइसों पर बने रह सकते हैं सुविधा को पहले जैसा करें
- कई ऐप्लिकेशन, ब्लॉक किए गए नंबर की एक ही सूची का इस्तेमाल कर सकते हैं
इसके अलावा, मोबाइल और इंटरनेट सेवा देने वाली कंपनी के ऐप्लिकेशन को Android के ज़रिए इंटिग्रेट करने का मतलब है कि मोबाइल और इंटरनेट सेवा देने वाली कंपनियां डिवाइस पर ब्लॉक किए गए नंबरों की सूची पढ़ें और सर्विस-साइड ब्लॉक करें ताकि अनचाहे कॉल और मैसेज को उपयोगकर्ता तक पहुंचने से रोका जा सके वीओआईपी एंडपॉइंट या फ़ॉरवर्ड किए जाने वाले फ़ोन जैसे किसी भी माध्यम से कनेक्ट किया जा सकता है.
ज़्यादा जानकारी के लिए, रेफ़रंस दस्तावेज़ देखें
BlockedNumberContract
.
कॉल की स्क्रीनिंग
Android 7.0, डिफ़ॉल्ट फ़ोन ऐप्लिकेशन को इनकमिंग कॉल को स्क्रीन करने देता है. फ़ोन ऐप्लिकेशन, ऐसा करने के लिए नया CallScreeningService
लागू करता है. इससे, फ़ोन ऐप्लिकेशन को इनकमिंग कॉल के Call.Details
के आधार पर कई कार्रवाइयां करने की अनुमति मिलती है. जैसे:
- इनकमिंग कॉल को काट दें
- कॉल लॉग पर कॉल की अनुमति न दें
- उपयोगकर्ता को कॉल के लिए सूचना न दिखाएं
ज़्यादा जानकारी के लिए, रेफ़रंस दस्तावेज़ देखें
CallScreeningService
.
एक से ज़्यादा जगहों के लिए सहायता, ज़्यादा भाषाएं
Android 7.0 अब उपयोगकर्ताओं को सेटिंग में जाकर, कई स्थान-भाषाएं चुनने की सुविधा देता है. दो भाषाओं में इस्तेमाल किए जा सकने वाले मामलों में मदद करने के लिए. ऐप्लिकेशन, इन चीज़ों का इस्तेमाल कर सकते हैं उपयोगकर्ता की चुनी गई स्थान-भाषाओं का पता लगाने के लिए नया एपीआई इस्तेमाल करें. इसके बाद, ज़्यादा बेहतर सुविधाएं उपलब्ध कराएं एक से ज़्यादा स्थान-भाषा इस्तेमाल करने वाले उपयोगकर्ताओं के लिए उपयोगकर्ता अनुभव — जैसे, खोज के नतीजे कई भाषाओं में उपलब्ध है और किसी भाषा में वेबपेजों का अनुवाद करने का विकल्प नहीं देता है, तो उपयोगकर्ता को पहले से पता है.
एक से ज़्यादा जगहों पर काम करने की सुविधा के साथ-साथ, Android 7.0 कई भाषाओं में भी काम करता है उपयोगकर्ताओं के लिए उपलब्ध है. आम तौर पर, इस्तेमाल होने वाले प्रॉडक्ट के 25 से ज़्यादा वैरिएंट उपलब्ध हैं भाषाओं जैसे अंग्रेज़ी, स्पैनिश, फ़्रेंच, और ऐरेबिक. यह आंशिक रूप से 100 से ज़्यादा नई भाषाओं में उपलब्ध है.
ऐप्लिकेशन, उपयोगकर्ता की ओर से कॉल करके सेट की गई स्थान-भाषाओं की सूची पा सकते हैं
LocaleList.GetDefault()
. स्थान-भाषाओं की बढ़ी हुई संख्या के साथ काम करने के लिए, Android 7.0
समस्या को ठीक करने का तरीका बदल रहा है. पक्का करें कि आपने ऐप्लिकेशन की जांच और पुष्टि की है
नए रिसॉर्स रिज़ॉल्यूशन लॉजिक के साथ उम्मीद के मुताबिक काम करेंगे.
संसाधन-रिज़ॉल्यूशन के नए तरीके और उन सबसे सही तरीकों के बारे में जानने के लिए जिन्हें लिखा होना चाहिए, कई भाषाओं में सहायता देखें.
नए इमोजी
Android 7.0 में ज़्यादा इमोजी और इमोजी से जुड़ी सुविधाएं मिलती हैं, जैसे कि त्वचा के रंग वाले इमोजी और अलग-अलग तरह के रंगों का इस्तेमाल करने की सुविधा सिलेक्टर. अगर आपके ऐप्लिकेशन में इमोजी काम करते हैं, तो इमोजी से जुड़ी इन सुविधाओं का फ़ायदा पाने के लिए, यहां दिए गए दिशा-निर्देशों का पालन करें.
-
डिवाइस में इमोजी डालने से पहले, देख लें कि उसमें इमोजी मौजूद है या नहीं.
सिस्टम फ़ॉन्ट में कौनसे इमोजी मौजूद हैं, यह देखने के लिए
hasGlyph(String)
तरीके का इस्तेमाल करें. - देखें कि इमोजी, वैरिएशन सिलेक्टर के साथ काम करता है या नहीं. विविधता सिलेक्टर की मदद से कुछ इमोजी को रंगीन या ब्लैक ऐंड व्हाइट दिखाएँ. मोबाइल डिवाइस पर, ऐप्लिकेशन को ब्लैक ऐंड व्हाइट के बजाय रंगीन इमोजी को दिखाना चाहिए. हालांकि, अगर आपका ऐप्लिकेशन इमोजी को टेक्स्ट के साथ इनलाइन दिखाता है, तो उसे ब्लैक ऐंड व्हाइट वैरिएशन का इस्तेमाल करना चाहिए. यह पता लगाने के लिए कि किसी इमोजी का कोई वैरिएंट है या नहीं, वैरिएंट चुनने वाले टूल का इस्तेमाल करें. वैरिएशन वाले वर्णों की पूरी सूची के लिए, इमोजी के अलग-अलग क्रम सेक्शन में, वैरिएशन के लिए यूनिकोड दस्तावेज़.
-
यह देख लें कि किसी इमोजी की स्किन टोन के हिसाब से हो. Android 7.0 उपयोगकर्ताओं को
स्किन के रंग के इमोजी को अपनी पसंद के हिसाब से रेंडर करने की सुविधा मिलती है. कीबोर्ड ऐप्लिकेशन को विज़ुअल उपलब्ध कराना चाहिए
ऐसे इमोजी के लिए संकेत जिनकी त्वचा का रंग एक से ज़्यादा है और जिन्हें इस्तेमाल करने वाले लोगों को ये काम करने की अनुमति देनी चाहिए
अपने पसंदीदा स्किन टोन को चुनें. यह पता लगाने के लिए कि सिस्टम के किन इमोजी में स्किन टोन में बदलाव करने की सुविधा है,
hasGlyph(String)
वाला तरीका अपनाएं. इमोजी की स्किन का रंग तय करने के लिए, यूनिकोड दस्तावेज़.
Android में ICU4J API
Android 7.0, अब
android.icu
पैकेज. माइग्रेशन आसान है और अक्सर
com.java.icu
नेमस्पेस से बदलकर,
android.icu
. अगर आपने अपने डिवाइस में पहले से ही ICU4J बंडल इस्तेमाल किया है, तो
ऐप्लिकेशन, Android में दिए गए android.icu
एपीआई पर स्विच किया जा रहा है
फ़्रेमवर्क से APK के साइज़ में काफ़ी बचत हो सकती है.
Android ICU4J API के बारे में ज़्यादा जानने के लिए, ICU4J सहायता लेख पढ़ें.
WebView
Chrome और वेबव्यू, एक साथ
Android 7.0 और इसके बाद के वर्शन पर, Chrome के 51 वर्शन से, आपके डिवाइस पर मौजूद Chrome APK का इस्तेमाल, Android System वेबव्यू उपलब्ध कराने और उन्हें रेंडर करने के लिए किया जाता है. इससे याददाश्त बढ़ाने में मदद मिलती है इसे डिवाइस का ही इस्तेमाल किया जाता है. साथ ही, इस डेटा को बनाए रखने के लिए ज़रूरी बैंडविथ को भी कम किया जाता है वेबव्यू अप-टू-डेट रखें, क्योंकि अब स्टैंडअलोन वेबव्यू APK अपडेट नहीं होगा जब तक Chrome चालू रहता है).
'डेवलपर के लिए सेटिंग और टूल' को चालू करके आप अपना वेबव्यू कंपनी चुन सकते हैं और वेबव्यू लागू करने की सुविधा चुनना. इस्तेमाल के लिए, किसी भी Chrome वर्शन (डेवलपर, बीटा या स्थिर) जो आपके डिवाइस पर इंस्टॉल है या वेबव्यू लागू करने के लिए स्टैंडअलोन वेबव्यू का APK.
मल्टीप्रोसेस
Android 7.0 में Chrome के वर्शन 51 और उसके बाद के वर्शन के लिए, वेबव्यू वेब कॉन्टेंट को डेवलपर विकल्प "मल्टीप्रोसेस वेबव्यू" चालू होने पर, सैंडबॉक्स की गई प्रोसेस को अलग करें चालू है.
हम Android के आने वाले वर्शन में मल्टीप्रोसेस वेबव्यू की सुविधा चालू करने से पहले, N पर काम करने और रनटाइम परफ़ॉर्मेंस के बारे में सुझाव/राय/शिकायत/राय मांग रहे हैं. इस वर्शन में, स्टार्टअप में लगने वाले समय, कुल मेमोरी के इस्तेमाल, और सॉफ़्टवेयर रेंडरिंग की परफ़ॉर्मेंस में गिरावट आ सकती है.
अगर आपको मल्टीप्रोसेस मोड में ऐसी समस्याएं मिलती हैं जिनकी उम्मीद नहीं थी, तो हम उन्हें. कृपया Chromium गड़बड़ी के ट्रैकर पर, वेबव्यू टीम से संपर्क करें.
पेज लोड होने से पहले JavaScript का चलना
Android 7.0 को टारगेट करने वाले ऐप्लिकेशन से, नया पेज लोड होने पर, JavaScript कॉन्टेक्स्ट रीसेट हो जाएगा. फ़िलहाल, इस संदर्भ को नए वेबव्यू इंस्टेंस में लोड किया गया पहला पेज.
जो डेवलपर वेबव्यू में JavaScript इंजेक्ट करना चाहते हैं उन्हें स्क्रिप्ट, जो पेज लोड होने के बाद शुरू होती है.
असुरक्षित ऑरिजिन पर जियोलोकेशन
Android 7.0 को टारगेट करने वाले ऐप्लिकेशन में, जियोलोकेशन एपीआई सिर्फ़ सुरक्षित ऑरिजिन पर (एचटीटीपीएस पर) अनुमति है. इस नीति को इसलिए बनाया गया है, ताकि उपयोगकर्ताओं के निजी डेटा को सुरक्षित रखा जा सके. ऐसा तब किया जाता है, जब वे असुरक्षित कनेक्शन का इस्तेमाल कर रहे हों.
वेबव्यू बीटा के साथ टेस्ट करना
वेबव्यू नियमित तौर पर अपडेट किया जाता है. इसलिए, हमारा सुझाव है कि आप यह जांच कर लें कि यह वर्शन काम करता है या नहीं के बीटा वर्शन को ऐक्सेस करने की सुविधा मिलती है. Android 7.0 पर, वेबव्यू के रिलीज़ होने से पहले के वर्शन की जांच शुरू करने के लिए, Chrome Dev या Chrome Beta में से किसी एक को डाउनलोड और इंस्टॉल करें. इसके बाद, ऊपर बताए गए तरीके से डेवलपर के विकल्पों में जाकर, वेबव्यू के तौर पर इसे चुनें. कृपया Chromium के बग ट्रैकर की मदद से समस्याओं की शिकायत करें, ताकि वेबव्यू का नया वर्शन रिलीज़ होने से पहले हम उन्हें ठीक कर सकें.
OpenGL™ ES 3.2 API
Android 7.0 में OpenGL ES 3.2 के लिए फ़्रेमवर्क इंटरफ़ेस और प्लैटफ़ॉर्म समर्थन जोड़ता है, जिनमें ये शामिल हैं:
- से सभी एक्सटेंशन
EXT_texture_sRGB_decode
के अलावा, Android एक्सटेंशन पैक (AEP). - एचडीआर और डिफ़र्ड शेडिंग के लिए, फ़्लोटिंग-पॉइंट फ़्रेमबफ़र.
- BaseVertex, बैच बनाने और स्ट्रीमिंग को बेहतर बनाने के लिए कॉल ड्रॉ कर सकता है.
- WebGL ओवरहेड कम करने के लिए, मज़बूत बफ़र ऐक्सेस कंट्रोल.
Android 7.0 पर OpenGL ES 3.2 के लिए फ़्रेमवर्क एपीआई को
GLES32
क्लास. OpenGL ES 3.2 का इस्तेमाल करते समय,
अपनी मेनिफ़ेस्ट फ़ाइल में ज़रूरी शर्तों को पूरा करने के लिए, <uses-feature>
टैग और
android:glEsVersion
एट्रिब्यूट.
OpenGL ES का इस्तेमाल करने के बारे में जानकारी के साथ-साथ, डिवाइस की रनटाइम के दौरान काम करने वाले OpenGL ES वर्शन के लिए, OpenGL ES API की गाइड देखें.
Android TV पर रिकॉर्डिंग
Android 7.0 में Android TV इनपुट से कॉन्टेंट रिकॉर्ड करने और चलाने की सुविधा मिलती है रिकॉर्डिंग के लिए नए एपीआई का इस्तेमाल करके सेवाएं दे रहे हैं. टाइम-शिफ़्ट करने की सुविधा देने वाले मौजूदा एपीआई के साथ काम करने वाली टीवी इनपुट सेवाएं, यह कंट्रोल कर सकती हैं कि किस चैनल का डेटा रिकॉर्ड किया जाए, रिकॉर्ड किए गए सेशन को कैसे सेव किया जाए, और रिकॉर्ड किए गए कॉन्टेंट के साथ उपयोगकर्ता के इंटरैक्शन को कैसे मैनेज किया जाए.
ज़्यादा जानकारी के लिए, Android TV रिकॉर्डिंग एपीआई देखें.
Android for Work
Android for Work, Android 7.0 पर चलने वाले डिवाइसों के लिए कई नई सुविधाएं और एपीआई जोड़ता है. कुछ खास बातें यहां दी गई हैं — सुविधाओं की पूरी सूची के लिए, देखें Android Enterprise की सुविधा सूची.
वर्क प्रोफ़ाइल के लिए सुरक्षा से जुड़ा चैलेंज
N SDK टूल को टारगेट करने वाले प्रोफ़ाइल के मालिक, वर्क प्रोफ़ाइल में चल रहे ऐप्लिकेशन के लिए, सुरक्षा से जुड़ी एक अलग चुनौती तय कर सकते हैं. जब कोई उपयोगकर्ता खोलने की कोशिश करता है, तब वर्क चैलेंज दिखता है
काम से जुड़े किसी भी ऐप्लिकेशन का इस्तेमाल कर सकते हैं. सुरक्षा की चुनौती को पूरा कर लेने पर,
और ज़रूरत होने पर इसे डिक्रिप्ट कर सकता है. प्रोफ़ाइल के मालिकों के लिए,
ACTION_SET_NEW_PASSWORD
, उपयोगकर्ता को काम सेट करने का निर्देश देता है
चैलेंज और ACTION_SET_NEW_PARENT_PROFILE_PASSWORD
प्रॉम्प्ट
उपयोगकर्ता को डिवाइस लॉक सेट करना होगा.
प्रोफ़ाइल के मालिक, वर्क चैलेंज के लिए अलग-अलग पासवर्ड नीतियां सेट कर सकते हैं
(जैसे, पिन कितनी देर तक का होना चाहिए या फ़िंगरप्रिंट का इस्तेमाल किया जा सकता है या नहीं)
प्रोफ़ाइल अनलॉक करने के लिए) setPasswordQuality()
,
setPasswordMinimumLength()
और इससे जुड़े तरीके. प्रोफ़ाइल
मालिक, DevicePolicyManager
का इस्तेमाल करके भी डिवाइस लॉक को सेट कर सकता है
इंस्टेंस, नई getParentProfileInstance()
तरीके से लौटाया गया.
इसके अलावा, प्रोफ़ाइल के मालिक,
नए setOrganizationColor()
और
setOrganizationName()
तरीके.
काम बंद करें
वर्क प्रोफ़ाइल वाले डिवाइस पर, उपयोगकर्ता वर्क मोड को टॉगल कर सकते हैं. वर्क मोड बंद होने पर, मैनेज किया जा रहा उपयोगकर्ता कुछ समय के लिए बंद हो जाता है. इससे वर्क प्रोफ़ाइल के ऐप्लिकेशन, बैकग्राउंड सिंक, और सूचनाएं बंद हो जाती हैं. इसमें प्रोफ़ाइल का मालिक भी शामिल है का इस्तेमाल करें. वर्क मोड बंद होने पर, सिस्टम एक स्थायी स्थिति दिखाता है आइकॉन का इस्तेमाल करें, ताकि उपयोगकर्ता को याद दिलाया जा सके कि वे वर्क ऐप्लिकेशन लॉन्च नहीं कर सकते. लॉन्चर से पता चलता है कि ऑफ़िस के काम से जुड़े ऐप्लिकेशन और विजेट ऐक्सेस नहीं किए जा सकते.
वीपीएन की सुविधा हमेशा चालू रहेगी
डिवाइस के मालिक और प्रोफ़ाइल के मालिक, यह पक्का कर सकते हैं कि वर्क ऐप्लिकेशन हमेशा कनेक्ट रहें किसी खास वीपीएन के ज़रिए. इसके बाद, सिस्टम अपने-आप वीपीएन को चालू कर देता है डिवाइस के बूट.
DevicePolicyManager
के नए तरीके
setAlwaysOnVpnPackage()
और
getAlwaysOnVpnPackage()
.
क्योंकि ऐप्लिकेशन के बिना, वीपीएन सेवाएं सीधे तौर पर सिस्टम से लिंक की जा सकती हैं
इंटरैक्शन के लिए, वीपीएन क्लाइंट को हमेशा चालू रहने वाले वीपीएन के लिए नए एंट्री पॉइंट मैनेज करने होंगे. जैसे
से पहले, सेवाओं को इंटेंट फ़िल्टर मैचिंग के ज़रिए सिस्टम में दिखाया जाता है
कार्रवाई android.net.VpnService
.
उपयोगकर्ता, सेटिंग>ज़्यादा>वीपीएन का इस्तेमाल करके, VPNService
तरीके लागू करने वाले वीपीएन को हमेशा चालू रखने वाले क्लाइंट को मैन्युअल तरीके से भी सेट कर सकते हैं. वीपीएन को हमेशा चालू रखने का विकल्प
सेटिंग से सिर्फ़ तब उपलब्ध होता है, जब वीपीएन क्लाइंट, एपीआई लेवल 24 को टारगेट करता हो.
कस्टमाइज़ किया गया प्रावधान
ऐप्लिकेशन, प्रोफ़ाइल के मालिक और डिवाइस के मालिक के प्रावधान को पसंद के मुताबिक बना सकता है
कॉर्पोरेट कलर और लोगो के साथ उपलब्ध है.
DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR
कस्टमाइज़ करता है
फ़्लो कलर. DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
कॉर्पोरेट लोगो से फ़्लो को पसंद के मुताबिक बनाता है.
बेहतर सुलभता सुविधाएं
Android 7.0 में अब सीधे स्वागत स्क्रीन पर विज़न सेटिंग उपलब्ध है डिवाइस सेटअप. इससे, लोगों के लिए इसे खोजना और कॉन्फ़िगर करना बहुत आसान हो जाता है उनके डिवाइस पर सुलभता सुविधाएं, जिनमें ज़ूम करने के जेस्चर, फ़ॉन्ट, और ज़ूम करने की सुविधा शामिल है साइज़, डिसप्ले साइज़, और TalkBack.
इन सुलभता सुविधाओं को ज़्यादा प्रमुखता से जगह मिलने से, आपके उपयोगकर्ता चालू होने पर आपके ऐप्लिकेशन को आज़माने की संभावना बढ़ जाती है. पक्का करें कि आपने ऐप्लिकेशन की जांच कर ली है आपने ये सेटिंग चालू की होंगी. इसे सेटिंग > में जाकर चालू किया जा सकता है सुलभता.
साथ ही, Android 7.0 में, सुलभता सेवाएं अब लोगों को मोटर का इस्तेमाल करने में मदद कर सकती हैं स्क्रीन टच करने में दिक्कत होना. नया एपीआई, आपको ऐसी सेवाएं बनाने की अनुमति देता है जिनमें फ़ेस-ट्रैकिंग, आई-ट्रैकिंग, पॉइंट स्कैनिंग जैसी सुविधाओं के साथ-साथ उन उपयोगकर्ताओं की ज़रूरतों को पूरा करता हो.
ज़्यादा जानकारी के लिए, GestureDescription
के लिए रेफ़रंस दस्तावेज़ देखें.
डायरेक्ट बूट
डायरेक्ट बूट की सुविधा, डिवाइस के स्टार्ट होने के समय को बेहतर बनाती है और रजिस्टर करने देती है अचानक से फिर से चालू होने के बाद भी, ऐप्लिकेशन सीमित तौर पर काम करते हैं. उदाहरण के लिए, अगर एन्क्रिप्ट (सुरक्षित) किया गया कोई डिवाइस, उपयोगकर्ता के सोने के दौरान फिर से चालू होता है, तो रजिस्टर किए गए अलार्म, मैसेज, और इनकमिंग कॉल की सूचनाएं अब भी मिल सकती हैं उपयोगकर्ता को बेहतर ढंग से इस्तेमाल करने में मदद करता है. इसका मतलब यह भी है कि सुलभता सेवाएं रीस्टार्ट होने के तुरंत बाद उपलब्ध हो जाता है.
डायरेक्ट बूट, Android 7.0 में फ़ाइल पर आधारित एन्क्रिप्शन का फ़ायदा लेता है. इससे सिस्टम और ऐप्लिकेशन, दोनों के डेटा के लिए एन्क्रिप्शन की बेहतर नीतियां लागू की जा सकती हैं. सिस्टम, चुनिंदा सिस्टम डेटा और साफ़ तौर पर डिवाइस के एन्क्रिप्ट किए गए स्टोर का इस्तेमाल करता है रजिस्टर किया गया ऐप्लिकेशन डेटा शामिल है. डिफ़ॉल्ट रूप से, क्रेडेंशियल एन्क्रिप्ट (सुरक्षित) किए गए स्टोर का इस्तेमाल अन्य सिस्टम डेटा, उपयोगकर्ता का डेटा, ऐप्लिकेशन, और ऐप्लिकेशन का डेटा.
बूट करने पर, सिस्टम
डेटा को सिर्फ़ डिवाइस से एन्क्रिप्ट (सुरक्षित) किया जाना चाहिए. साथ ही, इसमें ऐप्लिकेशन या डेटा का सामान्य ऐक्सेस नहीं होना चाहिए.
अगर आपके पास ऐसे कॉम्पोनेंट हैं जिन्हें आपको इस मोड में चलाना है, तो रजिस्टर करें
ऐसा करने के लिए, मेनिफ़ेस्ट में फ़्लैग सेट करें. रीस्टार्ट होने के बाद, सिस्टम चालू हो जाता है
LOCKED_BOOT_COMPLETED
को ब्रॉडकास्ट करके कॉम्पोनेंट रजिस्टर किए गए
इंटेंट. सिस्टम यह पक्का करता है कि डिवाइस पर एन्क्रिप्ट (सुरक्षित) किया गया ऐप्लिकेशन डेटा, अनलॉक करने से पहले उपलब्ध हो. अन्य सभी डेटा तब तक उपलब्ध नहीं होता है, जब तक उपयोगकर्ता अपने लॉक की पुष्टि नहीं करता
कर सकते हैं.
कुंजी को प्रमाणित करें
Android 7.0 में मुख्य पुष्टि की सुविधा लॉन्च की गई है. यह सुरक्षा के लिए बनाया गया एक नया टूल है, जो आपको यह पक्का करना होगा कि डिवाइस के हार्डवेयर पर काम करने वाले सॉफ़्टवेयर में सेव किए गए कुंजी के जोड़े) कीस्टोर उस संवेदनशील जानकारी की सही तरीके से सुरक्षा करता है जिसे आपका ऐप्लिकेशन इस्तेमाल करता है इस्तेमाल. इस टूल का इस्तेमाल करने से, आपको यह भरोसा होता है कि आपका ऐप्लिकेशन सुरक्षित हार्डवेयर में मौजूद कुंजियों के साथ इंटरैक्ट करता है, भले ही डिवाइस आपका ऐप्लिकेशन रूट किया हुआ है. अगर हार्डवेयर-बैक्ड कीस्टोर की कुंजियों का इस्तेमाल किया जाता है, तो आपको इस टूल का इस्तेमाल करना चाहिए, खास तौर पर तब, जब आप ऐप्लिकेशन में संवेदनशील जानकारी की पुष्टि करेगा.
कुंजी को प्रमाणित करने की सुविधा से, यह पुष्टि की जा सकती है कि आरएसए या ईसी कुंजी का जोड़ा, इन्हें डिवाइस के हार्डवेयर-बैक्ड कीस्टोर में बनाया और सेव किया जाता है ट्रस्टेड एक्ज़ीक्यूशन एनवायरमेंट (टीईई). इस टूल से आपको यह भी पता चलता है कि डिवाइस से बाहर की सेवा, जैसे कि आपके ऐप्लिकेशन का बैक-एंड सर्वर. पुष्टि करें कि कुंजी का जोड़ा मान्य है या नहीं. ये सुविधाएं, सुरक्षा का एक अतिरिक्त लेवल, जो कुंजी के जोड़े को सुरक्षित रखता है. भले ही, कोई व्यक्ति डिवाइस को रूट करता है या Android प्लैटफ़ॉर्म की सुरक्षा को नुकसान पहुंचाता है डिवाइस पर.
ध्यान दें: Android 7.0 वर्शन पर चलने वाले कुछ ही डिवाइस
हार्डवेयर-लेवल की कुंजी को प्रमाणित करने की सुविधा दी जा सके; Android 7.0 वर्शन वाले अन् य सभी डिवाइस
इसके बजाय सॉफ़्टवेयर लेवल की कुंजी को प्रमाणित करने की सुविधा का इस्तेमाल करें. प्रॉपर्टी की पुष्टि करने से पहले
में डिवाइस की हार्डवेयर-बैक्ड की का इस्तेमाल किया जाता है, तो
को यह पक्का करना चाहिए कि डिवाइस में हार्डवेयर-लेवल की पुष्टि करने की सुविधा काम करती है. यहां की यात्रा पर हूं
ऐसा करने पर, आपको यह जांच करनी चाहिए कि पुष्टि करने के सर्टिफ़िकेट की चेन में एक रूट
ऐसा सर्टिफ़िकेट जिस पर Google की पुष्टि करने वाली रूट कुंजी से हस्ताक्षर किए जाते हैं. साथ ही,
कुंजी में मौजूद attestationSecurityLevel
एलिमेंट
ब्यौरा वाले डेटा स्ट्रक्चर को ट्रस्टेड एनवायरमेंट सिक्योरिटी पर सेट किया गया है
लेवल.
ज़्यादा जानकारी के लिए, देखें मुख्य प्रमाणित करना डेवलपर दस्तावेज़ पढ़ें.
नेटवर्क सिक्योरिटी कॉन्फ़िगरेशन
Android 7.0 में, ऐप्लिकेशन अपने हिसाब से ये बदलाव कर सकते हैं कि वे सुरक्षित (एचटीटीपीएस, टीएलएस) कैसे काम करें बिना किसी कोड बदलाव के, डिक्लेरेटिव टोन का इस्तेमाल करके सुरक्षित रूप से कनेक्ट कर सकते हैं कंवेंशनल का इस्तेमाल करने के बजाय नेटवर्क सिक्योरिटी कॉन्फ़िगरेशन गड़बड़ी वाले प्रोग्रामैटिक एपीआई (जैसे, X509TrustManager).
ये सुविधाएं काम करती हैं:
- पसंद के मुताबिक ट्रस्ट ऐंकर. इससे ऐप्लिकेशन को यह तय करने की सुविधा मिलती है कि सुरक्षित कनेक्शन के लिए, किन सर्टिफ़िकेट देने वाली संस्थाओं (सीए) पर भरोसा किया जाए. इसके लिए उदाहरण के लिए, खुद हस्ताक्षर किए हुए खास सर्टिफ़िकेट या सार्वजनिक CA के प्रतिबंधित सेट पर भरोसा करना.
- सिर्फ़ डीबग के लिए बदलाव. इससे ऐप्लिकेशन डेवलपर को सुरक्षित तरीके से डीबग करने में मदद मिलती है के उपयोगकर्ताओं को उनके ऐप्लिकेशन के सुरक्षित कनेक्शन की समस्या का समाधान करने के लिए कहा जाता है. बेस.
- साफ़ टेक्स्ट ट्रैफ़िक से ऑप्ट-आउट करना. इससे ऐप्लिकेशन को, क्लियरटेक्स्ट ट्रैफ़िक के अनजाने में इस्तेमाल से बचाने में मदद मिलती है.
- सर्टिफ़िकेट पिन करना. यह एक बेहतर सुविधा है. इसकी मदद से, ऐप्लिकेशन को यह तय करने की अनुमति मिलती है कि सुरक्षित कनेक्शन के लिए, किन सर्वर कुंजियों पर भरोसा किया जाए.
ज़्यादा जानकारी के लिए, नेटवर्क सुरक्षा कॉन्फ़िगरेशन देखें.
डिफ़ॉल्ट भरोसेमंद सर्टिफ़िकेट देने वाली संस्था
डिफ़ॉल्ट रूप से, Android 7.0 को टारगेट करने वाले ऐप्लिकेशन सिर्फ़ सिस्टम से मिले सर्टिफ़िकेट पर भरोसा करते हैं और अब उपयोगकर्ता के जोड़े गए सर्टिफ़िकेट देने वाली संस्था (सीए) पर भरोसा नहीं करेगा. Android 7.0 (एपीआई लेवल 24) को टारगेट करने वाले ऐसे ऐप्लिकेशन जो उपयोगकर्ता के जोड़े गए सीए पर भरोसा करना चाहते हैं उन्हें नेटवर्क सुरक्षा कॉन्फ़िगरेशन का इस्तेमाल करना चाहिए. इससे, यह तय किया जा सकता है कि उपयोगकर्ता के जोड़े गए सीए पर भरोसा कैसे किया जाए.
APK सिग्नेचर स्कीम v2
Android 7.0 में पेश है 'APK सिग्नेचर स्कीम v2'. यह ऐप्लिकेशन साइनिंग की एक नई स्कीम है, जो ऐप्लिकेशन को ज़्यादा तेज़ी से इंस्टॉल करने की सुविधा देता है. साथ ही, बिना अनुमति वाले उपयोगकर्ताओं से ज़्यादा सुरक्षा भी देता है APK फ़ाइलों में किए जाने वाले बदलाव. डिफ़ॉल्ट रूप से, Android Studio 2.2 और Android Gradle 2.2 के लिए प्लग इन, APK सिग्नेचर स्कीम v2 और दोनों का इस्तेमाल करके अपने ऐप्लिकेशन पर साइन करें परंपरागत साइनिंग स्कीम इस्तेमाल की है, जिसमें JAR साइनिंग का इस्तेमाल किया जाता है.
हमारा सुझाव है कि आप अपने ऐप्लिकेशन पर APK सिग्नेचर स्कीम v2 लागू करें. हालांकि, यह नई सुविधा
स्कीम ज़रूरी नहीं है. अगर APK का इस्तेमाल करते समय आपका ऐप्लिकेशन ठीक से नहीं बनता है
सिग्नेचर स्कीम v2, आपके पास नई स्कीम को बंद करने का विकल्प है. बंद करने की प्रोसेस
Android Studio 2.2 और Gradle 2.2 के लिए Android प्लग इन,
जिसमें सिर्फ़ पारंपरिक साइनिंग स्कीम का इस्तेमाल किया गया हो. सिर्फ़
ट्रेडिशनल स्कीम में, मॉड्यूल-लेवल की build.gradle
फ़ाइल खोलें. इसके बाद,
अपने रिलीज़ साइनिंग में v2SigningEnabled false
लाइन जोड़ें
कॉन्फ़िगरेशन:
android { ... defaultConfig { ... } signingConfigs { release { storeFile file("myreleasekey.keystore") storePassword "password" keyAlias "MyReleaseKey" keyPassword "password" v2SigningEnabled false } } }
चेतावनी: अगर आप APK का इस्तेमाल करके अपने ऐप्लिकेशन पर हस्ताक्षर करते हैं
सिग्नेचर स्कीम v2 और ऐप्लिकेशन में और बदलाव करना, यानी ऐप्लिकेशन का सिग्नेचर
अमान्य है. इस वजह से, zipalign
जैसे टूल इस्तेमाल करें
'APK सिग्नेचर स्कीम v2' का इस्तेमाल करके, अपने ऐप्लिकेशन पर हस्ताक्षर करें.
ज़्यादा जानकारी के लिए, Android Studio के दस्तावेज़ पढ़ें. इसमें बताया गया है कि Android Studio में किसी ऐप्लिकेशन पर साइन इन करते हैं और इसे कॉन्फ़िगर करने का तरीका बताते हैं Gradle के लिए Android प्लग इन का इस्तेमाल करके ऐप्लिकेशन साइन करने के लिए बिल्ड फ़ाइल.
डायरेक्ट्री का ऐक्सेस
Android 7.0 में, ऐप्लिकेशन किसी खास बाहरी सोर्स से डेटा ऐक्सेस करने का अनुरोध करने के लिए, नए एपीआई का इस्तेमाल कर सकते हैं
डिवाइस के स्टोरेज में सेव की गई डायरेक्ट्री. इनमें एसडी जैसे हटाए जा सकने वाले मीडिया पर मौजूद डायरेक्ट्री भी शामिल हैं
कार्ड. नए एपीआई, आपके ऐप्लिकेशन के स्टैंडर्ड को ऐक्सेस करने के तरीके को काफ़ी आसान बनाते हैं
बाहरी स्टोरेज की डायरेक्ट्री, जैसे कि Pictures
डायरेक्ट्री. ऐप्लिकेशन
जैसे फ़ोटो ऐप्लिकेशन
READ_EXTERNAL_STORAGE
, जो सभी स्टोरेज का ऐक्सेस देता है
डायरेक्ट्री या स्टोरेज ऐक्सेस फ़्रेमवर्क का इस्तेमाल कर सकते हैं. इनकी मदद से, उपयोगकर्ता इन
डायरेक्ट्री मिलेगी.
इसके अलावा, नए एपीआई, उपयोगकर्ता के लिए बाहरी सोर्स आईडी देने के लिए उठाए जाने वाले कदमों को आसान बनाते हैं आपके ऐप्लिकेशन के स्टोरेज का ऐक्सेस. जब नए एपीआई का इस्तेमाल किया जाता है, तो सिस्टम अनुमतियों वाले यूज़र इंटरफ़ेस (यूआई) की इमेज जिसमें साफ़ तौर पर बताया गया हो कि ऐप्लिकेशन किस डायरेक्ट्री में है इसके ऐक्सेस का अनुरोध कर रहा है.
ज़्यादा जानकारी के लिए, देखें दायरा डायरेक्ट्री ऐक्सेस से जुड़े डेवलपर के दस्तावेज़.
कीबोर्ड शॉर्टकट सहायक
Android 7.0 में, उपयोगकर्ता
कीबोर्ड शॉर्टकट की स्क्रीन, जो दोनों में उपलब्ध सभी शॉर्टकट दिखाती है
को कंट्रोल किया जा सकता है. सिस्टम इन्हें इकट्ठा करता है
अगर शॉर्टकट मौजूद हैं, तो ऐप्लिकेशन के मेन्यू से अपने-आप शॉर्टकट बन जाते हैं. आपके पास स्क्रीन के लिए, अपनी पसंद के मुताबिक शॉर्टकट की सूचियां बनाने का भी विकल्प होता है. ऐसा करने के लिए, onProvideKeyboardShortcuts()
तरीके को बदलें.
ध्यान दें: Meta बटन सभी कीबोर्ड पर मौजूद नहीं होता: Macintosh कीबोर्ड पर, यह Command बटन होता है, Windows कीबोर्ड पर यह Windows बटन होता है, और Pixel C और ChromeOS कीबोर्ड पर यह Search बटन होता है.
अपने ऐप्लिकेशन में कहीं से भी कीबोर्ड शॉर्टकट हेल्पर ट्रिगर करने के लिए,
requestShowKeyboardShortcuts()
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
संबंधित गतिविधि से हटा दिया जाता है.
कस्टम पॉइंटर एपीआई
Android 7.0 में Custom Pointer API की सुविधा दी गई है. इससे, आपको पॉइंटर के दिखने, दिखने, और काम करने के तरीके से जुड़ी जानकारी. यह क्षमता यह सुविधा खास तौर पर तब काम आती है, जब उपयोगकर्ता यूज़र इंटरफ़ेस (यूआई) ऑब्जेक्ट. डिफ़ॉल्ट पॉइंटर, स्टैंडर्ड आइकॉन का इस्तेमाल करता है. इस एपीआई में ये भी शामिल हैं जैसे, पॉइंटर आइकॉन का रंग-रूप बदलने जैसी ऐडवांस सुविधाएं क्लिक करें.
पॉइंटर आइकॉन सेट करने के लिए, onResolvePointerIcon()
को बदलें
View
क्लास का तरीका. यह तरीका,
PointerIcon
ऑब्जेक्ट, जिससे जुड़ा आइकॉन ड्रॉ करना है
किसी खास मोशन इवेंट का हिस्सा बनें.
Sustained Performance API
लंबे समय तक चलने वाले ऐप्लिकेशन की परफ़ॉर्मेंस में बहुत उतार-चढ़ाव हो सकता है, क्योंकि सिस्टम, सिस्टम-ऑन-चिप इंजन को थ्रॉटल करता है, क्योंकि डिवाइस के कॉम्पोनेंट तापमान की सीमाएं. इस उतार-चढ़ाव की वजह से, ऐप्लिकेशन डेवलपर को ऐसे ऐप्लिकेशन बनाने में मुश्किल आती है जो लंबे समय तक अच्छी परफ़ॉर्मेंस देते हों.
इन सीमाओं को पूरा करने के लिए, Android 7.0 में लगातार परफ़ॉर्मेंस वाला मोड, जिसकी मदद से OEM, लंबे समय तक चलने वाले ऐप्लिकेशन के लिए डिवाइस की परफ़ॉर्मेंस की क्षमताएं. ऐप्लिकेशन डेवलपर, इन अहम जानकारी का इस्तेमाल करके ऐप्लिकेशन को बेहतर बना सकते हैं. इससे, लंबे समय तक डिवाइस की परफ़ॉर्मेंस को बेहतर बनाया जा सकता है.
ऐप्लिकेशन डेवलपर, Android 7.0 में इस नए एपीआई को सिर्फ़ Nexus 6P डिवाइसों पर आज़मा सकते हैं. इस सुविधा का इस्तेमाल करने के लिए,
विंडो के लिए, लंबे समय तक परफ़ॉर्म करने वाला विंडो फ़्लैग सेट करें
आपको लगातार परफ़ॉर्मेंस मोड में चलाना है. इसका इस्तेमाल करके यह फ़्लैग सेट करें:
Window.setSustainedPerformanceMode()
तरीका. सिस्टम अपने-आप
विंडो के फ़ोकस में नहीं होने पर, यह मोड बंद कर देता है.
वीआर के लिए सहायता
Android 7.0 में नए वीआर मोड के लिए, प्लैटफ़ॉर्म सहायता और ऑप्टिमाइज़ेशन शामिल किए गए हैं, ताकि डेवलपर उपयोगकर्ताओं को अच्छी क्वालिटी का मोबाइल वीआर अनुभव देने के लिए. उन्हें कई तरीकों से इनमें वीआर ऐप्लिकेशन के लिए खास सीपीयू कोर का ऐक्सेस शामिल है. अपने ऐप्लिकेशन में, हेड-ट्रैकिंग की सुविधा इस्तेमाल की जा सकती है. और स्टीरियो नोटिफ़िकेशन भी शामिल हैं, जो VR के साथ काम करते हैं. सबसे ज़रूरी बात, Android 7.0 वे ग्राफ़िक जो इंतज़ार के समय का कम इस्तेमाल करते हैं. Android 7.0 के लिए वीआर ऐप्लिकेशन बनाने से जुड़ी पूरी जानकारी के लिए, Android के लिए Google VR SDK टूल देखें.
प्रिंट सेवा बेहतर बनाना
Android 7.0 में, प्रिंट सेवा के डेवलपर अब अतिरिक्त जानकारी दिखा सकते हैं व्यक्तिगत प्रिंटर और प्रिंट जॉब के बारे में.
अलग-अलग प्रिंटर की सूची बनाते समय, प्रिंट सेवा अब हर प्रिंटर के हिसाब से प्रिंटर सेट कर सकती है आइकॉन दो तरह से:
- आप कॉल करके संसाधन आईडी से आइकॉन सेट कर सकते हैं
setIconResourceId()
. - नेटवर्क से आइकॉन दिखाने के लिए, कॉल करें
setHasCustomPrinterIcon()
, साथ ही, आइकॉन का अनुरोध करने के लिए कॉलबैक सेट करनाonRequestCustomPrinterIcon()
.
इसके अलावा, अतिरिक्त जानकारी दिखाने के लिए, हर प्रिंटर की गतिविधि की जानकारी भी दी जा सकती है
setInfoIntent()
पर कॉल करके जानकारी पाएं.
प्रिंट जॉब की प्रोग्रेस और स्थिति को प्रिंट किया जा सकता है
कॉल करके सूचना पाने की सुविधा
setProgress()
और
setStatus()
.
Frame Metrics API
फ़्रेम मेट्रिक एपीआई की मदद से ऐप्लिकेशन, यूज़र इंटरफ़ेस (यूआई) रेंडरिंग पर नज़र रख सकता है
परफ़ॉर्मेंस. यह एपीआई, फ़्रेम को ट्रांसफ़र करने के लिए, स्ट्रीमिंग Pub/Sub एपीआई को बिना अनुमति के सार्वजनिक करके यह सुविधा देता है
ऐप्लिकेशन की मौजूदा विंडो के लिए समय की जानकारी. यह डेटा, adb shell
dumpsys gfxinfo framestats
के दिखाए गए डेटा के बराबर होता है. हालांकि, यह पिछले 120 फ़्रेम तक सीमित नहीं होता.
इंटरैक्शन-लेवल यूआई को मेज़र करने के लिए, फ़्रेम मेट्रिक एपीआई का इस्तेमाल किया जा सकता है
यूएसबी कनेक्शन के बिना भी बेहतर परफ़ॉर्मेंस. यह एपीआई
इसकी तुलना में, ज़्यादा बारीकी से डेटा इकट्ठा करने की सुविधा मिलती है
adb shell dumpsys gfxinfo
. ऐसा इसलिए मुमकिन है, क्योंकि
सिस्टम, ऐप्लिकेशन में होने वाले खास इंटरैक्शन का डेटा इकट्ठा कर सके; सिस्टम
पूरे ऐप्लिकेशन की ग्लोबल समरी को कैप्चर करने की ज़रूरत नहीं होती
हटाया जा सकता है या किसी वैश्विक स्थिति को हटाया जा सकता है. आप इसका इस्तेमाल कर सकते हैं
परफ़ॉर्मेंस डेटा इकट्ठा करने और यूज़र इंटरफ़ेस (यूआई) की परफ़ॉर्मेंस में रिग्रेशन को कैप्चर करने की सुविधा
का इस्तेमाल किया जा सकता है.
किसी विंडो को मॉनिटर करने के लिए, OnFrameMetricsAvailableListener.onFrameMetricsAvailable()
callback का तरीका लागू करें और उसे उस विंडो पर रजिस्टर करें.
एपीआई, FrameMetrics
ऑब्जेक्ट उपलब्ध कराता है. इसमें टाइमिंग डेटा होता है. रेंडरिंग सबसिस्टम, फ़्रेम के लाइफ़साइकल में अलग-अलग माइलस्टोन के लिए यह डेटा रिपोर्ट करता है. इन मेट्रिक का इस्तेमाल किया जा सकता है: UNKNOWN_DELAY_DURATION
,
INPUT_HANDLING_DURATION
, ANIMATION_DURATION
,
LAYOUT_MEASURE_DURATION
, DRAW_DURATION
, SYNC_DURATION
,
COMMAND_ISSUE_DURATION
, SWAP_BUFFERS_DURATION
,
TOTAL_DURATION
और FIRST_DRAW_FRAME
.
वर्चुअल फ़ाइलें
Android के पिछले वर्शन में, आपका ऐप्लिकेशन स्टोरेज ऐक्सेस फ़्रेमवर्क का इस्तेमाल कर सकता था. इससे उपयोगकर्ताओं को Google Drive जैसे क्लाउड स्टोरेज खातों से फ़ाइलें चुनने की अनुमति मिलती थी. हालांकि, उन फ़ाइलों को दर्शाने का कोई तरीका नहीं था उनमें डायरेक्ट बाइटकोड का इस्तेमाल नहीं किया गया हो; प्रत्येक फ़ाइल को उपलब्ध कराना था, इनपुट स्ट्रीम.
Android 7.0 में, स्टोरेज के ऐक्सेस में वर्चुअल फ़ाइलों का कॉन्सेप्ट जोड़ा गया है
फ़्रेमवर्क. वर्चुअल फ़ाइल सुविधा की मदद से,
दस्तावेज़ के यूआरआई लौटाने के लिए DocumentsProvider
, जो ऐसा हो सकता है
ACTION_VIEW
इंटेंट के साथ इस्तेमाल किया जाता है, भले ही वे
इनमें सीधे तौर पर बाइट कोड दिखाने की सुविधा नहीं होती. Android 7.0 से आपको
उपयोगकर्ता फ़ाइलों के लिए वैकल्पिक फ़ॉर्मैट उपलब्ध कराना, वर्चुअल या अन्य तरह से.
वर्चुअल फ़ाइलों को खोलने के बारे में ज़्यादा जानने के लिए, देखें वर्चुअल फ़ाइलें स्टोरेज को ऐक्सेस करने के फ़्रेमवर्क की गाइड.