इंक

  
बेहतरीन पेन ऐप्लिकेशन बनाने के लिए प्रेरणा मिलती है. बेहतरीन परफ़ॉर्मेंस और शानदार इंक़िंग अनुभव के लिए, डेवलपर के लिए एंट्री की मुश्किलों को कम करना. Android और सर्वर-साइड जेवीएम पर इंक करने की सुविधा काम करती है. फ़िलहाल, यह सुविधा x86_64 के लिए Linux पर काम करती है.
नया अपडेट स्टेबल रिलीज़ रिलीज़ कैंडिडेट बीटा रिलीज़ ऐल्फ़ा रिलीज़
17 जून, 2026 1.0.0 - - 1.1.0-alpha04

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

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

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

Groovy

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 का वर्शन 1.1

वर्शन 1.1.0-alpha04

17 जून, 2026

androidx.ink:ink-*:1.1.0-alpha04 रिलीज़ हो गया है. वर्शन 1.1.0-alpha04 में ये बदलाव शामिल हैं.

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

  • फ़्लोटिंग पॉइंट प्रिसिशन से जुड़ी समस्याओं को ठीक किया गया है. इनकी वजह से, स्ट्रोक पूरा होने के बाद विज़ुअल आर्टफ़ैक्ट दिखते थे. ओएस अपग्रेड करने के बाद, कुछ डिवाइसों पर इसका असर पड़ता था

  • स्टोरेज मॉड्यूल के लिए KMP-common API जोड़ें (Java InputStream/OutputStream के बजाय ByteArray से/पर जा रहा है).

  • कस्टम ब्रश फ़ैमिली के डिज़ाइन के बारे में बताने वाले मेटाडेटा को सेव करने के लिए, BrushBehavior.developerComment प्रॉपर्टी जोड़ें. इसका मकसद, Brush Designer UI को सपोर्ट करना है.

  • 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 serialization API को एक्सपेरिमेंटल (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)
  • Java के लिए, CanvasStrokeRenderer.create और InProgressStroke.updateShape के ज़ीरो-आर्ग्युमेंट वर्शन को उपलब्ध कराएं (Id80a1, b/457715938)

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

  • इस अपडेट में, एपीआई 29 से 32 के लिए, विंडो से अलग/फिर से अटैच करने के बाद InProgressStrokesView में क्रैश होने की समस्या को ठीक किया गया है. साथ ही, 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

03 दिसंबर, 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

08 अक्टूबर, 2025

androidx.ink:ink-*:1.0.0-alpha07 रिलीज़ हो गया है. वर्शन 1.0.0-alpha07 में ये बदलाव शामिल हैं.

नई सुविधाएं

  • StockBrushes highlighter और emojiHighlighter के लिए SelfOverlap पैरामीटर, जो InProgressStrokesView rendererFactory की जगह लेता है
  • स्ट्रोक इनपुट को आसान बनाने की सुविधा को बेहतर तरीके से लागू किया गया है. इससे डिवाइस के मेज़रमेंट में होने वाली गड़बड़ी को दूर किया जा सकता है. साथ ही, यह सुविधा स्ट्रोक इनपुट को आसान बनाने की पिछली सुविधा की तुलना में, उपयोगकर्ता के इनपुट को ज़्यादा सटीक तरीके से दिखाती है
  • कोण की इकाइयों (डिग्री बनाम रेडियन), ट्रांसफ़ॉर्म (स्क्वे बनाम शियर) वगैरह के लिए, अन्य Android/Jetpack API के साथ बेहतर एकरूपता

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

  • कोण से जुड़े एपीआई में बदलाव करके, डिग्री का इस्तेमाल करें और नाम में यूनिट शामिल करें. एंगल कन्वर्ज़न यूटिलिटी में यूनिट के बारे में साफ़ तौर पर बताएं और डिग्री और रेडियन, दोनों के लिए सहायता उपलब्ध कराएं. 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 को, बदले जा सकने वाले BoxAccumulator के बजाय, नहीं बदले जा सकने वाले Box को लेने के लिए बनाया गया है, ताकि यह साफ़ तौर पर पता चल सके कि क्या बदला गया है. कॉल करने वालों को boxAccumulator.add(other) को boxAccumulator.add(other.box) में बदलना चाहिए. BrushUtil.toBuilderWithAndroidColor/createBuilderWithAndroidColor हटा दिए गए हैं. इसके बजाय, Brush.Builder के setAndroidColor का इस्तेमाल करें. (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 का इस्तेमाल करें.
  • स्ट्रोक: ये इनकिंग सुविधाओं के लिए इस्तेमाल किए जाने वाले मुख्य डेटा टाइप हैं.
  • ब्रश: इसमें यह तय किया जा सकता है कि उपयोगकर्ता के इनपुट के जवाब में स्ट्रोक कैसे दिखेंगे और काम करेंगे.
  • ज्यामिति: इंटरसेक्शन और कवरेज जैसे जियोमेट्रिक ऑपरेशन, ताकि सिलेक्शन और मिटाने जैसे टूल को बेहतर बनाया जा सके.