توجه : این صفحه یک مرحله از فرآیند مدیریت دستی پیکربندی صفحه ساعت شما را نشان میدهد. اگر میخواهید صفحه ساعت خود را با استفاده از ابزار سبک WYSIWYG (آنچه میبینید همان چیزی است که دریافت میکنید) طراحی کنید، ابتدا راهنماهای Watch Face Studio را بررسی کنید.
این راهنما شامل مراحلی در مورد ابزارهایی است که برای پیکربندی یک صفحه ساعت با استفاده از قالب صفحه ساعت نیاز دارید، چند پیشنهاد در مورد ساختار پروژه و یک راهنمای گام به گام برای استفاده از ابزارها برای ایجاد آن ساختار.
شروع کار با اندروید استودیو
سادهترین راه برای شروع توسعه دستی واچ فیسها، استفاده از اندروید استودیو است. پشتیبانی از واچ فیس در کانال Canary موجود است.
- روی فایل > پروژه جدید کلیک کنید
- در قسمت Wear OS ، گزینه Basic watch face را انتخاب کنید.
این ساختار لازم برای یک صفحه ساعت کاملاً کاربردی را ایجاد میکند.
ساختار پروژه
وقتی یک واچ فیس سفارشی ایجاد میکنید که از قالب واچ فیس استفاده میکند، بسته برنامه اندروید که شامل فایل واچ فیس سفارشی است باید کاملاً جدا از بسته برنامه اندروید باشد که شامل منطق برنامه Wear OS شما است. برخی از فروشگاههای برنامه، از جمله گوگل پلی، از آپلود یک بسته برنامه اندروید که شامل منطق Wear OS و یک واچ فیس سفارشی است، جلوگیری میکنند.
نسخه قالب واچ فیس را اعلام کنید
در فایل مانیفست برنامه جدید خود ( AndroidManifest.xml )، ویژگی برنامه را که نشان دهنده استفاده شما از قالب Watch Face است، بررسی کنید.
برخی از ویژگیهای قالب ساعت مچی فقط در نسخههای بعدی موجود هستند. این ویژگی را روی کمترین مقداری که از ویژگیهای مورد نیاز شما پشتیبانی میکند، تنظیم کنید تا سازگاری دستگاه به حداکثر برسد و همچنین minSdkVersion را نیز مطابق با آن تنظیم کنید. درباره نحوه پیکربندی نسخههای برنامه خود بیشتر بدانید.
<manifest ...>
<!--
Use SDK version 33 to support Watch Face Format (WFF) version 1 and
higher, SDK version 34 to support WFF version 2 and higher, and so on.
-->
<uses-sdk
android:minSdkVersion="34"
android:targetSdkVersion="34" />
<!--
WFF is a resource-only format, so the hasCode attribute should be set to
false to reflect this.
-->
<application
android:label="@string/watch_face_name"
android:hasCode="false"
...>
<meta-data android:name="com.google.android.wearable.standalone"
android:value="true" />
<property
android:name="com.google.wear.watchface.format.version"
android:value="2" />
</application>
</manifest>
اعلام فرادادههای صفحه ساعت
در دایرکتوری res/xml resources برنامه شما، فایلی به نام watch_face_info.xml وجود دارد. این جایی است که شما متادیتای صفحه ساعت خود را تعریف میکنید:
<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>
<Preview value="@drawable/watch_face_preview" />
<Category value="CATEGORY_EMPTY" />
<AvailableInRetail value="true" />
<MultipleInstancesAllowed value="true" />
<Editable value="true" />
</WatchFaceInfo>
فیلدهای موجود در این فایل جزئیات زیر را نشان میدهند:
-
Preview - به فایل ترسیمی که حاوی تصویر پیشنمایش صفحه ساعت است، اشاره دارد.
-
Category دسته بندی صفحه ساعت را تعریف میکند. باید یک رشته یا ارجاعی به یک رشته باشد، مانند
@string/ref_name. هر سازنده دستگاه میتواند مجموعه دسته بندیهای صفحه ساعت خود را تعریف کند.مقدار پیشفرض:
empty_category_meta، که این واچ فیس را به همراه سایر واچ فیسهای «خالی از دستهبندی» در پایین نمای انتخاب واچ فیس گروهبندی میکند.-
AvailableInRetail اینکه آیا صفحه ساعت در حالت نمایشی خردهفروشی دستگاه موجود است یا خیر. باید یک مقدار بولی باشد یا ارجاعی به یک مقدار بولی مانند
@bool/watch_face_available_in_retailباشد.مقدار پیشفرض:
false-
MultipleInstancesAllowed اینکه آیا صفحه ساعت میتواند چندین مورد دلخواه داشته باشد یا خیر. باید یک مقدار بولی باشد، یا ارجاعی به یک مقدار بولی مانند
@bool/watch_face_multiple_instances_allowed.مقدار پیشفرض:
false-
Editable اینکه آیا صفحه ساعت قابل ویرایش است یا خیر، به این معنی است که صفحه ساعت دارای تنظیمات یا حداقل یک ویژگی غیر ثابت است. این گزینه برای نمایش یا پنهان کردن دکمه ویرایش برای صفحه ساعت در لیست علاقهمندیها استفاده میشود.
مقدار پیشفرض: نادرست
نام صفحه ساعت را اعلام کنید
در فایل مانیفست برنامه خود ( AndroidManifest.xml )، ویژگی android:label روی نام صفحه ساعت خود تنظیم کنید:
<application android:label="@string/watch_face_name" >
جزئیات صفحه ساعت را اعلام کنید
ساختار یک سند واچ فیس پایه WFF به شرح زیر است:
<WatchFace width="450" height="450">
<Scene>
<!-- Content to be rendered -->
</Scene>
</WatchFace>
قالب اندروید استودیو یک سند پایه در res/raw/watchface.xml ارائه میدهد. برای پشتیبانی از شکلها و اندازههای مختلف صفحه نمایش، پشتیبانی از چندین شکل و اندازه را اعلام کنید .
عنصر ریشه همیشه WatchFace است. height و width میزان فضای مختصات مورد استفاده در صفحه ساعت شما را تعریف میکنند و صفحه ساعت متناسب با دستگاهی که روی آن استفاده میشود، مقیاسبندی میشود. height و width پیکسلهای واقعی را نشان نمیدهند.
قالب صفحه ساعت، جزئیات مختلفی را در مورد صفحه ساعت شما سازماندهی میکند:
- فراداده ، مانند زمان و تعداد گامهایی که در تصویر پیشنمایش صفحه ساعت شما نشان داده میشود.
- تنظیمات کاربر ، مانند تمهای رنگی مختلف برای صفحه ساعت، عناصر قابل تغییر توسط کاربر و امکان انتخاب از بین چندین عنصر. نسخه ۲ قالب صفحه ساعت، طعمها را معرفی میکند که میتوانند در پیکربندی کاربر ظاهر شوند. هر طعم، یک پیکربندی از پیش تعیینشده کاربر را مشخص میکند و نوع و سبک عناصری را که با زمان در صفحه ساعت شما ظاهر میشوند، مشخص میکند. این تنظیمات از پیش تعیینشده، ایجاد گروههایی از عناصر را که از نظر بصری خوشایند هستند، برای شما آسانتر میکند. در برنامه همراه Wear OS، کاربران طعمهای مختلف صفحه ساعت شما را در امتداد یک ردیف قابل پیمایش مشاهده میکنند.
- صحنهای که شامل عناصر بصری یک صفحه ساعت است. عناصری که به انتهای صحنه نزدیکتر هستند، روی سایر عناصر ظاهر میشوند، بنابراین ترتیب معمول به شرح زیر است:
- عقربهها برای ساعت آنالوگ یا متن برای ساعت دیجیتال
- عوارضی که اطلاعات اضافی مانند روز هفته یا تعداد گامهای کاربر را نشان میدهند
- سایر گرافیکهایی که جذابیت بصری یا تزئیناتی برای صفحه ساعت ایجاد میکنند، مانند تصویر یک اردوگاه
- گروههایی از عناصر، که به شما امکان میدهند چندین عنصر را همزمان تغییر دهید. میتوانید انواع مختلفی از این گروهها را در یک صحنه ایجاد کنید، که به شما امکان میدهد هنگام ورود سیستم به حالت صرفهجویی در مصرف برق، محتوا را به صورت انتخابی پنهان یا تغییر دهید.
ویژگیها به شدت تایپ میشوند و دستورالعملهایی در مورد فراوانی و مقادیر معتبر دارند تا از اکثر منابع خطا هنگام ایجاد صفحه ساعت جلوگیری شود.
اعلام پشتیبانی از شکلهای صفحه ساعت (اختیاری)
این مرحله فقط در صورتی ضروری است که بخواهید از رفتارهای مختلف برای اندازههای مختلف صفحه ساعت پشتیبانی کنید. اگر از اینکه صفحه ساعت شما با اندازه ساعت هماهنگ شود، راضی هستید، میتوانید از این مرحله صرف نظر کنید.
در دایرکتوری منابع res/xml برنامه خود، مجموعه شکلهای صفحه ساعت را که پشتیبانی میکنید در watch_face_shapes.xml تعریف کنید:
<WatchFaces>
<WatchFace shape="CIRCLE" width="300" height="300"
file="@raw/watchface"/>
<WatchFace shape="CIRCLE" width="450" height="450"
file="@raw/watchface_large_circle"/>
<WatchFaces>
سپس، ظاهر و رفتار صفحه ساعت خود را برای هر شکل صفحه ساعت تعریف کنید. اگر فایل شکلها را تعریف نکردهاید، فقط به یک فایل، watchface.xml ، نیاز دارید.
با استفاده از مثال این بخش، فایلهای خام XML به صورت زیر خواهند بود:
-
res/raw/watchface.xml -
res/raw/watchface_large_circle.xml
شناسایی ناشر صفحه ساعت (اختیاری)
در صورت تمایل، در فایل مانیفست برنامه خود، یک رشته دلخواه تعریف کنید که بتوانید از آن برای شناسایی ناشر صفحه ساعت یا نام و نسخه ابزاری که استفاده میکنید، استفاده کنید:
<application ...>
...
<property
android:name="com.google.wear.watchface.format.publisher"
android:value="<var>{toolName}-{toolVersion}</var>" />
</application>
صحت و عملکرد صفحه ساعت خود را بررسی کنید
در طول توسعه و قبل از آپلود در گوگل پلی، با استفاده از اعتبارسنجی قالب ساعت داخلی در اندروید استودیو، بررسی کنید که صفحه ساعت شما عاری از خطاهای نحوی باشد. این قابلیت به طور خودکار خطاهای موجود در کد شما را برجسته میکند و از نسخه برنامه آگاه است.
همچنین باید با اجرای ابزار بررسی میزان مصرف حافظه ، بررسی کنید که آیا واچ فیس شما با الزامات استفاده از حافظه مطابقت دارد یا خیر.
- درباره بهینهسازی استفاده از حافظه و بررسی میزان استفاده از حافظه برای آمادهسازی جهت انتشار، بیشتر بیاموزید.
- درباره استفاده از اعتبارسنج XML به عنوان بخشی از چرخه توسعه خود بیشتر بیاموزید.
بستهی اپلیکیشن واچ فیس خود را بسازید
سادهترین راه برای ساخت و پیادهسازی واچ فیس از طریق اندروید استودیو است که پشتیبانی داخلی برای پیکربندی اجرای واچ فیس دارد. پس از کلیک روی دکمهی اجرا ، اندروید استودیو واچ فیس را روی دستگاه یا شبیهساز پیادهسازی کرده و آن را به عنوان واچ فیس فعال تنظیم میکند.
نمونه واچ فیسها
نمونههای بیشتری از پروژههای قالب واچ فیس در گیتهاب موجود است.
{% کلمه به کلمه %}برای شما توصیه میشود
- توجه: متن لینک زمانی نمایش داده میشود که جاوا اسکریپت غیرفعال باشد.
- AAPT2
- اصول اولیه Jetpack Compose
- شروع کار با CameraX