با اجرای برنامههای Android در دستگاههای مختلف (مانند تلفن، رایانه لوحی، دستگاه تاشو، رایانه، خودرو، و تلویزیون) و حالتهای پنجرهبندی در صفحهنمایشهای بزرگ (مانند صفحهٔ دونیمه و پنجرهبندی رایانهای)، توسعهدهندگان باید برنامههای Android را بهگونهای بسازند که با هر اندازه صفحهنمایش و پنجره، صرفنظر از جهت دستگاه، سازگار باشد. الگوهایی مانند محدود کردن جهت و قابلیت تغییر اندازه در دنیای چنددستگاهی امروز بسیار محدودکننده هستند.
نادیده گرفتن محدودیتهای جهت، قابلیت تغییر اندازه، و نسبت ابعادی
برای برنامههایی که Android 17 (سطح میانای برنامهسازی کاربردی ۳۷) یا بالاتر را هدف قرار میدهند، محدودیتهای جهت، قابلیت تغییر اندازه، و نسبت ابعادی دیگر در نمایشگرهایی که کمترین عرض آنها بیشتر از ۶۰۰ پیکسل مستقل از تراکم است اعمال نمیشود. برنامهها کل پنجره نمایش را پر میکنند، صرفنظر از نسبت ابعادی یا جهت ترجیحی کاربر، و از تصویر باریک استفاده نمیشود.
Android 17 انصراف موقت توسعهدهنده از محدودیتهای جهت و قابلیت تغییر اندازه در دستگاههای با صفحهنمایش بزرگ را که در Android 16 ارائه شده بود برمیدارد.
این تغییر رفتار استاندارد جدیدی را برای پلاتفرم معرفی میکند. Android درحال حرکت بهسمت مدلی است که در آن انتظار میرود برنامهها با جهتیابیها، اندازههای نمایشگر، و نسبتهای ابعادی مختلف سازگار شوند. محدودیتهایی مانند جهت ثابت یا قابلیت تغییر اندازه محدود، مانع سازگاری برنامه میشود. برنامهتان را تطبیقپذیر کنید تا بهترین تجربه کاربری ممکن را ارائه دهید.
همچنین میتوانید این رفتار را بااستفاده از چارچوب سازگاری برنامه
و فعال کردن پرچم سازگاری UNIVERSAL_RESIZABLE_BY_DEFAULT آزمایش کنید.
تغییرات ناگهانی رایج
نادیده گرفتن محدودیتهای جهت، قابلیت تغییر اندازه، و نسبت ابعادی ممکن است بر واسط کاربر برنامهتان در برخیاز دستگاهها تأثیر بگذارد، بهویژه عناصری که برای چیدمانهای کوچک قفلشده در جهت عمودی طراحی شدهاند. برای مثال، برنامهها ممکن است مشکلاتی مثل چیدمانهای کشیده و پویانماییها و مؤلفههای خارج از صفحه داشته باشند. هرگونه فرضی که درباره نسبت ابعادی یا جهت داشته باشید میتواند باعث ایجاد مشکلات دیداری در برنامهتان شود. درباره نحوه اجتناب از این مشکلات و بهبود رفتار تطبیقی برنامهتان بیشتر بدانید.
مشکل رایج در دستگاههای تاشو افقی یا برای محاسبات نسبت ابعادی در سناریوهایی مانند چندپنجرهای، پنجرهبندی رایانهای، یا نمایشگرهای متصل، زمانی است که پیشنمایش دوربین بهصورت کشیده، چرخیده، یا برشخورده ظاهر میشود. این مشکل اغلب در دستگاههای تاشو و صفحهنمایش بزرگ اتفاق میافتد زیرا برنامهها فرض میکنند که بین ویژگیهای دوربین (مانند نسبت ابعادی و جهت حسگر) و ویژگیهای دستگاه (مانند جهت دستگاه و جهت طبیعی) روابط ثابتی وجود دارد. درباره مدیریت پیشنمایش دوربین بیشتر بدانید.
اجازه دادن به چرخش دستگاه منجر به بازآفرینی فعالیت بیشتر میشود که میتواند منجر به ازدست رفتن وضعیت کاربر شود اگر بهدرستی حفظ نشود. با نحوه ذخیره کردن صحیح وضعیت میانای کاربر در ذخیره کردن وضعیتهای میانای کاربر آشنا شوید.
جزئیات پیادهسازی
مشخصههای مانیفست و میاناهای برنامهنویسی کاربردی زمان اجرای زیر در دستگاههای دارای صفحهنمایش بزرگ در حالتهای تمامصفحه و چندپنجرهای نادیده گرفته میشوند:
screenOrientationresizeableActivityminAspectRatiomaxAspectRatiosetRequestedOrientation()getRequestedOrientation()
مقادیر زیر برای screenOrientation, setRequestedOrientation() و
getRequestedOrientation() نادیده گرفته میشود:
portraitreversePortraitsensorPortraituserPortraitlandscapereverseLandscapesensorLandscapeuserLandscape
درباره تغییرپذیری اندازه نمایشگر، android:resizeableActivity="false",
android:minAspectRatio و android:maxAspectRatio تأثیری ندارند.
استثناها
محدودیتهای جهت، قابلیت تغییر اندازه، و نسبت ابعادی Android 17 در شرایط زیر اعمال نمیشود:
- بازیها (براساس پرچم
android:appCategory) - کاربران صریحاً با رفتار پیشفرض برنامه در تنظیمات نسبت ابعادی دستگاه موافقت میکنند
- صفحههایی که کوچکترین عرض آنها کمتر از
sw600dpاست