الرسومات
يسرد هذا الجدول جميع العناصر في المجموعة androidx.graphics.
| العناصر | الإصدار الثابت | إصدار محتمل | الإصدار التجريبي | الإصدار الأوّلي |
|---|---|---|---|---|
| graphics-core | 1.0.3 | - | - | - |
| graphics-path | 1.0.1 | - | - | 1.1.0-alpha01 |
| graphics-shapes | 1.1.0 | - | - | - |
تحديد الاعتماديات
لإضافة اعتمادية على Graphics، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.
أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:
Groovy
dependencies { implementation "androidx.graphics:graphics-core:1.0.3" implementation "androidx.graphics:graphics-path:1.1.0-alpha01" implementation "androidx.graphics:graphics-shapes:1.1.0" }
Kotlin
dependencies { implementation("androidx.graphics:graphics-core:1.0.3") implementation("androidx.graphics:graphics-path:1.1.0-alpha01") implementation("androidx.graphics:graphics-shapes:1.1.0") }
لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات البناء.
الملاحظات
تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.
يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.
لا تتوفّر ملاحظات إصدار لهذا العنصر.
الإصدار 1.1 من الرسومات
الإصدار 1.1.0
22 أكتوبر 2025
تم طرح androidx.graphics:graphics-*:1.1.0. يتضمّن الإصدار 1.1.0 هذه التعديلات.
الإصدار 1.1.0-rc01
10 سبتمبر 2025
تم طرح androidx.graphics:graphics-*:1.1.0-rc01. يتضمّن الإصدار 1.1.0-rc01 هذه التعديلات.
الإصدار 1.1.0-beta01
30 يوليو 2025
تم طرح androidx.graphics:graphics-*:1.1.0-beta01. يتضمّن الإصدار 1.1.0-beta01 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تتطلّب المشاريع التي تم إصدارها باستخدام Kotlin 2.0 استخدام الإصدار 2.0.0 أو إصدار أحدث من KGP (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 وأداة تسلسل الميزات يكون التسلسل المعتاد على النحو التالي:
- استخدِم
SvgPathParser.parseFeatures()الجديد لتحويل مسار svg (قيمة السمةdفي العنصرpathمن svg) إلىList<Feature>. - يمكن تعديل ذلك، ثم تحويله إلى سلسلة باستخدام
FeatureSerializer.serialize(). - يمكن استخدام السلسلة الناتجة في رمز الإنتاج، واستيرادها باستخدام
FeatureSerializer.parse() - يُرجى العِلم أنّ الخطوتَين 1 و2 يتم تنفيذهما مرة واحدة، ويمكن تنفيذهما باستخدام التطبيق الجديد. ولا يحتاج رمز الإنتاج إلا إلى تنفيذ الخطوة 3. (I9bd00، b/371196190)، (Ic3842)، (If68ed)، (I10251)
- استخدِم
- عرض عناصر المضلّعات وأنواع العناصر يمكن الآن إنشاء
RoundedPolygonsأكثر عمومية باستخدام أداة الإنشاء الأساسية التي تأخذList<Features>. تتألف الأشكال بشكل أساسي من قائمة بمنحنيات بيزير المكعبة، ولكن يتم وضع علامات عليها لمساعدة خوارزمية Morph في مطابقة الأشكال بين البداية والنهاية (يتم ربط الزوايا المحدّبة بالزوايا المحدّبة، والزوايا المقعّرة بالزوايا المقعّرة). (I61e76)، (I1fc5c) - تضيف هذه السمة إمكانية استخدام هدف
watchosDeviceArm64KMP واستهداف الإصدار 1.9 من Kotlin. (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) - تمت إضافة وظائف
calculateBounds()إلى Morph، وهي تتوازى مع الوظائف نفسها في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()لتسهيل إنشاء هذه الأشكال الدائرية أو التي تتضمّن نجومًا. تتوفّر أيضًا واجهات برمجة تطبيقات جديدة لاحتساب الحدود الدقيقة المطلوبة لشكل معيّن (كانت الحدود السابقة مجرد تقدير استنادًا إلى نقطة الارتكاز ونقاط التحكّم في منحنى Bezier الأساسي)، بالإضافة إلى الحدود القصوى الممكنة، والتي يمكن أن تكون مفيدة لتحديد حجم الحاوية التي تحتوي على الشكل إذا كان سيتم تدويره داخل تلك الحاوية. (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 (مثل رموز Compose البرمجية غير التابعة لنظام Android). على سبيل المثال، لا تتضمّن واجهة برمجة التطبيقات أنواع Android، مثل أنواع PointF وMatrix وPath السابقة.
- تم أيضًا إجراء العديد من التغييرات على واجهات برمجة التطبيقات وعمليات التنفيذ لأسباب تتعلّق بالأداء، وتحديدًا لتقليل تخصيص العناصر (وجمعها). على سبيل المثال، يؤدي الانتقال من PointF إلى معلَمات Float منفصلة إلى تجنُّب تخصيص العديد من بنى PointF المؤقتة لاحتواء هذه الرؤوس.
تغييرات واجهة برمجة التطبيقات
- تم استبدال
Morph.asMutableCubicsبدالة لتكرارMutableCubics. تم تغيير الواجهة الوظيفيةPointTransformer، وأصبحت الآن تأخذ الإحداثيين x وy لعنصرPointوتعرض عنصر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) - تم الآن تغيير حالة الأحرف الأولى في اسمَي الدالتَين Star وCircle إلى أحرف صغيرة، ويمكن استدعاؤهما من خلال العنصر المرافق
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، وأصبحت جميع المضلّعات الآن مضلّعات مستديرة [اختياريًا]. - تتلقّى الدالة Star (التي لا تزال تعرض
RoundedPolygon، كما كان من قبل) الآن القيمةinnerRadius، بدلاً من المَعلمةinnerRadiusRatioالسابقة. وهي تستخدم الوحدات نفسها المستخدَمة في مَعلمة نصف القطر الحالية، ما يجعل الأمور أبسط وأكثر اتساقًا. تمت أيضًا إعادة تسمية المَعلمةnumOuterVerticesإلىnumVerticesPerRadiusلتوضيح أنّه يتم تطبيق الرقم نفسه على كلّ من نصف القطر الداخلي والخارجي. - كانت
CornerRounding.radiusموثّقة سابقًا على أنّها مرتبطة بحجم المضلّع، ولكنّها كانت (ويجب أن تكون) قيمة مطلقة وليست نسبية. تم تعديل المستندات وإصلاح التعليق التوضيحي الذي يحدّ من القيمة إلى 1.0 كحد أقصى.
الإصدار 1.0.0-alpha01
5 أبريل 2023
Graphics-Shapes هي مكتبة جديدة تتيح إنشاء أشكال مضلّعة مستديرة وعرضها بسهولة، بالإضافة إلى تحويل الأشكال البسيط والتلقائي (الرسوم المتحركة) بين الأشكال المختلفة.
تم طرح androidx.graphics:graphics-shapes:1.0.0-alpha01. تم إصدار هذا الإصدار من فرع داخلي.
الميزات الجديدة
- استخدِم Polygon API لإنشاء مضلّعات منتظمة ومضلّعات نجمية بعدد الرؤوس المطلوب.
- استخدِم المَعلمات الاختيارية
CornerRoundingلتحديد نصف قطر التقريب ومَعلمات التنعيم للزوايا، ما يؤدي إلى أشكال مضلّعة ذات زوايا مستديرة. - استخدِم واجهة برمجة التطبيقات الجديدة
Morph(Polygon, Polygon)لاحتساب شكل "التحوّل" تلقائيًا، والذي يمكن ضبط مستوى تقدّمه من 0 إلى 1 لإنشاء رسوم متحركة بين الشكلَين الأوّلي والنهائي. يمكنك تحريك هذا التقدّم بمرور الوقت، ورسم النتيجة في كل إطار، لإنشاء حركة سلسة بين هذه الأشكال الدائرية الجديدة.
الإصدار 1.0 من مسار الرسومات
الإصدار 1.1.0-alpha01
13 أغسطس 2025
تم طرح androidx.graphics:graphics-path:1.1.0-alpha01. يتضمّن الإصدار 1.1.0-alpha01 هذه التعديلات.
إصلاح الأخطاء
- إضافة عملية تنفيذ للتحويل من القطع المخروطي إلى القطع المكافئ واستخدامها على منصات الاستضافة: f059b1
الإصدار 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 هذه التعديلات.
إصلاح الأخطاء
- تحسين أداء PathIterator على الإصدارات الأقدم من 34 لواجهة برمجة التطبيقات (Id4629)
الإصدار 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()(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. باستخدام واجهة برمجة التطبيقات هذه، يمكن للمتصلين تكرار جميع أجزاء عنصر Path لتحديد العملية والبيانات الخاصة بهذه الأجزاء. - تستخدم المكتبة واجهات برمجة تطبيقات مشابهة لتلك التي تم طرحها في الإصدار التجريبي من Android 14، ولكن يعمل إصدار AndroidX من واجهة برمجة التطبيقات أيضًا على الإصدارات التي تصل إلى المستوى 21 من واجهة برمجة التطبيقات.
الإصدار 1.0 من Graphics Core
الإصدار 1.0.3
26 مارس 2025
تم طرح androidx.graphics:graphics-core:1.0.3. يتضمّن الإصدار 1.0.3 هذه التعديلات.
إصلاح الأخطاء
- تم إصلاح مشكلة الوميض في وضع ملء الشاشة أثناء الرسم على أجهزة معيّنة تعمل بإصدارات من واجهة برمجة التطبيقات أقل من 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
- الإصدار الثابت الرسمي من مكتبة graphics-core يتضمّن إصلاحات أخطاء بسيطة وتحسينات في الأداء من الإصدار 1.0.0-rc01
الإصدار 1.0.0-rc01
17 أبريل 2024
تم طرح androidx.graphics:graphics-core:1.0.0-rc01. تم تطوير هذا الإصدار في فرع داخلي.
إصلاح الأخطاء
- تم إصلاح مشكلة تؤدي إلى إغلاق محتمل لموصّفات الملفات مرتين باستخدام
CanvasBufferedRendererAPIمع أجهزة Android معيّنة تعمل بالإصدار 14 من نظام التشغيل Android. - تم إصلاح المشكلة التي كانت تؤدي إلى عدم حذف مثيلات إطار المخزن المؤقت بشكلٍ صحيح عند استخدام
FrameBuffer.
الإصدار 1.0.0-beta01
13 كانون الأول (ديسمبر) 2023
تم طرح androidx.graphics:graphics-core:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.
الميزات الجديدة
- تم طرح واجهة برمجة تطبيقات
LowLatencyCanvasViewجديدة لتتيح عرض الرسومات بزمن استجابة منخفض باستخدام واجهات برمجة التطبيقات للرسومات الثنائية الأبعاد في Android (Canvas + Paint) ضمن بنية العرض. - تم تقديم واجهة برمجة التطبيقات
CanvasBufferedRendererلدعم عرض Canvas المتسارع للأجهزة إلىHardwareBuffer. يمكن استخدام ذلك لرسم جزء من واجهة مستخدم في مخزن مؤقت يمكن تحويله إلى صورة نقطية باستخدام واجهة برمجة التطبيقاتBitmap.wrapHardwareBuffer.
تغييرات واجهة برمجة التطبيقات
- تم تعديل واجهة برمجة التطبيقات
CanvasBufferRenderer#releaseBufferلتتضمّن مَعلمة اختيارية خاصة بالسياج الجغرافي. تم تعديل المستندات لتوضيح الحالات التي يتم فيها عرضRenderResult#fence. (If1ea7) - أضِف طريقة
drawإلىRenderRequestلإتاحة استخدام الروتينات الفرعية لجدولة طلبات الرسم. تمت إعادة تسمية طريقة الرسم السابقة التي استهلكت منفِّذًا إلىdrawAsync. تمت إعادة تصميم الطريقةisClosed()لتصبح سمة. (I5bff6) - تم عرض مَعلمة تنسيق المخزن المؤقت إلى
CanvasFrontBufferRendererليتم ربطها مباشرةً بـCanvasBufferedRenderer.Builder#setBufferFormat(I0f272) - تم إنشاء واجهة برمجة التطبيقات
CanvasBufferedRendererللتعامل مع عرض لوحة الرسم المتسارع للأجهزة فيHardwareBuffer. يوفّر ذلك عملية تنفيذ متوافقة مع الإصدار Android Q بالإضافة إلى إعداد عمق سلسلة التبديلHardwareBuffers. لا يزال إعدادColorSpaceمقتصرًا على الإصدار Android U والإصدارات الأحدث، ولكن لا يوفّر التنفيذ المتوافق سلوكًا غير فعّال نيابةً عن المطوّرين. (I9b1d8) - أضِف واجهات برمجة التطبيقات
setFrameRate/clearFrameRateإلىSurfaceControlCompat.Transactionللتحكّم في عدد اللقطات في الثانية إلى جانب استراتيجية التغيير للانتقالات السلسة أو التلقائية. (I6045c) - تم خفض مستوى واجهة برمجة التطبيقات المطلوب لـ
setDataSpaceمن Android T إلى Android Q. (I59c34) - تمت إضافة وظيفة رد الاتصال
onBufferReleasedإلى واجهة برمجة التطبيقاتGLFrameBufferRendererلمنح المستهلكين فرصة تنظيف الحالة عندما لا يتم عرض المخزن المؤقت (I8a4e2) - أنشئ
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. توفّر هذه السمة مجموعة من تبعيات OpenGL وإعدادات سلسلة التبديل وتنسيقات البكسل وإعداداتSurfaceControl. (Ic775b)
تغييرات واجهة برمجة التطبيقات
- تمت إضافة مَعلمتَي العرض والارتفاع إلى واجهات برمجة التطبيقات المختلفة الخاصة بوظائف ردّ الاتصال لتوجيه الأبعاد من
SurfaceHolder#Callbacks. (I7f9fc) - تمت إضافة واجهة برمجة تطبيقات واضحة لمحو كل من الطبقات الأمامية والمتعددة المخزّنة مؤقتًا. (Ic1f95)
- تمت إضافة إمكانية ضبط نوع المخزن المؤقت الأساسي لسلاسل التبديل المستخدَمة في
GLFrontBufferedRenderer. (I07a13) - تمت إضافة سمات Kotlin للدوال الجالبة في التعليقات التوضيحية
GLFrameBufferRendererوIntRangeالخاصة بالحد الأقصى لعدد إدخالات المخزن المؤقت، والتعليقات التوضيحيةHardwareBufferFormartوHardwareBufferUsageالخاصة بـsetFormat/setUsageعلى التوالي. (Ief89e) - تم تعديل واجهة برمجة التطبيقات
setBufferفي معاملاتSurfaceControlلتوفير حاجز إصدار. (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)
- إنشاء واجهة برمجة تطبيقات
CanvasFrontBufferedRendererللسماح للجهات الخارجية بالاستفادة من نظام العرض المخزّن مؤقتًا باستخدام Canvas 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. - تمت إزالة طريقة التوافق العامة مع
eglDupNativeFenceFDANDROIDلصالح طريقة المصنعSyncFenceCompatلإنشاء SyncFence. وذلك لضمان تلقّي جميع أسطح واجهات برمجة التطبيقات عملية التنفيذ الصحيحة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التي تستفيد من واجهة برمجة التطبيقاتSyncFenceفي إطار العمل حيثما أمكن ذلك. (I5149c)
- تم نقل
- تمت إضافة طريقتَي
GLFrontBufferedRenderer#cancelوGLFrontBufferedRenderer#execute. يكون الخيار الأول مفيدًا في سيناريوهات رفض راحة اليد حيث يجب إلغاء العرض في المخزن المؤقت الأمامي وإخفاء المخزن المؤقت الأمامي. يكون هذا الخيار الأخير مفيدًا في سيناريوهات معالجة العناصر في سلسلة محادثات GL بدون الحاجة إلى جدولة عملية عرض. (If0b7f) - أضِف واجهة برمجة تطبيقات لعرض المحتوى مباشرةً في الطبقة المخزّنة مؤقتًا مرّتين. يساعد ذلك في إعادة عرض مشهد بعد الاستئناف، كما يتيح للمستهلكين تحديد وقت الاستفادة من العرض المخزّن مؤقتًا في المخزن الأمامي بشكل انتقائي استنادًا إلى المشهد المطلوب عرضه. (Ied56c)
- تمت إضافة واجهة برمجة تطبيقات جديدة إلى
SurfaceControlCompat.Builderللسماح بإعدادSurfaceControlالأصل من مثيلSurfaceControlآخر بالإضافة إلى الآلية الحالية منSurfaceView. (I1d1b6) - المزيد من إمكانية قبول القيمة الخالية لأنواع الإرجاع للدوال المتوقفة نهائيًا والمخفية (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 هذه التعديلات.
تغييرات واجهة برمجة التطبيقات
- تم إصلاح التعليق التوضيحي
RequiresApiغير المتوفّر للرمزaddTransactionCommitListenerالذي تم تقديمه في الإصدار S من نظام التشغيل Android (I0a035) - تم تعديل عمليات معاودة الاتصال
onDraw<Front/Double>الخاصة بالمخزن المؤقت لتوفير مصفوفة تحويل يمكن للمستهلكين تمريرها إلى مظلّلات الرؤوس بالإضافة إلى عرض/ارتفاع المخزن المؤقت الحالي. ويتحمّل المستهلكون مسؤولية استخدام هذه المَعلمات لتدوير رمز العرض OpenGL مسبقًا بشكلٍ صحيح. (I82f9e)
إصلاح الأخطاء
- تم تحسين وقت استجابة الرسومات من خلال تدوير المخازن المؤقتة مسبقًا قبل إصدار معاملات
SurfaceControl. - تم إصلاح المشكلة التي كانت تتسبب في عرض سجلّات الأخطاء للخطأ 300d (EGL_BAD_SURFACE).
- تم إصلاح المشكلة التي كانت تؤدي إلى عدم صلاحية
GLFrontBufferedRendererبعد استئناف النشاط المقابل الذي تم استخدامه فيه. - زيادة التوافق مع المحاكيات وأجهزة ChromeOS
- تم إصلاح المشكلة التي قد تؤدي إلى إخفاء الطبقة المخزّنة مؤقتًا في المقدّمة قبل الأوان.
الإصدار 1.0.0-alpha01
24 أكتوبر 2022
تم طرح androidx.graphics:graphics-core:1.0.0-alpha01. يتضمّن الإصدار 1.0.0-alpha01 هذه التعديلات.
الميزات الجديدة
- الإصدار الأولي من مكتبة AndroidX الأساسية للرسومات ويشمل ذلك واجهات برمجة التطبيقات التي تتيح حالات الاستخدام التي تتطلّب سرعة استجابة منخفضة، مثل إدخال البيانات باستخدام قلم الشاشة. ويوفّر هذا الإصدار أيضًا بعض واجهات برمجة التطبيقات المساعدة لاستخدام OpenGL.
تغييرات واجهة برمجة التطبيقات
- تتضمّن هذه السمة
GLFrontBufferedRendererللمساعدة في العرض الأمامي والعرض المتعدد المخزّن مؤقتًا لتحقيق كلّ من وقت الاستجابة المنخفض وجودة العرض العالية. - تضيف هذه الحزمة واجهة برمجة التطبيقات
GLRendererللمساعدة في عرض OpenGL لمختلف موفّري Surface، مثلSurfaceViewوTextureViewوغيرهما.