Wear OS ডিভাইসে, টাইলগুলি স্বাধীন সংস্করণ সহ দুটি মূল উপাদান দ্বারা রেন্ডার করা হয়। আপনার অ্যাপের টাইলস সমস্ত ডিভাইসে সঠিকভাবে কাজ করছে তা নিশ্চিত করতে, এই অন্তর্নিহিত আর্কিটেকচারটি বোঝা গুরুত্বপূর্ণ।
- জেটপ্যাক টাইল-সম্পর্কিত লাইব্রেরি : এই লাইব্রেরিগুলি (ওয়্যার টাইলস এবং ওয়ার প্রোটোলেআউট সহ) আপনার অ্যাপে এম্বেড করা আছে এবং আপনি, বিকাশকারী হিসাবে, তাদের সংস্করণগুলি নিয়ন্ত্রণ করেন। আপনার অ্যাপটি সিস্টেমের
onTileRequest()
কলের প্রতিক্রিয়া হিসাবে একটিTileBuilder.Tile
অবজেক্ট (আপনার টাইল প্রতিনিধিত্বকারী ডেটা কাঠামো) তৈরি করতে এই লাইব্রেরিগুলি ব্যবহার করে৷ - প্রোটোলেআউট রেন্ডারার: এই সিস্টেম উপাদানটি ডিসপ্লেতে
Tile
অবজেক্ট রেন্ডার করার এবং ব্যবহারকারীর মিথস্ক্রিয়া পরিচালনা করার জন্য দায়ী। রেন্ডারারের সংস্করণ অ্যাপ ডেভেলপার দ্বারা নিয়ন্ত্রিত হয় না এবং ডিভাইস জুড়ে পরিবর্তিত হতে পারে, এমনকি অভিন্ন হার্ডওয়্যার সহ।
আপনার অ্যাপের জেটপ্যাক টাইলস লাইব্রেরি সংস্করণ এবং ব্যবহারকারীর ডিভাইসে প্রোটোলেআউট রেন্ডারার সংস্করণের উপর ভিত্তি করে একটি টাইলের চেহারা বা আচরণ পরিবর্তিত হতে পারে। উদাহরণস্বরূপ, একটি ডিভাইস ঘূর্ণন বা হার্ট রেট ডেটা প্রদর্শন সমর্থন করতে পারে এবং অন্যটি নাও পারে৷
এই দস্তাবেজটি ব্যাখ্যা করে যে কীভাবে আপনার অ্যাপটি টাইলস লাইব্রেরি এবং প্রোটোলেআউট রেন্ডারারের বিভিন্ন সংস্করণের সাথে সামঞ্জস্যপূর্ণ তা নিশ্চিত করা যায় এবং কীভাবে উচ্চতর জেটপ্যাক লাইব্রেরি সংস্করণগুলিতে স্থানান্তর করা যায়।
সামঞ্জস্য বিবেচনা করুন
একটি টাইল তৈরি করতে যা বিভিন্ন ডিভাইসে সঠিকভাবে কাজ করে, আপনার নিম্নলিখিতগুলি বিবেচনা করা উচিত।
রেন্ডারার সংস্করণ সনাক্ত করুন
- আপনার onTileRequest() পদ্ধতিতে পাস করা
DeviceParameters
অবজেক্টেরgetRendererSchemaVersion()
পদ্ধতি ব্যবহার করুন। এই পদ্ধতিটি ডিভাইসে প্রোটোলেআউট রেন্ডারারের প্রধান এবং ছোট সংস্করণ নম্বর প্রদান করে। - তারপরে আপনি শনাক্ত রেন্ডারার সংস্করণের উপর ভিত্তি করে আপনার টাইলের নকশা বা আচরণকে মানিয়ে নিতে আপনার
onTileRequest()
বাস্তবায়নে শর্তসাপেক্ষ যুক্তি ব্যবহার করতে পারেন।- উদাহরণস্বরূপ, যদি একটি নির্দিষ্ট অ্যানিমেশন সমর্থিত না হয়, আপনি পরিবর্তে একটি স্থির চিত্র প্রদর্শন করতে পারেন।
@RequiresSchemaVersion
টীকা
- ProtoLayout পদ্ধতিতে
@RequiresSchemaVersion
টীকা নির্দেশ করে যে পদ্ধতিটি নথিভুক্ত ( উদাহরণ ) হিসাবে আচরণ করার জন্য প্রয়োজনীয় ন্যূনতম রেন্ডারার স্কিমা সংস্করণ।- ডিভাইসে উপলব্ধের চেয়ে উচ্চতর রেন্ডারার সংস্করণ প্রয়োজন এমন একটি পদ্ধতিকে কল করার সময় আপনার অ্যাপ ক্র্যাশ হবে না, এটি সামগ্রী প্রদর্শন না করা বা বৈশিষ্ট্যটিকে উপেক্ষা করা হতে পারে।
উদাহরণ
override fun onTileRequest(
requestParams: TileService.TileRequest
): ListenableFuture<Tile> {
val rendererVersion =
requestParams.deviceConfiguration.rendererSchemaVersion
val tile = Tile.Builder()
if (
rendererVersion.major > 1 ||
(rendererVersion.major == 1 && rendererVersion.minor >= 300)
) {
// Use a feature supported in renderer version 1.300 or later
tile.setTileTimeline(/* ... */ )
} else {
// Provide fallback content for older renderers
tile.setTileTimeline(/* ... */ )
}
return Futures.immediateFuture(tile.build())
}
বিভিন্ন রেন্ডারার সংস্করণের সাথে পরীক্ষা করুন
আপনার টাইলগুলিকে বিভিন্ন রেন্ডারার সংস্করণের সাথে পরীক্ষা করতে, সেগুলিকে Wear OS এমুলেটরের বিভিন্ন সংস্করণে স্থাপন করুন৷ (ভৌত ডিভাইসগুলিতে, প্রোটোলেআউট রেন্ডারার আপডেটগুলি প্লে স্টোর বা সিস্টেম আপডেটগুলি দ্বারা বিতরণ করা হয়৷ একটি নির্দিষ্ট রেন্ডারার সংস্করণ ইনস্টল করার জন্য জোর করা সম্ভব নয়৷)
অ্যান্ড্রয়েড স্টুডিওর টাইল প্রিভিউ বৈশিষ্ট্যটি জেটপ্যাক প্রোটোলেআউট লাইব্রেরিতে এমবেড করা একটি রেন্ডারার ব্যবহার করে যার উপর আপনার কোড নির্ভর করে, তাই আরেকটি পদ্ধতি হল টাইল পরীক্ষা করার সময় বিভিন্ন জেটপ্যাক লাইব্রেরি সংস্করণের উপর নির্ভর করা।
টাইলস 1.5 / প্রোটোলেআউট 1.3 (ম্যাটেরিয়াল 3 এক্সপ্রেসিভ) এ স্থানান্তরিত করুন
আপনার টাইলগুলিকে সিস্টেমের সাথে নির্বিঘ্নে একীভূত করতে UI পরিবর্তন সহ সাম্প্রতিক বর্ধনগুলির সুবিধা নিতে আপনার জেটপ্যাক টাইল লাইব্রেরিগুলি আপডেট করুন৷
জেটপ্যাক টাইলস 1.5 এবং জেটপ্যাক প্রোটোলেআউট 1.3 বেশ কয়েকটি উল্লেখযোগ্য উন্নতি এবং পরিবর্তনগুলি উপস্থাপন করে। এর মধ্যে রয়েছে:
- UI বর্ণনা করার জন্য একটি রচনার মতো API।
- উপাদান 3 এক্সপ্রেসিভ উপাদান, নীচে-আলিঙ্গন প্রান্ত বোতাম এবং উন্নত ভিজ্যুয়ালগুলির জন্য সমর্থন সহ: লটি অ্যানিমেশন, আরও গ্রেডিয়েন্ট প্রকার, এবং নতুন আর্ক লাইন শৈলী। - দ্রষ্টব্য: এই বৈশিষ্ট্যগুলির মধ্যে কিছু নতুন API এ স্থানান্তর না করেও ব্যবহার করা যেতে পারে।
সুপারিশ
- আপনার সমস্ত টাইলস একযোগে স্থানান্তর করুন। আপনার অ্যাপের মধ্যে টাইলস সংস্করণ মিশ্রিত করা এড়িয়ে চলুন। যদিও Material 3 উপাদানগুলি একটি পৃথক আর্টিফ্যাক্টে থাকে (
androidx.wear.protolayout:protolayout-material3
)-একই অ্যাপে M2.5 এবং M3 টাইল উভয়ই ব্যবহার করা প্রযুক্তিগতভাবে সম্ভব করে তোলে—আমরা দৃঢ়ভাবে এই পদ্ধতির বিরুদ্ধে পরামর্শ দিই যদি না একেবারেই প্রয়োজন হয় (উদাহরণস্বরূপ, যদি আপনার অ্যাপে প্রচুর সংখ্যক টাইল থাকে যা একবারে করা যাবে না)। - টাইলস UX নির্দেশিকা গ্রহণ করুন। টাইলগুলির উচ্চ কাঠামোগত এবং টেমপ্লেট করা প্রকৃতির প্রেক্ষিতে, বিদ্যমান নমুনার নকশাগুলিকে আপনার নিজের ডিজাইনের জন্য শুরুর পয়েন্ট হিসাবে ব্যবহার করুন।
- বিভিন্ন স্ক্রীন এবং ফন্ট মাপ জুড়ে পরীক্ষা করুন। টাইলগুলি প্রায়শই তথ্য-ঘন হয়, যা পাঠ্যকে (বিশেষত যখন বোতামগুলিতে রাখা হয়) ওভারফ্লো এবং ক্লিপিংয়ের জন্য সংবেদনশীল করে তোলে। এটি কমাতে, পূর্ব-নির্মিত উপাদানগুলি ব্যবহার করুন এবং ব্যাপক কাস্টমাইজেশন এড়ান। অ্যান্ড্রয়েড স্টুডিওর টাইল প্রিভিউ বৈশিষ্ট্যের পাশাপাশি একাধিক বাস্তব ডিভাইসে পরীক্ষা করুন।
মাইগ্রেশন প্রক্রিয়া
নির্ভরতা আপডেট করুন
প্রথমে, আপনার build.gradle.kts
ফাইল আপডেট করুন। সংস্করণগুলি আপডেট করুন এবং protolayout-material
নির্ভরতাকে protolayout-material3
এ পরিবর্তন করুন, যেমন দেখানো হয়েছে:
// In build.gradle.kts
//val tilesVersion = "1.4.1"
//val protoLayoutVersion = "1.2.1"
// Use these versions for M3.
val tilesVersion = "1.5.0-rc01"
val protoLayoutVersion = "1.3.0-rc01"
dependencies {
// Use to implement support for wear tiles
implementation("androidx.wear.tiles:tiles:$tilesVersion")
// Use to utilize standard components and layouts in your tiles
implementation("androidx.wear.protolayout:protolayout:$protoLayoutVersion")
// Use to utilize components and layouts with Material Design in your tiles
// implementation("androidx.wear.protolayout:protolayout-material:$protoLayoutVersion")
implementation("androidx.wear.protolayout:protolayout-material3:$protoLayoutVersion")
// Use to include dynamic expressions in your tiles
implementation("androidx.wear.protolayout:protolayout-expression:$protoLayoutVersion")
// Use to preview wear tiles in your own app
debugImplementation("androidx.wear.tiles:tiles-renderer:$tilesVersion")
// Use to fetch tiles from a tile provider in your tests
testImplementation("androidx.wear.tiles:tiles-testing:$tilesVersion")
}
টাইলসার্ভিস মূলত অপরিবর্তিত রয়েছে
এই মাইগ্রেশনের প্রাথমিক পরিবর্তনগুলি UI উপাদানগুলিকে প্রভাবিত করে৷ ফলস্বরূপ, যেকোনও রিসোর্স-লোডিং মেকানিজম সহ আপনার TileService
বাস্তবায়নের জন্য ন্যূনতম থেকে কোনও পরিবর্তনের প্রয়োজন হবে না।
প্রধান ব্যতিক্রম টাইল কার্যকলাপ ট্র্যাকিং জড়িত: যদি আপনার অ্যাপ onTileEnterEvent()
বা onTileLeaveEvent()
ব্যবহার করে, তাহলে আপনাকে onRecentInteractionEventsAsync()
এ মাইগ্রেট করা উচিত। API 36 দিয়ে শুরু করে, এই ইভেন্টগুলি ব্যাচ করা হবে।
আপনার লেআউট-জেনারেশন কোড মানিয়ে নিন
ProtoLayout 1.2 (M2.5) এ, onTileRequest()
পদ্ধতিটি একটি TileBuilders.Tile
প্রদান করে। এই বস্তুটিতে একটি TimelineBuilders.Timeline
সহ বিভিন্ন উপাদান রয়েছে, যা টাইলের UI বর্ণনাকারী LayoutElement
ধারণ করে।
ProtoLayout 1.3 (M3) এর সাথে, যদিও সামগ্রিক ডেটা স্ট্রাকচার এবং ফ্লো পরিবর্তিত হয়নি, LayoutElement
এখন সংজ্ঞায়িত স্লটগুলির উপর ভিত্তি করে একটি লেআউট সহ একটি রচনা-অনুপ্রাণিত পদ্ধতি ব্যবহার করে তৈরি করা হয়েছে যা (উপর থেকে নীচে) titleSlot
(সাধারণত একটি প্রাথমিক শিরোনাম বা শিরোনামের জন্য), mainSlot
bottomSlot
(কোর বোতাম বা কোর বাটনের জন্য) পরিপূরক তথ্য যেমন সংক্ষিপ্ত পাঠ)। এই লেআউটটি primaryLayout()
ফাংশন দ্বারা নির্মিত।

লেআউট M2.5 এবং M3 লেআউট ফাংশন তুলনা
M2.5
fun myLayout(
context: Context,
deviceConfiguration: DeviceParametersBuilders.DeviceParameters
) =
PrimaryLayout.Builder(deviceConfiguration)
.setResponsiveContentInsetEnabled(true)
.setContent(
Text.Builder(context, "Hello World!")
.setTypography(Typography.TYPOGRAPHY_BODY1)
.setColor(argb(0xFFFFFFFF.toInt()))
.build()
)
.build()
M3
fun myLayout(
context: Context,
deviceConfiguration: DeviceParametersBuilders.DeviceParameters,
) =
materialScope(context, deviceConfiguration) {
primaryLayout(mainSlot = { text("Hello, World!".layoutString) })
}
মূল পার্থক্য হাইলাইট করতে:
- বিল্ডারদের নির্মূল . Material3 UI উপাদানগুলির জন্য ঐতিহ্যগত বিল্ডার প্যাটার্নটি আরও ঘোষণামূলক, রচনা-অনুপ্রাণিত বাক্য গঠন দ্বারা প্রতিস্থাপিত হয়েছে। (নন-ইউআই উপাদান যেমন স্ট্রিং/কালার/মোডিফায়ারও নতুন কোটলিন র্যাপার পায়।)
- স্ট্যান্ডার্ডাইজড ইনিশিয়ালাইজেশন এবং লেআউট ফাংশন । M3 লেআউটগুলি প্রমিত প্রারম্ভিকতা এবং গঠন ফাংশনের উপর নির্ভর করে:
materialScope()
এবংprimaryLayout()
। এই বাধ্যতামূলক ফাংশনগুলি M3 পরিবেশ শুরু করে (থিমিং, উপাদান স্কোপ এর মাধ্যমেmaterialScope
স্কোপ) এবং প্রাথমিক স্লট-ভিত্তিক বিন্যাস (primaryLayout
মাধ্যমে) সংজ্ঞায়িত করে। উভয় লেআউট প্রতি ঠিক একবার কল করা আবশ্যক.
থিমিং
রঙ
ম্যাটেরিয়াল 3 এক্সপ্রেসিভ-এর একটি স্ট্যান্ডআউট বৈশিষ্ট্য হল "ডাইনামিক থিমিং:" টাইলস যা এই বৈশিষ্ট্যটি সক্ষম করে (ডিফল্টরূপে চালু) সিস্টেম-প্রদত্ত থিমে প্রদর্শিত হবে (ব্যবহারকারীর ডিভাইস এবং কনফিগারেশনের উপর নির্ভরশীলতা)।
M3-তে আরেকটি পরিবর্তন হল কালার টোকেনের সংখ্যার একটি সম্প্রসারণ, যা 4 থেকে 29 পর্যন্ত বৃদ্ধি পেয়েছে। নতুন রঙের টোকেনগুলি ColorScheme
ক্লাসে পাওয়া যাবে।
টাইপোগ্রাফি
M2.5 এর মতো, M3 পূর্বনির্ধারিত ফন্ট সাইজ কনস্ট্যান্টের উপর অনেক বেশি নির্ভর করে- সরাসরি ফন্টের আকার নির্দিষ্ট করা নিরুৎসাহিত করা হয়। এই ধ্রুবকগুলি Typography
ক্লাসে অবস্থিত এবং আরও অভিব্যক্তিপূর্ণ বিকল্পগুলির একটি সামান্য প্রসারিত পরিসর অফার করে।
সম্পূর্ণ বিবরণের জন্য, টাইপোগ্রাফি ডকুমেন্টেশন পড়ুন।
আকৃতি
বেশিরভাগ M3 উপাদান আকৃতির মাত্রার পাশাপাশি রঙের সাথে পরিবর্তিত হতে পারে।
একটি textButton
( mainSlot
) আকৃতি full
:

small
আকার সহ একই পাঠ্য বোতাম:

উপাদান
M3 উপাদানগুলি তাদের M2.5 অংশগুলির তুলনায় উল্লেখযোগ্যভাবে বেশি নমনীয় এবং কনফিগারযোগ্য। যেখানে M2.5-এর প্রায়শই বিভিন্ন ভিজ্যুয়াল ট্রিটমেন্টের জন্য স্বতন্ত্র উপাদানের প্রয়োজন হয়, M3 প্রায়শই ভাল ডিফল্ট সহ একটি সাধারণীকৃত কিন্তু অত্যন্ত কনফিগারযোগ্য "বেস" উপাদান নিয়োগ করে।
এই নীতিটি "রুট" লেআউটে প্রযোজ্য। M2.5 এ, এটি হয় একটি PrimaryLayout
বা একটি EdgeContentLayout
। M3-তে, একটি একক শীর্ষ-স্তরের MaterialScope
প্রতিষ্ঠিত হওয়ার পরে, primaryLayout()
ফাংশন বলা হয়। এটি সরাসরি রুট লেআউট ফেরত দেয় (কোন নির্মাতার প্রয়োজন নেই) এবং এটি titleSlot
, mainSlot
এবং bottomSlot
মতো বেশ কয়েকটি "স্লট" এর জন্য LayoutElements
গ্রহণ করে। এই স্লটগুলিকে কংক্রিট UI উপাদান দিয়ে তৈরি করা যেতে পারে—যেমন টেক্সট() , বাটন() , বা কার্ড() —অথবা লেআউট স্ট্রাকচার, যেমন LayoutElementBuilders
থেকে Row
বা Column
।
থিমগুলি আরেকটি মূল M3 বর্ধনের প্রতিনিধিত্ব করে। ডিফল্টরূপে, UI উপাদানগুলি স্বয়ংক্রিয়ভাবে M3 স্টাইলিং স্পেসিফিকেশন মেনে চলে এবং গতিশীল থিমিং সমর্থন করে।
M2.5 | M3 |
---|---|
ইন্টারেক্টিভ উপাদান | |
Button বা Chip |
|
পাঠ্য | |
Text | text() |
অগ্রগতি সূচক | |
CircularProgressIndicator | circularProgressIndicator() অথবা segmentedCircularProgressIndicator() |
লেআউট | |
PrimaryLayout বা EdgeContentLayout | primaryLayout() |
- | buttonGroup() |
ছবি | |
- | icon() , avatarImage() বা backgroundImage() |
সংশোধক
M3-এ, Modifiers
, যা আপনি একটি উপাদানকে সাজাতে বা বৃদ্ধি করতে ব্যবহার করেন, এটি আরও রচনার মতো। এই পরিবর্তনটি স্বয়ংক্রিয়ভাবে উপযুক্ত অভ্যন্তরীণ প্রকার তৈরি করে বয়লারপ্লেট কমাতে পারে। (এই পরিবর্তনটি M3 UI উপাদানগুলির ব্যবহারের জন্য অর্থোগোনাল; প্রয়োজনে, আপনি M3 UI উপাদানগুলির সাথে ProtoLayout 1.2 থেকে নির্মাতা-শৈলী সংশোধক ব্যবহার করতে পারেন এবং অন্য উপায়ে।)
M2.5
// A Builder-style modifier to set the opacity of an element to 0.5
fun myModifier(): ModifiersBuilders.Modifiers =
ModifiersBuilders.Modifiers.Builder()
.setOpacity(TypeBuilders.FloatProp.Builder(0.5F).build())
.build()
M3
// The equivalent Compose-like modifier is much simpler
fun myModifier(): LayoutModifier = LayoutModifier.opacity(0.5F)
আপনি API স্টাইল ব্যবহার করে মডিফায়ার তৈরি করতে পারেন, এবং আপনি একটি LayoutModifier
ModifiersBuilders.Modifier
এ রূপান্তর করতে toProtoLayoutModifiers()
এক্সটেনশন ফাংশন ব্যবহার করতে পারেন।
হেল্পার ফাংশন
যদিও ProtoLayout 1.3 অনেক UI উপাদানকে একটি রচনা-অনুপ্রাণিত API ব্যবহার করে প্রকাশ করার অনুমতি দেয়, LayoutElementBuilders
থেকে সারি এবং কলামের মতো মৌলিক লেআউট উপাদানগুলি বিল্ডার প্যাটার্ন ব্যবহার করে চলেছে। এই শৈলীগত ব্যবধান পূরণ করতে এবং নতুন M3 কম্পোনেন্ট API-এর সাথে সামঞ্জস্যের প্রচার করতে, সহায়ক ফাংশন ব্যবহার করার কথা বিবেচনা করুন।
সাহায্যকারী ছাড়া
primaryLayout(
mainSlot = {
LayoutElementBuilders.Column.Builder()
.setWidth(expand())
.setHeight(expand())
.addContent(text("A".layoutString))
.addContent(text("B".layoutString))
.addContent(text("C".layoutString))
.build()
}
)
সাহায্যকারীদের সাথে
// Function literal with receiver helper function
fun column(builder: Column.Builder.() -> Unit) =
Column.Builder().apply(builder).build()
primaryLayout(
mainSlot = {
column {
setWidth(expand())
setHeight(expand())
addContent(text("A".layoutString))
addContent(text("B".layoutString))
addContent(text("C".layoutString))
}
}
)
টাইলস 1.2 / ProtoLayout 1.0 এ স্থানান্তর করুন
সংস্করণ 1.2 অনুযায়ী, বেশিরভাগ টাইলস লেআউট API গুলি androidx.wear.protolayout
নামস্থানে রয়েছে। সর্বশেষ API ব্যবহার করতে, আপনার কোডে নিম্নলিখিত মাইগ্রেশন পদক্ষেপগুলি সম্পূর্ণ করুন৷
নির্ভরতা আপডেট করুন
আপনার অ্যাপ মডিউলের বিল্ড ফাইলে, নিম্নলিখিত পরিবর্তনগুলি করুন:
গ্রোভি
// Removeimplementation 'androidx.wear.tiles:tiles-material:version'// Include additional dependencies implementation "androidx.wear.protolayout:protolayout:1.2.1" implementation "androidx.wear.protolayout:protolayout-material:1.2.1" implementation "androidx.wear.protolayout:protolayout-expression:1.2.1" // Update implementation "androidx.wear.tiles:tiles:1.4.1"
কোটলিন
// Removeimplementation("androidx.wear.tiles:tiles-material:version")// Include additional dependencies implementation("androidx.wear.protolayout:protolayout:1.2.1") implementation("androidx.wear.protolayout:protolayout-material:1.2.1") implementation("androidx.wear.protolayout:protolayout-expression:1.2.1") // Update implementation("androidx.wear.tiles:tiles:1.4.1")
নামস্থান আপডেট করুন
আপনার অ্যাপের Kotlin- এবং Java-ভিত্তিক কোড ফাইলগুলিতে, নিম্নলিখিত আপডেটগুলি করুন৷ বিকল্পভাবে, আপনি এই নেমস্পেস রিনেমিং স্ক্রিপ্ট চালাতে পারেন।
- সমস্ত
androidx.wear.tiles.material.*
আমদানিandroidx.wear.protolayout.material.*
দিয়ে প্রতিস্থাপন করুন।androidx.wear.tiles.material.layouts
লাইব্রেরির জন্যও এই ধাপটি সম্পূর্ণ করুন। অন্যান্য বেশিরভাগ
androidx.wear.tiles.*
androidx.wear.protolayout.*
।androidx.wear.tiles.EventBuilders
,androidx.wear.tiles.RequestBuilders
,androidx.wear.tiles.TileBuilders
, এবংandroidx.wear.tiles.TileService
জন্য আমদানি একই থাকতে হবে।TileService এবং TileBuilder ক্লাস থেকে কিছু অবনমিত পদ্ধতির নাম পরিবর্তন করুন:
-
TileBuilders
:getTimeline()
togetTileTimeline()
, এবংsetTimeline()
tosetTileTimeline()
-
TileService
:onResourcesRequest()
থেকেonTileResourcesRequest()
-
RequestBuilders.TileRequest
:getDeviceParameters()
togetDeviceConfiguration()
,setDeviceParameters()
tosetDeviceConfiguration()
,getState()
togetCurrentState()
, এবংsetState()
tosetCurrentState()
-