با خوشحالی اعلام میکنیم که Jetpack WindowManager 1.5.0 اکنون پایدار است!
این نسخه براساس پایه قوی سازگاری در WindowManager ساخته شده است و ایجاد واسطهای کاربر صیقلی و تطبیقی را که در همه اندازههای صفحهنمایش عالی بهنظر میرسند، آسانتر میکند. با ادامه رشد بومسازگان Android، کاربران بیشاز پیش با برنامهها در دستگاههای متنوعتری تعامل دارند: از تلفنها و دستگاههای تاشو گرفته تا رایانههای لوحی، نمایشگرهای متصل، Chromebook، و حتی نمایشگرهای خودرو در حالت پارکشده.
WindowManager 1.5 بر ارائه ابزارهای بهتر برای این محیط دستگاه متنوع تمرکز دارد.
تازههای WindowManager 1.5
این نسخه پایدار نقاط توقف جدیدی را برای صفحهنمایشهای بسیار بزرگ معرفی میکند، میانای برنامهسازی کاربردی جاسازی فعالیت را بهبود میبخشد، و انعطافپذیری بیشتری برای محاسبه سنجههای پنجره فراهم میکند.
کلاسهای اندازه پنجره جدید: بزرگ و خیلی بزرگ
بزرگترین بهروزرسانی در نسخه ۱.۵، اضافه شدن دو کلاس اندازه پنجره با عرض جدید است: بزرگ و خیلی بزرگ.
کلاسهای اندازه پنجره مجموعه رسمی و نظری ما از نقاط شکست نمای هدف است که به شما کمک میکند چیدمانهای تطبیقی را طراحی و توسعه دهید. با نسخه ۱.۵، این راهنمایی را برای صفحهنمایشهایی که فراتر از رایانههای لوحی معمولی هستند گسترش میدهیم.
نقاط گسست عرض جدید در زیر آمده است:
- بزرگ: برای عرضهای بین ۱۲۰۰ تا ۱۶۰۰ پیکسل مستقل از تراکم
- بسیار بزرگ: برای عرضهای ≥۱۶۰۰dp
کلاسهای مختلف اندازه پنجره براساس عرض نمایشگر.
چرا اینها مهم هستند؟
از Android 16 QPR1 Beta 2، Android از نمایشگرهای متصل پشتیبانی میکند و به کاربران امکان میدهد نمایشگر خارجی را به دستگاهشان متصل کنند و آن را به ابزاری شبیه رایانه با صفحهنمایش بزرگ تبدیل کنند.
تلفن به نمایشگر خارجی متصل است و جلسه رایانهای در نمایشگر خارجی نشان داده میشود.
با دردسترس بودن این ویژگی جدید، راهنماییهای قاطع برای گنجاندن نمایشگرهای بزرگتر بسیار مهم است.
در این سطوح بسیار بزرگ، صرفاً بزرگ کردن چیدمان «گسترده» رایانه لوحی همیشه بهترین تجربه کاربری نیست. برای مثال، یک کارخواه ایمیل ممکن است بهراحتی دو قاب (یک صندوق پستی و یک پیام) را در کلاس اندازه پنجره «گسترده» نشان دهد. اما در یک مانیتور رومیزی بسیار بزرگ، کارخواه ایمیل میتواند بهطور ظریفی سه یا حتی چهار قاب را نمایش دهد—شاید یک صندوق ورودی، یک فهرست پیام، محتوای کامل پیام، و یک پانل تقویم/تکالیف، همه بهطور همزمان.
WindowManager 1.5 با ارائه نقاط شکست رسمی برای اندازههای نمایشگر بسیار بزرگ، سیگنال واضحی به شما میدهد تا چیدمانهایی را معرفی کنید که بهطور خاص برای تجربه رایانهای پربازده و با تراکم اطلاعات بالا طراحی شدهاند.
کلاسهای اندازه پنجره را میتوان بااستفاده از computeWindowSizeClass() محاسبه کرد که یک تابع افزونه کتابخانه androidx.window.core.layout است که نوع Set<WindowSizeClass> را گسترش میدهد.
برای گنجاندن کلاسهای اندازه پنجره جدید در پروژهتان، کافی است تابع را از مجموعه WindowSizeClass.BREAKPOINTS_V2 بهجای WindowSizeClass.BREAKPOINTS_V1 فراخوانی کنید:
val currentWindowMetrics = WindowMetricsCalculator.getOrCreate() .computeCurrentWindowMetrics(LocalContext.current) val sizeClass = WindowSizeClass.BREAKPOINTS_V2 .computeWindowSizeClass(currentWindowMetrics)
سپس وقتی مطمئن شدید برنامهتان حداقل این مقدار فضا دارد، چیدمان صحیح را اعمال کنید:
if(sizeClass.isWidthAtLeastBreakpoint(
WindowSizeClass.WIDTH_DP_LARGE_LOWER_BOUND)){
...
// window is at least 1200 dp wide
}کتابخانههای تطبیقپذیر
کتابخانه تطبیقی Compose Material 3 به شما کمک میکند رابطهای کاربری تطبیقی ایجاد کنید که بهطور خودکار براساس پیکربندیهای پنجره فعلی، مانند کلاسهای اندازه پنجره یا وضعیتهای دستگاه، خود را تطبیق میدهند.
خبر خوب این است که کتابخانه ازقبل با نقاط شکست جدید بهروز شده است! از نسخه ۱.۲ (اکنون در مرحله «نامزد انتشار»)، توابع دستورالعمل داربست قاب پیشفرض از کلاسهای اندازه عرض پنجره «بزرگ» و «خیلی بزرگ» پشتیبانی میکنند.
فقط باید با اعلام اینکه میخواهید از نقاط توقف جدید استفاده کنید، در فایل ساخت Gradle خود رضایت دهید:
currentWindowAdaptiveInfo( supportLargeAndXLargeWidth = true)
بهبودهای بیشتر
- جاسازی فعالیت — ذخیره و بازیابی خودکار: WindowManager اکنون میتواند بهطور خودکار وضعیت تقسیمهای جاسازی فعالیت شما را ذخیره و بازیابی کند. این کار به حفظ چیدمان کاربر درطول بازسازی فرایند کمک میکند و منجر به تجربهای پایدارتر و منسجمتر میشود. توسعهدهندگان دیگر مجبور نیستند وضعیت را بهصورت دستی ذخیره و بازیابی کنند، بلکه میتوانند بهسادگی با تنظیم ویژگی EmbeddingConfiguration#isAutoSaveEmbeddingState، ذخیره خودکار را فعال کنند.
- WindowMetrics گسترشیافته: اکنون میتوانید WindowMetrics را از بافت Application محاسبه کنید، نه فقط از بافت Activity. این کار انعطافپذیری بیشتری برای دسترسی به اطلاعات پنجره از بخشهای مختلف برنامهتان فراهم میکند.
نحوه شروع کردن به کار
برای شروع استفاده از کلاسهای اندازه جدید «بزرگ» و «خیلی بزرگ» و دیگر ویژگیهای نسخه ۱.۵ در پروژههای Android، وابستگیهای برنامهتان را در build.gradle.kts به جدیدترین نسخه پایدار بهروز کنید:
dependencies {
implementation("androidx.window:window:1.5.0")
// or, if you're using the WindowManager testing library:
testImplementation("androidx.window:window-testing:1.5.0")
}WindowManager 1.5 گام دیگری بهجلو برای ایجاد برنامههای کاملاً تطبیقپذیر است که در سراسر ضریبهای شکل Android اجرا میشوند. برای مشاهده فهرست کامل تغییرات و رفع اشکالها، یادداشتهای انتشار رسمی را بررسی کنید.
کدنویسی خوش بگذرد!
-
اخبار محصولبا خوشحالی اعلام میکنیم که به نقطه عطف مهمی در نزدیکتر کردن رایانش همراه و رایانش رومیزی در Android رسیدهایم: پشتیبانی از نمایشگر متصل با انتشار Android 16 QPR3 به دردسترس عموم رسیده است!
Francesco Romano • زمان خواندن: ۷ دقیقه -
اخبار محصولاز غوطهوری کامل در خانه تا تجربههای اجمالی درحال حرکت، ساختن روی Android XR به شما امکان میدهد در هر لحظه در سراسر طیف برنامههای فضایی با کاربران ملاقات کنید. در «نشست توسعهدهندگان Android»، با راهاندازی XREAL AURA به نقطه عطف هیجانانگیزی رسیدیم.
Amy Zeppenfeld, Vinny DaSilva • ۳ دقیقه خواندن -
اخبار محصولدر عصر هوش مصنوعی، کاربران دیگر فقط در برنامهها ضربه نمیزنند، بلکه اهداف سطح بالا را بیان میکنند و انتظار دارند عاملهای هوش مصنوعی مانند Gemini گردشهای کاری چندمرحلهای را، گاهی در چندین برنامه در دستگاههایشان، تکمیل کنند.
Jingyu Shi • زمان خواندن: ۴ دقیقه
جدیدترین اطلاعات آماری توسعه Android را بهصورت هفتگی در صندوق ورودیتان دریافت کنید.