حبر

  
إلهام أفضل تطبيقات القلم تسهيل وصول المطوّرين إلى تجارب الكتابة بالحبر الرائعة وعالية الأداء يتيح استخدام ميزة "الكتابة بالحبر الرقمي" على Android وJVM من جهة الخادم (متاح حاليًا على Linux لأجهزة x86_64).
آخر الأخبار الإصدار الثابت إصدار محتمل الإصدار التجريبي الإصدار الأوّلي
‫9 سبتمبر 2026 1.0.0 - - 1.1.0-alpha08

تحديد الاعتماديات

لإضافة اعتمادية على Ink، يجب تضمين مستودع Google Maven في مشروعك. اطّلِع على مستودع Maven من Google لمزيد من المعلومات.

أضِف الاعتماديات الخاصة بالعناصر التي تحتاج إليها في ملف build.gradle لتطبيقك أو وحدتك:

أنيق

dependencies {
  
    implementation "androidx.ink:ink-authoring:1.1.0-alpha04"
    implementation "androidx.ink:ink-authoring-compose:1.1.0-alpha04"
    implementation "androidx.ink:ink-brush:1.1.0-alpha04"
    implementation "androidx.ink:ink-brush-compose:1.1.0-alpha04"
    implementation "androidx.ink:ink-geometry:1.1.0-alpha04"
    implementation "androidx.ink:ink-geometry-compose:1.1.0-alpha04"
    implementation "androidx.ink:ink-nativeloader:1.1.0-alpha04"
    implementation "androidx.ink:ink-rendering:1.1.0-alpha04"
    implementation "androidx.ink:ink-storage:1.1.0-alpha04"
    implementation "androidx.ink:ink-strokes:1.1.0-alpha04"
    
}

Kotlin

dependencies {


    implementation("androidx.ink:ink-authoring:1.1.0-alpha04")
    implementation("androidx.ink:ink-authoring-compose:1.1.0-alpha04")
    implementation("androidx.ink:ink-brush:1.1.0-alpha04")
    implementation("androidx.ink:ink-brush-compose:1.1.0-alpha04")
    implementation("androidx.ink:ink-geometry:1.1.0-alpha04")
    implementation("androidx.ink:ink-geometry-compose:1.1.0-alpha04")
    implementation("androidx.ink:ink-nativeloader:1.1.0-alpha04")
    implementation("androidx.ink:ink-rendering:1.1.0-alpha04")
    implementation("androidx.ink:ink-storage:1.1.0-alpha04")
    implementation("androidx.ink:ink-strokes:1.1.0-alpha04")
}

لمزيد من المعلومات حول الاعتماديات، يُرجى الاطّلاع على إضافة اعتماديات الإصدار.

الملاحظات

تساعدنا ملاحظاتك في تحسين Jetpack. يُرجى إعلامنا إذا اكتشفت مشاكل جديدة أو كانت لديك أفكار لتحسين هذه المكتبة. يُرجى الاطّلاع على المشاكل الحالية في هذه المكتبة قبل إنشاء مشكلة جديدة. يمكنك إضافة صوتك إلى مشكلة حالية من خلال النقر على زر النجمة.

إنشاء مشكلة جديدة

يُرجى الاطّلاع على مستندات Issue Tracker للحصول على مزيد من المعلومات.

Ink Version 1.1

الإصدار ‎1.1.0-alpha08

‫9 سبتمبر 2026

تم طرح androidx.ink:ink-*:1.1.0-alpha08. يتضمّن الإصدار 1.1.0-alpha08 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • إضافة إمكانية العرض على KMP iOS من خلال MetalRenderer، ضمن التعليق التوضيحي ExperimentalInkCrossPlatformRenderingApi الذي يتطلّب الموافقة، استنادًا إلى واجهات برمجة التطبيقات الشائعة في KMP للوظائف الأساسية
  • تمّت إعادة تسمية Target.TEXTURE_ANIMATION_PROGRESS_OFFSET إلى Target.PAINT_ANIMATION_PROGRESS_OFFSET. (I8809f)
  • إضافة أحمال زائدة ImmutableAffineTransform.translate(float x, float, y) و MutableAffineTransform populateFromTranslation(float x, float y) (I8809f)
  • إعادة تسمية الموقع DampingNode من dampingSource إلى dampOver (Id3178)
  • إعادة تسمية الموقع DampingNode من dampingGap إلى strength (I69432)
  • استخدِم النوع Vec عند تحديد EasingFunction.CubicBezier بدلاً من Floats (I69432)
  • إضافة تعليق توضيحي WorkerThread إلى وظائف الممحاة لتعديل الشبكة Stroke.subtract وStroke.split (I69432)

إصلاح الأخطاء

  • جعل Brush العيّنات متوافقة مع KMP (I77125)

الإصدار ‎1.1.0-alpha07

‫12 أغسطس 2026

تم طرح androidx.ink:ink-*:1.1.0-alpha07. يتضمّن الإصدار 1.1.0-alpha07 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • إصلاح مشكلة انخفاض الأداء التي تؤثر في فُرش الجزيئات الكثيفة، وتعديل ثوابت Brush.Version استنادًا إلى ملاحظات واجهة برمجة التطبيقات (I87f0f)

الإصدار ‎1.1.0-alpha06

‫29 يوليو 2026

تم طرح androidx.ink:ink-*:1.1.0-alpha06. يتضمّن الإصدار 1.1.0-alpha06 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • تمت إضافة طرق calculateMinimumRequiredVersion إلى واجهة برمجة التطبيقات للأنواع الفرعية BrushFamily. (I338c9)
  • عرض حقول المكوّن AffineTransform (Ic2ec3)
  • إصلاح تسرب الذاكرة في InProgressStrokesView، وتحسين العيوب المرئية التجريبية لممحاة الأجزاء، وتحسين تمثيل protobuf لطبقات نسيج الفرشاة المخصّصة (I6ff86)
  • إضافة أداة إنشاء تهيئة للسمة MutableAffineTransform (لتتوافق مع ImmutableAffineTransform) (I96ec7)
  • إضافة InProgressStroke.clear (Ie0032)
  • إضافة طرق toImmutable إلى بنى البيانات مع فئات فرعية قابلة للتغيير وغير قابلة للتغيير (I53835)
  • نقل بيانات KMP ‏ (Icbf38، b/521850119، b/534309122)

إصلاح الأخطاء

  • إضافة المزيد من الدعم لإصدارات الفرش والصور المتحركة الخاصة بالنسيج (Iea9ba)

الإصدار ‎1.1.0-alpha05

‫15 يوليو 2026

تم طرح androidx.ink:ink-*:1.1.0-alpha05. يتضمّن الإصدار 1.1.0-alpha05 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • إصدار تجريبي لنوع جديد من الممحاة، يُعرف باسم "المحو الجزئي" أو "تعديل الشبكة" أو ممحاة "البكسل"، والذي يعدّل شكل الخطوط ويقسمها بدلاً من حذف الخطوط بأكملها أو إخفائها بلون الخلفية. تشمل المشاكل المعروفة عدم توفّر ميزة تنعيم الحواف على الحواف المقطوعة، وعدم توفّر واجهات برمجة تطبيقات نشر على نحو متسلسِل لحفظ نتائج PartitionedMesh الممحاة، وسيتم توفير كلتا الميزتين في الإصدارات المستقبلية.
  • أضِف تعليق Throws التوضيحي الناقص إلى StrokeInputBatchSerialization.decode، ما يتطلّب تحديثًا من مستخدمي Java لهذه الطريقة. (I83473، b/522256938)

إصلاح الأخطاء

  • إصلاح عُطل أصلي ناتج عن مشكلة في الدقة العددية (I2e1f0 و6618e69 وb/523190724)
  • تجاهل الأشكال الهندسية المتدهورة في BrushTipExtruder (469b629)
  • حلّ المشكلة RejectedExecutionException في InProgressStrokesView (b/526696762)

الإصدار ‎1.1.0-alpha04

‫17 يونيو 2026

تم طرح androidx.ink:ink-*:1.1.0-alpha04. يتضمّن الإصدار 1.1.0-alpha04 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • إصلاح مشاكل دقة الأرقام العشرية التي تؤدي إلى ظهور تشوّهات مرئية في اللمسات النهائية، ما يؤثر في أجهزة معيّنة بعد ترقية نظام التشغيل

  • إضافة واجهة برمجة تطبيقات KMP-common لوحدة التخزين (الانتقال من/إلى ByteArray بدلاً من Java InputStream/OutputStream)

  • أضِف سمة BrushBehavior.developerComment لتضمين البيانات الوصفية التي تشرح تصميم مجموعة فرش مخصّصة. وهي مخصّصة لدعم واجهة مستخدم "مصمّم الفرشاة".

  • إصلاح خطأ في عمليات التحقّق من اتساق سلاسل المحادثات في CanvasInProgressStrokesRenderHelperV33

  • إصلاح بعض الأخطاء في التعامل مع الحقول الاختيارية MotionEvent (مثل الميل والضغط).

  • تحسين مستندات واجهة برمجة التطبيقات الخاصة بالفرشاة المخصّصة

  • أضِف أنواع BrushPaint.ColorFunction جديدة.

الإصدار ‎1.1.0-alpha03

‫19 مايو 2026

تم طرح androidx.ink:ink-*:1.1.0-alpha03. يتضمّن الإصدار 1.1.0-alpha03 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • إتاحة واجهة برمجة التطبيقات لتخصيص أداة "فرشاة الحبر" آليًا للجميع (I8e2e1)
  • تقسيم BrushPaint.TextureLayer إلى فئات فرعية أكثر تحديدًا (I8848a)

الإصدار ‎1.1.0-alpha02

‫22 أبريل 2026

تم طرح androidx.ink:ink-*:1.1.0-alpha02. يتضمّن الإصدار 1.1.0-alpha02 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • توفير تحميل زائد لـ BrushFamily.decode يحدّد الحد الأقصى للتوافق مع الإصدار (I1c7bc)
  • إخراج واجهة برمجة التطبيقات الخاصة بالتسلسل BrushFamily من المرحلة التجريبية (Idd16e)

إصلاح الأخطاء

  • إصلاح مشكلة الوميض عند استخدام InProgressStrokesView.maskPath على أجهزة معيّنة (I1c7bc، b/496920044)

الإصدار ‎1.1.0-alpha01

‫11 مارس 2026

تم طرح androidx.ink:ink-*:1.1.0-alpha01. يتضمّن الإصدار 1.1.0-alpha01 هذه التعديلات.

الميزات الجديدة

  • إصلاحات متنوّعة لأخطاء بسيطة

تغييرات واجهة برمجة التطبيقات

  • إضافة InProgressShape.isCanceled، وإصلاح مشاكل التزامن في وحدة التأليف (Ibfd32، b/474385518، b/470695777)
  • عرض إصدار بدون وسيطات من CanvasStrokeRenderer.create وInProgressStroke.updateShape في Java (Id80a1، b/457715938)

إصلاح الأخطاء

  • إصلاح خطأ يؤدي إلى حدوث أعطال في InProgressStrokesView بعد فصل/إعادة ربط النافذة في الإصدارات من 29 إلى 32 من واجهة برمجة التطبيقات، والسماح لعمليات Vec باستخدام MutableVec نفسه كمدخل ومخرج، ودمج إعدادات Proguard في ملف واحد (Ia4da0)
  • زيادة الاعتماد على graphics-core إلى الإصدار 1.0.4 (Ibfa18)

الإصدار 1.0

الإصدار 1.0.0

‫17 ديسمبر 2025

تم طرح androidx.ink:ink-*:1.0.0. يتضمّن الإصدار 1.0.0 هذه التعديلات.

إصلاح الأخطاء

  • زيادة الاعتماد على graphics-core إلى الإصدار 1.0.4 (Ibfa18)

الإصدار ‎1.0.0-rc01

‫3 ديسمبر 2025

تم طرح androidx.ink:ink-*:1.0.0-rc01. يتضمّن الإصدار 1.0.0-rc01 هذه التعديلات.

إصلاح الأخطاء

  • تعديل إصدار التبعية (Iecd04)

الإصدار ‎1.0.0-beta02

‫19 نوفمبر 2025

تم طرح androidx.ink:ink-*:1.0.0-beta02. يتضمّن الإصدار 1.0.0-beta02 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • واجهات برمجة تطبيقات تجريبية مخصّصة للأشكال ذات زمن الاستجابة المنخفض، وإصلاحات متنوعة للأخطاء (Ib8d2f)

إصلاح الأخطاء

  • تحسين دقة النقطة العائمة في StrokeInputBatch التسلسل، وإصلاح الانحراف في القيم الناتج عن التشفير وفك التشفير المتكرّرين
  • تنقيح أكثر فعالية لمدخلات النظام
  • إصلاح إمكانية استخدام زخرفة الفرشاة في العنصر القابل للإنشاء InProgressStrokes

الإصدار 1.0.0-beta01

‫22 أكتوبر 2025

تم طرح androidx.ink:ink-*:1.0.0-beta01. يتضمّن الإصدار 1.0.0-beta01 هذه التعديلات.

إصلاح الأخطاء

  • إصلاح الأخطاء استعدادًا لإصدار beta01 (I9900e)
  • تقليل التشويش في العينات بسبب كثرة المدخلات التي تم تصميمها بالقرب من بعضها البعض
  • تم إصلاح عُطل نادر في نمذجة الإدخال.

الإصدار ‎1.0.0-alpha07

‫8 أكتوبر 2025

تم طرح androidx.ink:ink-*:1.0.0-alpha07. يتضمّن الإصدار ‎1.0.0-alpha07 هذه التعديلات.

الميزات الجديدة

  • المَعلمة SelfOverlap لكل من StockBrushes وhighlighter وemojiHighlighter، والتي تحلّ محلّ InProgressStrokesView rendererFactory
  • تحسين تنفيذ ميزة "تنعيم إدخال الضغطات"، ما يؤدي إلى إزالة التشويش الناتج عن قياس الجهاز، ولكنّه يعكس بدقة أكبر بيانات أدخلها المستخدم مقارنةً بالتنفيذ السابق لميزة "تنعيم إدخال الضغطات"
  • تحسين التوافق مع واجهات برمجة تطبيقات Android/Jetpack الأخرى لوحدات الزوايا (الدرجات مقابل الراديان) وعمليات التحويل (الانحراف مقابل القص) وغير ذلك

تغييرات واجهة برمجة التطبيقات

  • تغيير واجهة برمجة التطبيقات ذات الصلة بالزوايا لاستخدام الدرجات وتضمين الوحدة في الأسماء، وتوضيح الوحدات في أدوات تحويل الزوايا وإتاحة استخدام الدرجات والتقدير الدائري، وتغيير واجهة برمجة التطبيقات StockBrushes لتأخذ إصدار الفرشاة الجاهزة كمَعلمة دالة المصنع وعرض عنصر التحكّم في سلوك التداخل الذاتي لفرشاة التمييز، وإعادة تسمية MutableAffineTransform.populateFromTranslate إلى populateFromTranslation، وإزالة InProgressStrokesView.setRenderFactory/getRenderFactory (Id9eab، b/436656418)
  • إعادة تسمية القص إلى التشويه، وتوضيح بعض المستندات، وإزالة CanvasStrokeRenderer.strokeModifiedRegionOutsetPx، وإضافة InProgressStroke.changesWithTime (Ia5e70، b/436656418)

إصلاح الأخطاء

  • تحسين وضع نماذج الإدخال لجعل ضربات المفاتيح تعكس الإدخال بدقة أكبر (I93097)

الإصدار ‎1.0.0-alpha06

‫13 أغسطس 2025

تم طرح androidx.ink:ink-*:1.0.0-alpha06. يتضمّن الإصدار ‎1.0.0-alpha06 هذه التعديلات.

الميزات الجديدة

  • فرشاة تمييز الإيموجي الجاهزة: يمكنك تمييز أجزاء من المستند باستخدام أي إيموجي تختاره، لإضافة لمسة مرحة والمساعدة في الحفاظ على التنظيم.
  • المزيد من واجهات برمجة التطبيقات المساعدة للأشكال الأساسية في وحدة الأشكال الهندسية
  • تحسين توافق الجهاز وأدائه

تغييرات واجهة برمجة التطبيقات

  • واجهة برمجة تطبيقات مبسطة لـ InProgressStrokesView، وواجهات برمجة تطبيقات لإنهاء الأشكال الهندسية، وأداة تمييز الرموز التعبيرية، وإزالة دوال المصنع من MutableParallelogram لصالح طرق التعبئة، وإتاحة استخدام قيمة أولية لسلوكيات الفرشاة العشوائية (I38280)

إصلاح الأخطاء

  • تم إصلاح مشكلة في الأداء ومشكلة في اتساق الألوان الرطبة والجافة. (Ifcd1d)

الإصدار ‎1.0.0-alpha05

‫18 يونيو 2025

تم طرح androidx.ink:ink-*:1.0.0-alpha05. يتضمّن الإصدار ‎1.0.0-alpha05 هذه التعديلات.

الميزات الجديدة

  • إنشاء وحدات إمكانية التشغيل التفاعلي لوحدات التأليف والفرشاة والأشكال الهندسية

تغييرات واجهة برمجة التطبيقات

  • وحدات وواجهات برمجة تطبيقات جديدة للتوافق مع Compose، وتنظيف واجهة برمجة التطبيقات (I0e464)
  • تمت إزالة طرق InProgressStroke.enqueueInputs/updateShape التي تعرض kotlin.Result، ويجب أن تستخدم البرامج enqueueInputsOrThrow أو enqueueInputsOrIgnore مثلاً بدلاً من ذلك. تم تغيير اسم InProgressStroke.getNeedsUpdate إلى isUpdateNeeded. تعرض الدالة InProgressStroke.populateOutlinePosition الآن مَعلمة الإخراج للسماح بتسلسل استدعاء الدوال، بما يتوافق مع الطرق الأخرى في Ink. تم نقل واجهة TextureBitmapStore من وحدة العرض إلى وحدة الفرشاة. تم تصميم BoxAccumulator.populateFrom لتلقّي Box غير قابل للتعديل وقابل للقيم الفارغة بدلاً من BoxAccumulator القابل للتعديل، ولتوضيح ما يتم تعديله، على المتصلين تغيير boxAccumulator.add(other) إلى boxAccumulator.add(other.box). تمت إزالة BrushUtil.toBuilderWithAndroidColor/createBuilderWithAndroidColor، لذا يُرجى استخدام setAndroidColor من Brush.Builder بعد الإنشاء بدلاً من ذلك. (Ia7155)
  • أصبحت السمة التجريبية InProgressStrokesView.textureBitmapStore السابقة خاصة الآن. لا تزال هناك أدوات وصول عامة لهذه السمة. (I1d706)

إصلاح الأخطاء

  • تحسين الأداء للفرش المخصّصة التي تحتوي على العديد من الجسيمات

الإصدار ‎1.0.0-alpha04

‫9 أبريل 2025

تم طرح androidx.ink:ink-*:1.0.0-alpha04. يتضمّن الإصدار ‎1.0.0-alpha04 هذه التعديلات.

الميزات الجديدة

  • تتضمّن واجهات برمجة تطبيقات تجريبية جديدة لعناصر BrushFamily مخصّصة، ما يتيح استخدام فُرش جديدة، مثل "قلم الرصاص" و"مؤشر الليزر". تتيح واجهة برمجة التطبيقات تحميل الفرش المحدّدة بواسطة هذا البروتوكول. (I8809a)

الإصدار ‎1.0.0-alpha03

‫12 فبراير 2025

تم طرح androidx.ink:ink-*:1.0.0-alpha03. يتضمّن الإصدار ‎1.0.0-alpha03 هذه التعديلات.

الميزات الجديدة

  • توفير مساحة على القرص والشبكة: تسلسل StrokeInputBatch، ما يؤدي إلى توفير العديد من أسطر الرمز البرمجي، مع كون العناصر الناتجة جزءًا صغيرًا من حجم الضربات المخزّنة عادةً. (Ie898d)
  • تحديد باستخدام أداة التحديد الحر: فرشاة خط متقطّع لرسم خط التحديد، ودالة لتحويل خط التحديد إلى PartitionedMesh من أجل طلبات البحث عن الأشكال الهندسية (Ia38a0)

الإصدار ‎1.0.0-alpha02

‫11 ديسمبر 2024

تم طرح androidx.ink:ink-*:1.0.0-alpha02. يتضمّن الإصدار ‎1.0.0-alpha02 هذه التعديلات.

تغييرات واجهة برمجة التطبيقات

  • إصلاحات أخطاء متنوّعة (I05dd8)

المساهمة الخارجية

  • إيقاف BuildCompat.isAtLeastV بدلاً من ذلك، على المتصلين التحقّق من SDK_INT مقابل 35 مباشرةً. (I294d1)

الإصدار ‎1.0.0-alpha01

‫2 أكتوبر 2024

تم طرح androidx.ink:ink-*:1.0.0-alpha01. يتضمّن الإصدار ‎1.0.0-alpha01 هذه التعديلات.

الميزات الجديدة

  • مكتبة معيارية وقابلة للضبط لتسهيل إنشاء ضربات حبر جميلة وعرضها ومعالجتها في تطبيقك

تغييرات واجهة برمجة التطبيقات

وحدات جديدة لمساعدة المطوّرين في إنشاء تجارب كتابة غنية:

  • التأليف: استخدِم InProgressStrokesView لعرض ضربات الفرشاة في الوقت الفعلي بأداء عالٍ ووقت استجابة منخفض عند تلقّي المدخلات.
  • العرض: استخدِم CanvasStrokeRenderer وViewStrokeRenderer لرسم ضربات الحبر المكتملة كجزء من واجهة مستخدم التطبيق.
  • الضربات: أنواع البيانات الأساسية المستخدَمة في ميزات الكتابة بالحبر
  • الفرشاة: مواصفات قابلة للضبط حول شكل ضربات الفرشاة وطريقة عملها استجابةً لبيانات المستخدم.
  • الأشكال الهندسية: عمليات هندسية مثل التقاطع والتغطية لتشغيل أدوات مثل التحديد والمحو