Wear OS 6 میانای برنامهسازی کاربردی جدیدی به نام «ارسال صفحه ساعت» معرفی میکند که فرصتهایی برای موارد استفاده پیشرفتهتر در انتشار صفحه ساعت ایجاد میکند.
شناسایی زمان استفاده از «ارسال صفحه ساعت»
«ارسال صفحه ساعت» یک API در Wear OS است که به توسعهدهنده امکان میدهد صفحه ساعت را مستقیماً اضافه، بهروزرسانی، یا حذف کند. برای توسعه صفحه ساعت استاندارد لازم نیست.
صفحههای ساعتی که با «انتقال صفحه ساعت» استفاده میشوند باید بااستفاده از «قالب صفحه ساعت» نوشته شوند. این میتواند شامل صفحههای ساعتی باشد که بااستفاده از «طراح صفحه ساعت»، «استودیو صفحه ساعت»، یا هر ابزار دیگری که صفحههای ساعت بااستفاده از «قالب صفحه ساعت» تولید میکند طراحی شدهاند.
اگرچه Watch Face Push API میتواند بهطور بالقوه به روشهای مختلفی استفاده شود، جدول زیر شما را در موارد استفاده اصلی راهنمایی میکند:
| مورد استفاده | راهحل توصیهشده | پیچیدگی |
|---|---|---|
| میخواهم صفحههای ساعت تکی بسازم و آنها را منتشر کنم. | از «قالب صفحه ساعت» بهطور مستقیم یا ازطریق ابزاری مثل «طراح صفحه ساعت» یا «استودیو صفحه ساعت» استفاده کنید و آنها را در Google Play منتشر کنید. | کم |
| میخواهم برنامه تلفنی بسازم که به کاربران امکان دهد صفحههای ساعت را از مجموعهای گلچینشده انتخاب کنند یا صفحههای ساعت را طراحی و سفارشیسازی کنند تا مستقیماً روی ساعت Wear OS نصب شود. | بااستفاده از Watch Face Push API در ساعت، برنامهای برای ساعت و تلفن ایجاد کنید. | حداکثر |
هدف
مورد استفاده متعارف برای «میانای برنامهسازی کاربردی انتقال صفحه ساعت» ایجاد برنامه بازار است. از این برنامه، کاربران میتوانند صفحههای ساعت را از مجموعه گلچینشده در تلفنشان انتخاب کنند و مستقیماً نصب این صفحههای ساعت را در ساعت متصلشان کنترل کنند.
ملاحظات
برای جزئیات ساختن صفحههای ساعت، به راهنماییهای قالب صفحه ساعت مراجعه کنید: صفحههای ساعتی که بااستفاده از «ارسال صفحه ساعت» پیادهسازی میشوند، صفحههای ساعت معمولی با قالب صفحه ساعت هستند.
هنگام ساختن صفحه ساعت، ملاحظات زیر را درنظر داشته باشید.
نام بستهها
صفحههای ساعتی که بااستفاده از Watch Face Push نصب میشوند باید از قرارداد زیر پیروی کنند:
<app name>.watchfacepush.<watchface name>
… که در آن <app name> نام بسته برنامهای است که Watch Face
Push API را فراخوانی میکند.
برای مثال، برای برنامهای با نام بسته com.example.mymarketplace، نام بستههای صفحه ساعت زیر معتبر است:
com.example.mymarketplace.watchfacepush.watchface1com.example.mymarketplace.watchfacepush.watchface2com.example.mymarketplace.watchfacepush.another_watchface
میانای برنامهسازی کاربردی از صفحههای ساعتی که با این قرارداد مطابقت ندارند پشتیبانی نمیکند.
محتویات بسته
سیستم محتوای APK را بهشدت اجرا میکند. ازنظر فنی امکانپذیر است که «فایلهای APK قالب صفحه ساعت» تولید کنید که حاوی فایلهای فراداده بیضرر و دیگر آرتیفکتها باشد. این فایلها ممکن است برای Google Play قابلقبول باشند اما از اعتبارسنجی «فشار صفحه ساعت» (در زیر ببینید) عبور نمیکنند.
هر فایل APK صفحه ساعت باید فقط شامل فایلها/مسیرهای زیر باشد:
/AndroidManifest.xml/resources.arsc/res/**/META-INF/**
علاوهبراین، فایل AndroidManifest.xml باید فقط حاوی برچسبهای زیر باشد:
<manifest><uses-feature><uses-sdk><application><property><meta-data>
درنهایت، بسته باید minSdk حداقل 33 را مشخص کند، و برچسب
<application> باید مشخصه android:hasCode="false" را مشخص کند.
اعتبارسنجی
برخلاف صفحههای ساعت معمولی که ازطریق Google Play توزیع میشوند، برنامه «بازار» مسئول درستیسنجی این است که هر صفحه ساعت «ارسال صفحه ساعت» بهخوبی شکل گرفته باشد و عملکرد خوبی داشته باشد.
«ارسال صفحه ساعت» از بررسیهای اعتبارسنجی زیر برای تأیید کیفیت هر صفحه ساعت استفاده میکند:
- همه صفحههای ساعتی که ازطریق Watch Face Push API نصب یا بهروزرسانی میشوند باید از ابزار اعتبارسنجی Watch Face Push عبور کنند.
- فقط از ابزار رسمی درستیسنجی برای تولید کدهای درستیسنجی برای استفاده با «میانای برنامهسازی کاربردی» استفاده کنید.
- هنگام اجرای اعتبارسنجی، ابزار اعتبارسنجی باید بهروز باشد.
نیازی نیست APK را که تغییر نکرده است دوباره اعتبارسنجی کنید. رمزها منقضی نمیشوند، حتی زمانی که نسخه ابزار اعتبارسنجی استفادهشده منسوخ شود.
درعینحال، توصیه میکنیم که هرچند وقت یکبار اعتبارسنجی را دوباره اجرا کنید، زیرا اعتبارسنج بهصورت دورهای بهروز میشود.
اجرای اعتبارسنج
اعتبارسنج در سه شکل دردسترس است:
- ابزار CLI
- کتابخانهای برای استفاده با JVM
- کتابخانهای برای استفاده در Android
استفاده از اعتبارسنج خط فرمان
- اعتبارسنج را از مخزن Maven Google دریافت کنید.
ابزار را بهصورت زیر اجرا کنید:
java -jar validator-push-cli-1.0.0-alpha10.jar \ --apk_path=<your watch face>.apk \ --package_name=<your marketplace package name>درصورت موفقیتآمیز بودن، برونداد شامل کد اعتبارسنجی میشود که باید هنگام افزودن یا بهروزرسانی صفحه ساعت، آن را به «میانای برنامهسازی کاربردی ارسال صفحه ساعت» ارائه دهید.
اگر خطایی رخ دهد، برونداد شامل جزئیاتی درباره اینکه کدام بررسی خاص ناموفق بوده است میشود.
استفاده از اعتبارسنج کتابخانه
مخزنهای Google و Jitpack را اضافه کنید. برای استفاده از کتابخانه اعتبارسنجی، هر دو مورد لازم است.
repositories { ... google() maven { url = uri("https://jitpack.io") content { includeGroup("com.github.xgouchet") } } }وابستگی اعتبارسنج را در پروژه خود بگنجانید:
// For use on JVM implementation("com.google.android.wearable.watchface.validator:validator-push:1.0.0-alpha10") // For use on Android implementation("com.google.android.wearable.watchface.validator:validator-push-android:1.0.0-alpha10")اجرای اعتبارسنج:
val validator = DwfValidatorFactory.create() val result = validator.validate(watchFaceFile, appPackageName) if (result.failures().isEmpty()) { val token = result.validationToken() println("Validation token: $token") // Validation success - continue with the token // ... } else { // There were failures, handle them accordingly - validation has failed. result.failures().forEach { failure -> println("FAILURE: ${failure.name()}: ${failure.failureMessage()}") // ... } }
برای نمونهای از استفاده از این کتابخانه، نمونه GitHub را ببینید. همچنین کتابخانه کیت همگردان دارایی قابلحمل (Pack) را ببینید که برای ساختن فایلهای APK در دستگاه، برای استفاده با اعتبارسنج مبتنی بر Android مفید است.
اندازه APK
برای بهحداقل رساندن اندازه APK، بهویژه درخصوص صفحههای ساعت «ارسال صفحه ساعت» دقت کنید: احتمالاً فایل APK صفحه ساعت از برنامه تلفن به برنامه ساعت ازطریق بلوتوث منتقل میشود که میتواند کند باشد.
انتقال یک APK بیشازحد بزرگ ممکن است زمان قابلتوجهی طول بکشد که هم تجربه کاربری ضعیفی است و هم باتری را خالی میکند.
- از کتابخانههای مناسب مثل
pngquantبرای حفظ حداقل اندازه فایل تصویر- استفاده کنید
- این مورد را در فرایند ساخت مجموعه صفحه ساعت بگنجانید
- بررسی کنید ابعاد تصویر برای مقیاسی که در آن استفاده میکنید مناسب باشد.
- تصاویر را بهطور مناسب برش دهید تا هرگونه پسزمینه اطراف را بردارید.
- کاهش اندازه فایلهای قلم
- برای مثال، اگر از قلم خاصی فقط برای نمایش زمان استفاده میکنید، در
قالب
HH:MM، میتوانید از ابزاری مثلpyftsubsetاستفاده کنید تا فایل قلم را محدود کنید و فقط نویسههای لازم را در آن داشته باشید. این کار میتواند اندازه فایل قلم و APK حاصل را بهطور چشمگیری کاهش دهد. برای موارد دیگر، این پست وبلاگ را برای جزئیات مربوط به بهحداقل رساندن اندازه فایل قلم ببینید.
- برای مثال، اگر از قلم خاصی فقط برای نمایش زمان استفاده میکنید، در
قالب
برای پیشنهادهای بیشتر درباره حداقل نگه داشتن اندازه APK، به راهنمایی بهینهسازی استفاده از حافظه مراجعه کنید.
امضا کردن APK
مانند APK معمولی، باید همه صفحههای ساعتتان را امضا کنید. کلید متفاوتی از کلیدی که با برنامه اصلیتان استفاده میکنید ایجاد کنید و از این کلید متفاوت برای همه صفحه ساعتهایتان استفاده کنید.
معماری
چهار عنصر اصلی سیستم را درنظر بگیرید:
- فضای ذخیرهسازی ابری: در برنامه Marketplace کانونی، صفحههای ساعت را در «ابر» میسازید و ذخیره میکنید تا کاربران بتوانند از آنها استفاده کنند. صفحههای ساعت
دارای ویژگیهای زیر است:
- اینها بهعنوان فایلهای APK «قالب صفحه ساعت» معمولی ازپیش ساخته شدهاند.
- هر APK فقط حاوی یک صفحه ساعت مبتنی بر «قالب صفحه ساعت» است.
- این موارد با فرایند اعتبارسنجی «ارسال صفحه ساعت» اعتبارسنجی میشوند و با نشانه اعتبارسنجی منسوب ذخیره میشوند.
- برنامه تلفن شما میتواند درصورت نیاز آنها را بازیابی کند.
- برنامه تلفن: برنامه تلفن روش اصلی تعامل کاربران با سیستم شما است. این کار به آنها اجازه میدهد تا:
- مرور و جستجوی کاتالوگ صفحههای ساعت
- نصب یا جایگزین کردن صفحه ساعت در ساعت
- برنامه ساعت: برنامه ساعت معمولاً رابط کاربری قابلتوجهی ندارد. این برنامه عمدتاً پلی بین برنامه تلفن و «میاناهای برنامهسازی کاربردی»
«ارسال» «صفحه ساعت» است و کارکردهای زیر را دارد:
- استفاده از Watch Face Push API برای نصب/بهروزرسانی یا جایگزینی صفحههای ساعت
- درخواست اجازههای لازم و پیامواره به کاربر
- ارائه صفحه ساعت پیشفرض
- ارائه حافظه نهان حداقلی از صفحههای ساعت
- ارتباطات تلفن-ساعت: ارتباط برنامه تلفن و ساعت برای موفقیت تجربه کلی بسیار مهم است. از «میاناهای برنامهسازی کاربردی لایه داده Wear OS» استفاده کنید که امکانات زیر را فراهم میکند:
- تشخیص نصب: بااستفاده از «قابلیتها» و
CapabilityClient، برنامه تلفن میتواند عدم وجود برنامه ساعت را تشخیص دهد و بالعکس. سپس میتوانید قصد راهاندازی «فروشگاه Play» را برای نصب ضریب شکل ازدسترفته داشته باشید. - مدیریت وضعیت: بااستفاده از
DataClientیاMessageClient، تلفن را با وضعیت ساعت همگامسازی میکنید، برای مثال، وضعیت صفحه ساعت فعال را همگامسازی میکنید. - انتقال APK: بااستفاده از
ChannelClientیاMessageClient، فایلهای APK را از تلفن به ساعت ارسال کنید - فراخوانی از دور: بااستفاده از
Messageclient، تلفن میتواند به ساعت دستور دهد که «میانای برنامهسازی کاربردی» ارسال صفحه ساعت را فراخوانی کند، برای مثال، برای نصب صفحه ساعت.
- تشخیص نصب: بااستفاده از «قابلیتها» و
برای جزئیات بیشتر، به راهنمای «میانای برنامهسازی کاربردی لایه داده» مراجعه کنید.