ग्राफ़िक्स

  
Android के अलग-अलग वर्शन पर ग्राफ़िक की सुविधाओं का इस्तेमाल करना

इस टेबल में, androidx.graphics ग्रुप के सभी आर्टफ़ैक्ट की सूची दी गई है.

सह-प्रॉडक्ट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा वर्शन
graphics-core 1.0.3 - - -
graphics-path 1.0.1 - - -
graphics-shapes 1.0.1 - 1.1.0-beta01 -
इस लाइब्रेरी को पिछली बार इस तारीख को अपडेट किया गया था: 30 जुलाई, 2025

डिपेंडेंसी का एलान करना

Graphics पर डिपेंडेंसी जोड़ने के लिए, आपको अपने प्रोजेक्ट में Google Maven रिपॉज़िटरी जोड़नी होगी. ज़्यादा जानकारी के लिए, Google की Maven रिपॉज़िटरी पढ़ें.

अपने ऐप्लिकेशन या मॉड्यूल के लिए, build.gradle फ़ाइल में उन आर्टफ़ैक्ट की डिपेंडेंसी जोड़ें जिनकी आपको ज़रूरत है:

ग्रूवी

dependencies {
    implementation "androidx.graphics:graphics-core:1.0.3"
    implementation "androidx.graphics:graphics-path:1.0.1"
    implementation "androidx.graphics:graphics-shapes:1.1.0-beta01"
}

Kotlin

dependencies {
    implementation("androidx.graphics:graphics-core:1.0.3")
    implementation("androidx.graphics:graphics-path:1.0.1")
    implementation("androidx.graphics:graphics-shapes:1.1.0-beta01")
}

डिपेंडेंसी के बारे में ज़्यादा जानने के लिए, बिल्ड डिपेंडेंसी जोड़ना लेख पढ़ें.

सुझाव/राय दें या शिकायत करें

आपके सुझाव, शिकायत या राय से Jetpack को बेहतर बनाने में मदद मिलती है. अगर आपको कोई नई समस्या मिलती है या इस लाइब्रेरी को बेहतर बनाने के लिए आपके पास कोई सुझाव है, तो हमें बताएं. कृपया नई लाइब्रेरी बनाने से पहले, इस लाइब्रेरी में मौजूद मौजूदा समस्याओं को देखें. स्टार बटन पर क्लिक करके, किसी मौजूदा समस्या के लिए वोट किया जा सकता है.

नई समस्या बनाना

ज़्यादा जानकारी के लिए, Issue Tracker का दस्तावेज़ देखें.

इस आर्टफ़ैक्ट के लिए कोई रिलीज़ नोट नहीं है.

ग्राफ़िक्स वर्शन 1.1

वर्शन 1.1.0-beta01

30 जुलाई, 2025

androidx.graphics:graphics-*:1.1.0-beta01 रिलीज़ हो गया है. वर्शन 1.1.0-beta01 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • Kotlin 2.0 के साथ रिलीज़ किए गए प्रोजेक्ट के लिए, KGP 2.0.0 या इसके बाद का वर्शन इस्तेमाल करना ज़रूरी है (Idb6b5)
  • mingwX64, js, और wasm कंपाइलेशन टारगेट जोड़ें. (I2c46a)

वर्शन 1.1.0-alpha01

11 दिसंबर, 2024

androidx.graphics:graphics-*:1.1.0-alpha01 रिलीज़ हो गया है. वर्शन 1.1.0-alpha01 में ये कमिट शामिल हैं.

नई सुविधाएं

  • मुख्य डेमो को फिर से बनाया गया है. अब यह एक सामान्य शेप एडिटर है. इसकी मदद से, svg पाथ से शेप इंपोर्ट किए जा सकते हैं. साथ ही, ऑटोमैटिक प्रोसेस में छूटी हुई सुविधाओं को मैन्युअल तरीके से बदला जा सकता है. इसके अलावा, नतीजे को ऐसे कोड में एक्सपोर्ट किया जा सकता है जिसका इस्तेमाल प्रोडक्शन कोड में किया जा सकता है. (I1ac13)
  • शेप की आउटलाइन की प्रोग्रेस के लिए, ऐंगल मेज़रमेंट को कर्व की लंबाई के मेज़रमेंट से बदलें. इससे, मॉर्फ़िंग के लिए ज़्यादा जटिल शेप का इस्तेमाल किया जा सकता है. (I75478) , I390dd
  • हमने फ़ीचर मैपिंग एल्गोरिदम को बेहतर बनाया है, ताकि ज़्यादा मॉर्फ़ ज़्यादा नैचुरल दिखें. (I83287)

एपीआई में हुए बदलाव

  • SVG पाथ इंपोर्ट करने और सीरियलाइज़र की सुविधा जोड़ी गई. आम तौर पर, यह प्रोसेस इस तरह होती है:
    • एसवीजी पाथ (एसवीजी के path एलिमेंट पर मौजूद d एट्रिब्यूट की वैल्यू) को List<Feature> में बदलने के लिए, नए SvgPathParser.parseFeatures() का इस्तेमाल करें.
    • इसमें बदलाव किया जा सकता है. इसके बाद, इसे FeatureSerializer.serialize() की मदद से स्ट्रिंग में बदला जा सकता है.
    • नतीजे के तौर पर मिली स्ट्रिंग का इस्तेमाल प्रोडक्शन कोड में किया जा सकता है. इसके लिए, इसे FeatureSerializer.parse() की मदद से इंपोर्ट करें
    • ध्यान दें कि पहले और दूसरे चरण को सिर्फ़ एक बार पूरा किया जाता है. इसे नए ऐप्लिकेशन के साथ भी पूरा किया जा सकता है. प्रोडक्शन कोड को सिर्फ़ तीसरा चरण पूरा करना होगा. (I9bd00, b/371196190), (Ic3842), (If68ed), (I10251)
  • पॉलीगॉन फ़ीचर और फ़ीचर टाइप दिखाता है. अब List<Features> लेने वाले बेस कंस्ट्रक्टर की मदद से, ज़्यादा सामान्य RoundedPolygons बनाए जा सकते हैं. सुविधाएं मुख्य रूप से क्यूबिक बेज़ियर कर्व की सूची होती हैं. हालांकि, इन्हें टैग किया जाता है, ताकि मॉर्फ़ एल्गोरिदम, शुरुआती और आखिरी शेप के बीच मैच कर सके. इसमें कॉन्वेक्स कॉर्नर को कॉन्वेक्स कॉर्नर और कॉनकेव कॉर्नर को कॉनकेव कॉर्नर पर मैप किया जाता है. (I61e76), (I1fc5c)
  • watchosDeviceArm64 KMP टारगेट और टारगेट kotlin 1.9 के लिए सहायता जोड़ता है. (Icf15d, b/364652024)

गड़बड़ियां ठीक की गईं

  • जब आखिरी सुविधा खाली थी, तब एज केस ठीक किया गया. (I390dd)
  • RoundedPolygon को ज़्यादा असरदार बनाएं. (Ib862c, b/360888486)
  • RoundedPolygon को शुरू करने में आ रही गड़बड़ी को ठीक किया गया है. (I83ddb)
  • बहुभुज के केंद्र का अनुमान लगाने वाले एल्गोरिदम में मौजूद गड़बड़ी को ठीक किया गया. (Ida147)

ग्राफ़िक शेप वर्शन 1.0

वर्शन 1.0.1

4 सितंबर, 2024

androidx.graphics:graphics-shapes:1.0.1, androidx.graphics:graphics-shapes-android:1.0.1, और androidx.graphics:graphics-shapes-desktop:1.0.1 रिलीज़ किए गए हैं. वर्शन 1.0.1 में ये कमिट शामिल हैं.

वर्शन 1.0.0

21 अगस्त, 2024

androidx.graphics:graphics-shapes:1.0.0, androidx.graphics:graphics-shapes-android:1.0.0, और androidx.graphics:graphics-shapes-desktop:1.0.0 रिलीज़ किए गए हैं. वर्शन 1.0.0 में ये कमिट शामिल हैं.

वर्शन 1.0.0-rc01

24 जुलाई, 2024

androidx.graphics:graphics-shapes:1.0.0-rc01, androidx.graphics:graphics-shapes-android:1.0.0-rc01, और androidx.graphics:graphics-shapes-desktop:1.0.0-rc01 रिलीज़ किए गए हैं. वर्शन 1.0.0-rc01 में ये कमिट शामिल हैं.

वर्शन 1.0.0-beta01

1 मई, 2024

androidx.graphics:graphics-shapes:1.0.0-beta01, androidx.graphics:graphics-shapes-android:1.0.0-beta01, और androidx.graphics:graphics-shapes-desktop:1.0.0-beta01 रिलीज़ किए गए हैं. वर्शन 1.0.0-beta01 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • शेप को पहले से घुमाने की अनुमति दें, ताकि वे किसी दूसरी जगह से शुरू हो सकें. इस बदलाव की मदद से, pillStar शेप की कर्व वाली लाइनें, डिफ़ॉल्ट पॉइंट के बजाय किसी दूसरे पॉइंट से शुरू की जा सकती हैं. यह तब काम आ सकता है, जब आपको शेप के पाथ को ऐनिमेट करना हो, ताकि शेप की आउटलाइन पर किसी खास जगह से ड्राइंग शुरू की जा सके. (Ifbb4d, b/324303807)
  • Morph में calculateBounds() फ़ंक्शन जोड़े गए हैं. ये फ़ंक्शन, RoundedPolygon पर मौजूद फ़ंक्शन के जैसे ही काम करते हैं. (I8a3b6, b/325463575)

वर्शन 1.0.0-alpha05

7 फ़रवरी, 2024

androidx.graphics:graphics-shapes:1.0.0-alpha05, androidx.graphics:graphics-shapes-android:1.0.0-alpha05, और androidx.graphics:graphics-shapes-desktop:1.0.0-alpha05 रिलीज़ किए गए हैं. वर्शन 1.0.0-alpha05 में ये कमिट शामिल हैं.

नई सुविधाएं

  • लाइब्रेरी में अब pill() और pillStar() नए फ़ंक्शन उपलब्ध हैं. इनकी मदद से, इन गोल/स्टार वाले शेप को आसानी से बनाया जा सकता है. किसी शेप के लिए ज़रूरी सटीक बाउंड्री का हिसाब लगाने के लिए भी नए एपीआई उपलब्ध हैं. पिछली बाउंड्री, बेज़ियर कर्व ऐंकर और कंट्रोल पॉइंट पर आधारित सिर्फ़ एक अनुमान थी. साथ ही, ज़्यादा से ज़्यादा संभावित बाउंड्री का हिसाब लगाने के लिए भी नए एपीआई उपलब्ध हैं. अगर किसी कंटेनर में शेप को घुमाया जाता है, तो यह पता लगाने में मदद मिल सकती है कि उसे रखने वाले कंटेनर का साइज़ कितना होना चाहिए. (I71827)

एपीआई में हुए बदलाव

  • अब सटीक और ज़्यादा से ज़्यादा बाउंड्री पाने के लिए, ज़्यादा विकल्प उपलब्ध हैं. (I6d49f, b/317286450)

गड़बड़ियां ठीक की गईं

  • इन आकृतियों को स्ट्रोक किए गए पाथ के तौर पर बनाते समय, कभी-कभी रेंडरिंग से जुड़ी गड़बड़ियां होती थीं. ऐसा इसलिए होता था, क्योंकि शून्य लंबाई वाले कर्व से जुड़ी रेंडरिंग की समस्या होती थी. इस बग को ठीक करने के लिए, शून्य लंबाई वाले सभी कर्व हटा दिए गए हैं. इनकी ज़रूरत शेप को नहीं होती है. इसलिए, शेप से बने पाथ के ओवरहेड को भी सेव किया जाता है.

वर्शन 1.0.0-alpha04

13 दिसंबर, 2023

androidx.graphics:graphics-shapes:1.0.0-alpha04, androidx.graphics:graphics-shapes-android:1.0.0-alpha04, और androidx.graphics:graphics-shapes-desktop:1.0.0-alpha04 रिलीज़ किए गए हैं. वर्शन 1.0.0-alpha04 में ये कमिट शामिल हैं.

नई सुविधाएं

  • इस रिलीज़ में, एपीआई में कई बदलाव किए गए हैं. साथ ही, गड़बड़ियां ठीक की गई हैं.
  • एपीआई में किए गए कई बदलावों की वजह से, Shapes लाइब्रेरी को KMP के साथ इस्तेमाल करना आसान हो गया है. इससे, Android के अलावा किसी अन्य कोड (जैसे कि Android से अलग Compose कोड) से कॉल करना आसान हो जाता है. उदाहरण के लिए, एपीआई में कोई Android टाइप नहीं है. जैसे, पिछले PointF, Matrix, और Path टाइप.
  • परफ़ॉर्मेंस को बेहतर बनाने के लिए, एपीआई और लागू करने के तरीके में भी कई बदलाव किए गए हैं. खास तौर पर, ऑब्जेक्ट के असाइनमेंट (और कलेक्शन) को कम करने के लिए. उदाहरण के लिए, PointF से अलग-अलग फ़्लोट पैरामीटर पर जाने से, उन वर्टेक्स को होल्ड करने के लिए कई अस्थायी PointF स्ट्रक्चर असाइन करने से बचा जा सकता है.

एपीआई में हुए बदलाव

  • Morph.asMutableCubics को MutableCubics पर दोहराने वाले फ़ंक्शन से बदला गया. PointTransformer फ़ंक्शनल इंटरफ़ेस में बदलाव किया गया है. अब यह Point के x और y कोऑर्डिनेट लेता है और TransformedResult दिखाता है. TransformedResult को बदले गए x और y कोऑर्डिनेट से बनाया जाता है (I6719e)
  • सार्वजनिक Cubic कंस्ट्रक्टर को हटा दिया गया है और इसे फ़ैक्ट्री फ़ंक्शन बना दिया गया है. (I409ce)
  • Android के लिए खास तौर पर बनाए गए ट्रांसफ़ॉर्म और ड्रॉइंग एपीआई जोड़े गए (I079f6, b/292289543)
  • Android डिपेंडेंसी हटाएं (Iadc1c, b/292289543)
  • एंकर और कंट्रोल प्रॉपर्टी के नाम अब ज़्यादा समझ में आने वाले हैं (If13bd, b/294562941)
  • PointF पैरामीटर को Float जोड़े में बदला गया (Id4705, b/276466399, b/290254314)
  • progress अब सीधे तौर पर Morph ड्रॉइंग कमांड (Icdca2) को पास किया जाता है

गड़बड़ियां ठीक की गईं

  • बड़े शेप बनाते समय होने वाली गड़बड़ी को ठीक किया गया. (I4fd66, b/313497325)

वर्शन 1.0.0-alpha03

7 जून, 2023

androidx.graphics:graphics-shapes:1.0.0-alpha03 रिलीज़ हो गया है. वर्शन 1.0.0-alpha03 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • नया RoundedPolygon.rectangle() फ़ंक्शन जोड़ा गया (I78e7e, b/280322189)
  • स्टार और सर्कल फ़ंक्शन के नाम अब छोटे अक्षरों में लिखे जाते हैं.इन्हें RoundedPolygon के कंपैनियन ऑब्जेक्ट के ज़रिए कॉल किया जाता है. उदाहरण के लिए, RoundedPolygon.star(...)(I14735)

गड़बड़ियां ठीक की गईं

  • स्मूद करने की सुविधा से जुड़ी गड़बड़ी ठीक की गई (Ibf894)
  • उस गड़बड़ी को ठीक किया गया है जो शुरू और खत्म होने वाले शेप एक जैसे होने पर होती थी. कट के लिए, साइड में मौजूद जगह को बेहतर तरीके से डिस्ट्रिब्यूट करें. इसके लिए, सबसे पहले राउंडिंग के लिए मौजूद जगह का इस्तेमाल करें. इसके बाद, अगर जगह बची हो, तो स्मूदिंग के लिए इसका इस्तेमाल करें. (Ibd320, b/277936300)

वर्शन 1.0.0-alpha02

19 अप्रैल, 2023

androidx.graphics:graphics-shapes:1.0.0-alpha02 रिलीज़ हो गया है. वर्शन 1.0.0-alpha02 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • Polygon सुपरक्लास को उसकी सबक्लास, RoundedPolygon के साथ मर्ज कर दिया गया है. अब सभी पॉलीगॉन, [ज़रूरत के मुताबिक] राउंड किए गए पॉलीगॉन हैं.
  • स्टार फ़ंक्शन (जो अब भी पहले की तरह RoundedPolygon दिखाता है) अब innerRadiusRatio पैरामीटर के बजाय, innerRadius वैल्यू लेता है. यह मौजूदा रेडियस पैरामीटर की तरह ही यूनिट में होता है. इससे चीज़ें आसान और ज़्यादा एक जैसी हो जाती हैं. साथ ही, numOuterVertices पैरामीटर का नाम बदलकर numVerticesPerRadius कर दिया गया है, ताकि यह साफ़ तौर पर बताया जा सके कि इनर और आउटर रेडियस, दोनों पर एक ही नंबर लागू होता है.
  • CornerRounding.radius को पहले पॉलीगॉन के साइज़ के हिसाब से तय किया जाता था. हालांकि, यह एक ऐब्सलूट वैल्यू है, न कि रिलेटिव वैल्यू. दस्तावेज़ अपडेट कर दिए गए हैं. साथ ही, एनोटेशन को ज़्यादा से ज़्यादा 1.0 तक सीमित करने की समस्या को ठीक कर दिया गया है.

वर्शन 1.0.0-alpha01

5 अप्रैल, 2023

Graphics-Shapes एक नई लाइब्रेरी है. इसकी मदद से, गोल किनारों वाली बहुभुजी आकृतियों को आसानी से बनाया और रेंडर किया जा सकता है. साथ ही, अलग-अलग आकृतियों के बीच आसानी से और अपने-आप मॉर्फ़ (ऐनिमेशन) किया जा सकता है.

androidx.graphics:graphics-shapes:1.0.0-alpha01 रिलीज़ हो गया है. इस वर्शन को इंटरनल ब्रांच से रिलीज़ किया गया था.

नई सुविधाएं

  • पॉलीगॉन एपीआई का इस्तेमाल करके, अपनी पसंद के मुताबिक वर्टेक्स की संख्या वाले रेगुलर और स्टार पॉलीगॉन बनाएं.
  • कोनों के लिए राउंडिंग रेडियस और स्मूदिंग पैरामीटर तय करने के लिए, वैकल्पिक CornerRounding पैरामीटर का इस्तेमाल करें. इससे, गोल कोनों वाले बहुभुज आकार मिलते हैं.
  • नए Morph(Polygon, Polygon) एपीआई का इस्तेमाल करके, “मॉर्फ़” शेप का अपने-आप हिसाब लगाएं. इसकी प्रोग्रेस को 0 से 1 तक सेट किया जा सकता है, ताकि शुरुआती और आखिरी शेप के बीच ऐनिमेशन किया जा सके. समय के साथ उस प्रोग्रेस को ऐनिमेट करें. साथ ही, हर फ़्रेम पर नतीजे को ड्रा करें, ताकि इन नए गोल आकार के बीच एक स्मूद ऐनिमेशन बनाया जा सके.

ग्राफ़िक्स पाथ वर्शन 1.0

वर्शन 1.0.1

1 मई, 2024

androidx.graphics:graphics-path:1.0.1 रिलीज़ हो गया है. वर्शन 1.0.1 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • कंपाइलर फ़्लैग में सुधार किए गए हैं.

वर्शन 1.0.0

6 मार्च, 2024

androidx.graphics:graphics-path:1.0.0 रिलीज़ हो गया है.

वर्शन 1.0.0-rc01

21 फ़रवरी, 2024

androidx.graphics:graphics-path:1.0.0-rc01 रिलीज़ हो गया है. वर्शन 1.0.0-rc01 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • एपीआई < 34 (Id4629) पर PathIterator की परफ़ॉर्मेंस को बेहतर बनाएं

वर्शन 1.0.0-beta02

10 जनवरी, 2024

इस रिलीज़ में, लाइब्रेरी के साइज़ को कम करने पर फ़ोकस किया गया है. नेटिव कोड की वजह से, लाइब्रेरी का साइज़ ज़रूरत से ज़्यादा था.

androidx.graphics:graphics-path:1.0.0-beta02 रिलीज़ हो गया है. वर्शन 1.0.0-beta02 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • libandroidx.graphics.path.so का साइज़ 96% कम किया गया. (I71397)
  • libandroidx.graphics.path.so का साइज़ 5% कम करो. (I2da7c)
  • androidx.graphics:graphics-path के नेटिव कॉम्पोनेंट को 43% तक छोटा किया गया है. (I8e40d)

वर्शन 1.0.0-beta01

29 नवंबर, 2023

androidx.graphics:graphics-path:1.0.0-beta01 रिलीज़ हो गया है. वर्शन 1.0.0-beta01 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • एक्सपेरिमेंट के तौर पर उपलब्ध isAtLeastU() API (Ie9117, b/289269026) के इस्तेमाल को हटाया गया

गड़बड़ियां ठीक की गईं

  • कई गड़बड़ियां ठीक की गई हैं और परफ़ॉर्मेंस में सुधार किया गया है. इसमें यह भी शामिल है कि लाइब्रेरी, कोनिक्स को कैसे मैनेज करती है.

वर्शन 1.0.0-alpha02

7 जून, 2023

androidx.graphics:graphics-path:1.0.0-alpha02 रिलीज़ हो गया है. इस वर्शन को इंटरनल ब्रांच में डेवलप किया गया है.

नई सुविधाएं

  • प्लैटफ़ॉर्म के इंटरनल वर्शन की जाँच करने से जुड़ी समस्या को ठीक किया गया है. इसकी वजह से, Android 14 के प्रीव्यू वर्शन पर ऐप्लिकेशन चलाने में समस्याएं आ रही थीं. वर्शन की जाँच नहीं हो पाती थी. साथ ही, पिछली रिलीज़ पर काम करने का तरीका, Android 14 पर ठीक से काम नहीं करता था.

वर्शन 1.0.0-alpha01

22 मार्च, 2023

androidx.graphics:graphics-path:1.0.0-alpha01 रिलीज़ हो गया है. वर्शन 1.0.0-alpha01 में ये कमिट शामिल हैं.

नई सुविधाएं

  • इस नई लाइब्रेरी की मदद से, नए PathIterator एपीआई के ज़रिए पाथ डेटा के बारे में क्वेरी की जा सकती है. इस एपीआई का इस्तेमाल करके, कॉल करने वाले लोग पाथ ऑब्जेक्ट के सभी सेगमेंट को दोहरा सकते हैं. इससे उन्हें उन सेगमेंट के लिए ऑपरेशन और डेटा तय करने में मदद मिलती है.
  • यह लाइब्रेरी, Android 14 के प्रीव्यू में पेश किए गए मिलते-जुलते एपीआई का इस्तेमाल करती है. हालांकि, एपीआई का यह AndroidX वर्शन, एपीआई 21 तक के वर्शन पर भी काम करता है.

Graphics Core वर्शन 1.0

वर्शन 1.0.3

26 मार्च, 2025

androidx.graphics:graphics-core:1.0.3 रिलीज़ हो गया है. वर्शन 1.0.3 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • API<33 वाले कुछ डिवाइसों पर ड्रॉइंग करते समय, फ़ुल-स्क्रीन मोड में स्क्रीन के टिमटिमाने की समस्या ठीक की गई.

वर्शन 1.0.2

16 अक्टूबर, 2024

androidx.graphics:graphics-core:1.0.2 रिलीज़ हो गया है. वर्शन 1.0.2 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • इस समस्या को ठीक किया गया है. इसमें SurfaceControl इंस्टेंस रिलीज़ होने के बाद भी, सिस्टम कंपोज़िटर से मैनेज होते रहते थे.
  • उस समस्या को ठीक किया गया है जिसमें कम लेटेन्सी वाली डिपेंडेंसी को हटाने के बाद, मौजूदा HardwareBuffer इंस्टेंस रिलीज़ नहीं होता था
  • Android 14 और इसके बाद के वर्शन वाले कुछ ऐसे डिवाइसों पर स्क्रीन के फ़्लिकर होने की समस्या को ठीक किया गया है जिन पर फ़्रंट बफ़र के इस्तेमाल का फ़्लैग काम नहीं करता था

वर्शन 1.0.1

4 सितंबर, 2024

androidx.graphics:graphics-core:1.0.1 रिलीज़ हो गया है. वर्शन 1.0.1 में ये कमिट शामिल हैं.

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक किया गया है जिसकी वजह से मेमोरी के संसाधन कभी-कभी रिलीज़ नहीं होते थे.

वर्शन 1.0.0

29 मई, 2024

androidx.graphics:graphics-core:1.0.0 रिलीज़ हो गया है. वर्शन 1.0.0 में ये कमिट शामिल हैं.

1.0.0 वर्शन की मुख्य सुविधाएं

  • ग्राफ़िक्स-कोर लाइब्रेरी की आधिकारिक स्टेबल रिलीज़. इसमें 1.0.0-rc01 वर्शन की मामूली गड़बड़ियां ठीक की गई हैं और परफ़ॉर्मेंस को बेहतर बनाया गया है

वर्शन 1.0.0-rc01

17 अप्रैल, 2024

androidx.graphics:graphics-core:1.0.0-rc01 रिलीज़ हो गया है. इस वर्शन को इंटरनल ब्रांच में डेवलप किया गया है.

गड़बड़ियां ठीक की गईं

  • Android 14 पर काम करने वाले कुछ Android डिवाइसों पर, CanvasBufferedRendererAPI के साथ फ़ाइल डिस्क्रिप्टर के दो बार बंद होने की समस्या को ठीक किया गया है.
  • उस समस्या को ठीक किया गया है जिसकी वजह से FrameBuffer, फ़्रेमबफ़र इंस्टेंस को ठीक से नहीं मिटा पाता था.

वर्शन 1.0.0-beta01

13 दिसंबर, 2023

androidx.graphics:graphics-core:1.0.0-beta01 रिलीज़ हो गया है. वर्शन 1.0.0-beta01 में ये कमिट शामिल हैं.

नई सुविधाएं

  • View hierarchy में Android के 2D ग्राफ़िक्स एपीआई (Canvas + Paint) के साथ कम इंतज़ार समय वाली रेंडरिंग की सुविधा देने के लिए, एक नया LowLatencyCanvasView एपीआई लॉन्च किया गया है.
  • CanvasBufferedRenderer एपीआई लॉन्च किया गया है. इससे हार्डवेयर की मदद से, HardwareBuffer पर कैनवस रेंडरिंग की जा सकेगी. इसका इस्तेमाल, यूज़र इंटरफ़ेस के किसी हिस्से को ऐसे बफ़र में बनाने के लिए किया जा सकता है जिसे Bitmap.wrapHardwareBuffer एपीआई का इस्तेमाल करके बिटमैप में बदला जा सकता है.

एपीआई में हुए बदलाव

  • CanvasBufferRenderer#releaseBuffer एपीआई को अपडेट किया गया है, ताकि इसमें फ़ेंस पैरामीटर का इस्तेमाल करना ज़रूरी न हो. दस्तावेज़ों को अपडेट किया गया है, ताकि यह बताया जा सके कि RenderResult#fence कब दिखता है. (If1ea7)
  • ड्रॉ के अनुरोधों को शेड्यूल करने के लिए, कोरूटीन का इस्तेमाल करने की सुविधा देने के लिए, draw में draw तरीका जोड़ा गया.RenderRequest ड्रॉ करने के पिछले तरीके का नाम बदलकर drawAsync कर दिया गया है. isClosed() तरीके को प्रॉपर्टी में बदला गया. (I5bff6)
  • बफ़र फ़ॉर्मैट पैरामीटर को CanvasFrontBufferRenderer में दिखाया गया है, ताकि इसे सीधे तौर पर CanvasBufferedRenderer.Builder#setBufferFormat (I0f272) पर मैप किया जा सके
  • CanvasBufferedRenderer में हार्डवेयर की मदद से कैनवस रेंडरिंग को मैनेज करने के लिए, CanvasBufferedRenderer एपीआई बनाया गया.HardwareBuffer इससे Android Q के साथ-साथ, HardwareBuffers की स्वैपचेन डेप्थ के कॉन्फ़िगरेशन के लिए, बैकपोर्ट किया गया इंप्लीमेंटेशन मिलता है. ColorSpace कॉन्फ़िगरेशन अब भी Android U+ तक ही सीमित है. हालांकि, कंपैटिबिलिटी लागू करने से डेवलपर को कोई कार्रवाई नहीं करनी पड़ती. (I9b1d8)
  • फ़्रेम रेट को कंट्रोल करने के लिए, SurfaceControlCompat.Transaction में setFrameRate/clearFrameRate एपीआई जोड़ें. इससे डिफ़ॉल्ट ट्रांज़िशन के साथ-साथ, आसानी से होने वाले ट्रांज़िशन के लिए बदलाव की रणनीति को भी कंट्रोल किया जा सकेगा. (I6045c)
  • setDataSpace के लिए, ज़रूरी एपीआई लेवल को Android T से घटाकर Android Q कर दिया गया है. (I59c34)
  • उपयोगकर्ताओं को यह विकल्प देने के लिए, onBufferReleased एपीआई में onBufferReleased कॉलबैक जोड़ा गया है, ताकि जब बफ़र नहीं दिखाया जा रहा हो, तब वे स्टेट को साफ़ कर सकें (I8a4e2)GLFrameBufferRenderer
  • कम इंतज़ार के समय में कॉन्टेंट रेंडर करने के सामान्य इस्तेमाल के उदाहरण के लिए, LowLatencyCanvasView बनाएं. यह व्यू हैरारकी रेंडरिंग के साथ सिंक हो जाता है. इससे SurfaceView को मैनेज करने से जुड़ी मुश्किलों को कम किया जा सकता है. ऐसा इसलिए, क्योंकि यह SurfaceView इंस्टेंस को अंदरूनी तौर पर मैनेज करता है. इस इंस्टेंस को, सिंक किए गए और कम समय में रेंडर करने के लिए, स्क्रीन पर चालू/बंद किया जाता है. (I9253b)
  • CanvasFrontBufferedRenderer एपीआई में, कलरस्पेस कॉन्फ़िगरेशन की सुविधा जोड़ी गई. मल्टीबफ़र्ड कॉलबैक को अपडेट किया गया, ताकि इसमें बैक बफ़र किए गए SurfaceControl को भी शामिल किया जा सके (I24bd9)

वर्शन 1.0.0-alpha05

6 सितंबर, 2023

androidx.graphics:graphics-core:1.0.0-alpha05 रिलीज़ हो गया है. वर्शन 1.0.0-alpha05 में ये कमिट शामिल हैं.

नई सुविधाएं

  • GLFrameBufferRenderer API लॉन्च किया गया. इससे OpenGL डिपेंडेंसी, स्वैप चेन कॉन्फ़िगरेशन, पिक्सल फ़ॉर्मैट, और SurfaceControl कॉन्फ़िगरेशन का कॉम्बिनेशन मिलता है. (Ic775b)

एपीआई में हुए बदलाव

  • हमने अलग-अलग कॉलबैक एपीआई में चौड़ाई और ऊंचाई के पैरामीटर जोड़े हैं, ताकि SurfaceHolder#Callbacks से डाइमेंशन पाइप किए जा सकें. (I7f9fc)
  • फ़्रंट और मल्टी बफ़र्ड, दोनों लेयर को हटाने के लिए क्लियर एपीआई जोड़ा गया है. (Ic1f95)
  • GLFrontBufferedRenderer में इस्तेमाल की गई स्वैपचेन के बफ़र टाइप को कॉन्फ़िगर करने की सुविधा जोड़ी गई है. (I07a13)
  • ज़्यादा से ज़्यादा बफ़र एंट्री के लिए, GLFrameBufferRenderer और IntRange एनोटेशन पर गेटर के लिए Kotlin प्रॉपर्टी जोड़ी गई हैं. साथ ही, setFormat/setUsage के लिए HardwareBufferFormart और HardwareBufferUsage एनोटेशन जोड़े गए हैं. (Ief89e)
  • रिलीज़ फ़ेंस उपलब्ध कराने के लिए, SurfaceControl लेन-देन पर setBuffer एपीआई अपडेट किया गया. (Ice1bb)
  • डेटा स्पेस को कॉन्फ़िगर करने के साथ-साथ, ब्राइटनेस की बढ़ी हुई रेंज सेट करने के लिए, SurfaceControlCompat.Transaction एपीआई जोड़े गए हैं. (Ic378d)

वर्शन 1.0.0-alpha04

7 जून, 2023

androidx.graphics:graphics-core:1.0.0-alpha04 रिलीज़ हो गया है. वर्शन 1.0.0-alpha04 में ये कमिट शामिल हैं.

नई सुविधाएं

  • इंतज़ार का समय कम करने वाले ग्राफ़िक के लिए, CanvasFrontBufferedRenderer को पेश किया गया. यह android.graphics.Canvas एपीआई के साथ-साथ, मौजूदा OpenGL को भी इस्तेमाल करता है

एपीआई में हुए बदलाव

  • SurfaceControlCompat.Transaction#setBuffer एपीआई को अपडेट किया गया है, ताकि HardwareBuffer के ऐसे इंस्टेंस की अनुमति दी जा सके जिनमें वैल्यू मौजूद नहीं है. इससे, प्लैटफ़ॉर्म के एपीआई (I173d7) को मिरर किया जा सकेगा
  • डबल बफ़र्ड रेंडरिंग का इस्तेमाल करने वाले तरीकों का नाम बदलकर मल्टी बफ़र्ड कर दें. ऐसा इसलिए, क्योंकि बैकिंग स्वैपचेन में दो से ज़्यादा बफ़र हो सकते हैं. (I830d7)
  • Canvas API का इस्तेमाल करके, फ़्रंट बफ़र्ड रेंडरिंग सिस्टम का फ़ायदा पाने के लिए, 3ps को अनुमति देने के लिए CanvasFrontBufferedRenderer API बनाएं. (Ibfc29)

गड़बड़ियां ठीक की गईं

  • उस समस्या को ठीक किया गया है जिसमें GLFrontBufferedRenderer, गतिविधि को फिर से शुरू करने के बाद कॉन्टेंट रेंडर नहीं करता था.
  • उस समस्या को ठीक कर दिया गया है जिसमें बफ़र किए गए कॉन्टेंट को समय से पहले हटा दिया जाता था.
  • उस समस्या को ठीक किया गया है जिसमें कम लेटेंसी वाले ग्राफ़िक्स एपीआई रिलीज़ होने के बाद भी SurfaceHolder.Callbacks नहीं हटता था.

वर्शन 1.0.0-alpha03

22 मार्च, 2023

androidx.graphics:graphics-core:1.0.0-alpha03 रिलीज़ हो गया है. वर्शन 1.0.0-alpha03 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • GLFrontBufferedRenderer कॉलबैक को लागू करने का अपडेट किया गया तरीका. इससे BufferInfo ऑब्जेक्ट मिलता है. इसमें बफ़र की चौड़ाई/ऊंचाई के साथ-साथ फ़्रेम बफ़र आइडेंटिफ़ायर भी होता है. इसका इस्तेमाल, इंटरमीडिएट स्क्रैच बफ़र में रेंडर करने के बाद, ओरिजनल डेस्टिनेशन को फिर से टारगेट करने के लिए किया जा सकता है. (I7fe20)
  • SyncFence को SyncFenceCompat पर स्टैटिक फ़ैक्ट्री मेथड में बदला गया.
  • SyncFence बनाने के लिए, eglDupNativeFenceFDANDROID के लिए सार्वजनिक तौर पर उपलब्ध कंपैटिबिलिटी के तरीके को हटा दिया गया है. इसके बजाय, SyncFenceCompat के फ़ैक्ट्री के तरीके का इस्तेमाल किया जाएगा. ऐसा इसलिए किया जाता है, ताकि यह पक्का किया जा सके कि सभी एपीआई सरफेस पर SyncFence को सही तरीके से लागू किया गया है. भले ही, एपीआई लेवल कुछ भी हो. (I849bb)
  • FrameBufferRenderer और SyncStrategy के लिए दस्तावेज़ जोड़ा गया.
    • FrameBufferRenderer + FrameBuffer + FrameBufferPool को androidx.graphics.opengl पैकेज में ले जाया गया
    • SyncStrategy को androidx.graphics.opengl पैकेज में ले जाया गया
    • RenderCallback#onDraw दस्तावेज़ अपडेट किए गए
    • RenderCallback#obtainFrameBuffer का अपडेट किया गया दस्तावेज़. एपीआई को लागू करने वाले व्यक्ति की यह ज़िम्मेदारी है कि वह FrameBuffer.close को कॉल करे
    • onDrawComplete को अपडेट किया गया है, ताकि यह बताया जा सके कि डिसप्ले करने के लिए कॉन्टेंट भेजने की ज़िम्मेदारी उपभोक्ताओं की है
    • फ़्रेमवर्क को मिरर करने के लिए, SyncFence कंपैटबिलिटी इंटरफ़ेस/क्लास को androidx.hardware पैकेज में ले जाया गया
    • SyncFence एपीआई का नाम बदलकर SyncFenceV19 कर दिया गया है. साथ ही, इसे निजी बना दिया गया है, ताकि SyncFenceCompat के इस्तेमाल को एक साथ किया जा सके. SyncFenceCompat, फ़्रेमवर्क के SyncFence एपीआई का इस्तेमाल करता है. (I5149c)
  • GLFrontBufferedRenderer#cancel और GLFrontBufferedRenderer#execute तरीके जोड़े गए. पहले वाला तरीका, हथेली के टच को खारिज करने की स्थितियों में काम आता है. इसमें, फ़्रंट बफ़र में रेंडरिंग को रद्द कर दिया जाता है और फ़्रंट बफ़र को छिपा दिया जाता है. बाद वाला तरीका, ऐसे मामलों में काम आता है जहां रेंडर शेड्यूल किए बिना, GL थ्रेड पर ऑब्जेक्ट में बदलाव करना होता है. (If0b7f)
  • डबल बफ़र्ड लेयर में सीधे तौर पर रेंडर करने के लिए, एपीआई जोड़ें. इससे, गेम को फिर से शुरू करने के बाद सीन को फिर से रेंडर करने में मदद मिलती है. साथ ही, उपभोक्ताओं को यह तय करने का मौका मिलता है कि उन्हें किस सीन को रेंडर करने के लिए, डाइनैमिक तरीके से फ़्रंट बफ़र्ड रेंडरिंग का इस्तेमाल कब करना है. (Ied56c)
  • SurfaceControlCompat.Builder में नया एपीआई जोड़ा गया है. इससे, SurfaceView के मौजूदा तरीके के अलावा, किसी दूसरे SurfaceControl इंस्टेंस से पैरंट SurfaceControl को कॉन्फ़िगर किया जा सकता है. (I1d1b6)
  • बंद किए गए-छिपाए गए फ़ंक्शन के ज़्यादातर रिटर्न टाइप में null वैल्यू हो सकती है (Ibf7b0)
  • EGL_ANDROID_get_native_client_buffer एक्सटेंशन कॉन्स्टेंट जोड़ा गया है. इससे यह क्वेरी की जा सकती है कि Android डिवाइस, HardwareBuffer इंस्टेंस को EGLClientBuffer ऑब्जेक्ट में इंपोर्ट करने की सुविधा के साथ काम करता है या नहीं. इन ऑब्जेक्ट को EGLImage इंस्टेंस के तौर पर इस्तेमाल किया जा सकता है. (Iad767)
  • @JvmDefaultWithCompatibility एनोटेशन जोड़ा जा रहा है (I8f206)

वर्शन 1.0.0-alpha02

9 नवंबर, 2022

androidx.graphics:graphics-core:1.0.0-alpha02 रिलीज़ हो गया है. वर्शन 1.0.0-alpha02 में ये कमिट शामिल हैं.

एपीआई में हुए बदलाव

  • Android S (I0a035) में पेश किए गए addTransactionCommitListener के लिए, RequiresApi एनोटेशन मौजूद न होने की समस्या को ठीक किया गया है
  • अपडेट किया गया onDraw<Front/Double> बफ़र कॉलबैक, ताकि ट्रांसफ़ॉर्म मैट्रिक्स दिया जा सके. उपभोक्ता, मौजूदा बफ़र की चौड़ाई/ऊंचाई के साथ-साथ इसे अपने वर्टेक्स शेडर को पास कर सकते हैं. उपयोगकर्ताओं को इन पैरामीटर का इस्तेमाल करके, अपने OpenGL रेंडरिंग कोड को पहले से रोटेट करना होगा. (I82f9e)

गड़बड़ियां ठीक की गईं

  • SurfaceControl ट्रांज़ैक्शन जारी करने से पहले बफ़र को पहले से घुमाकर, ग्राफ़िक्स की लेटेन्सी को बेहतर बनाया गया है.
  • उस समस्या को ठीक किया गया है जिसमें गड़बड़ी के लॉग में गड़बड़ी 300d (EGL_BAD_SURFACE) दिखती थी.
  • उस समस्या को ठीक किया गया है जिसमें GLFrontBufferedRenderer का इस्तेमाल करने वाली गतिविधि को फिर से शुरू करने के बाद, GLFrontBufferedRenderer अमान्य हो जाता था.
  • इमुलेटर और ChromeOS डिवाइसों के लिए बेहतर सहायता.
  • उस समस्या को ठीक किया गया है जिसमें बफ़र की गई फ़्रंट लेयर समय से पहले छिप जाती थी.

वर्शन 1.0.0-alpha01

24 अक्टूबर, 2022

androidx.graphics:graphics-core:1.0.0-alpha01 रिलीज़ हो गया है. वर्शन 1.0.0-alpha01 में ये कमिट शामिल हैं.

नई सुविधाएं

  • ग्राफ़िक्स कोर AndroidX लाइब्रेरी की शुरुआती रिलीज़. इसमें, स्टाइलस इनपुट जैसे कम इंतज़ार के समय वाले इस्तेमाल के मामलों के लिए एपीआई शामिल हैं. इसमें OpenGL के इस्तेमाल के लिए, कुछ हेल्पर एपीआई भी शामिल किए गए हैं.

एपीआई में हुए बदलाव

  • इसमें GLFrontBufferedRenderer को शामिल किया गया है. इससे फ़्रंट और मल्टी-बफ़र्ड रेंडरिंग में मदद मिलती है. साथ ही, कम इंतज़ार के समय और अच्छी क्वालिटी वाली रेंडरिंग का आउटपुट मिलता है.
  • अलग-अलग Surface उपलब्ध कराने वाली कंपनियों के लिए, OpenGL रेंडरिंग में मदद करने वाला GLRenderer API लॉन्च किया गया है. जैसे, SurfaceView, TextureView वगैरह.