اخبار محصول

دومین نسخه بتای Android 17

‫۶ دقیقه خواندن
مشاهده نمایه Matthew McCullough
Matthew McCullough معاون رئیس، مدیریت محصول، توسعه‌دهنده نرم‌افزار Android

امروز دومین نسخه بتای Android 17 را منتشر می‌کنیم و به کار خود برای ساختن پلاتفرمی که حریم خصوصی، امنیت، و عملکرد بهبودیافته را در اولویت قرار می‌دهد ادامه می‌دهیم. این به‌روزرسانی طیفی از قابلیت‌های جدید را ارائه می‌دهد، ازجمله EyeDropper API و «انتخابگر مخاطبین» حافظ حریم خصوصی. همچنین درحال افزودن بُرد پیشرفته، میاناهای برنامه‌سازی کاربردی انتقال بین‌دستگاهی، و موارد دیگر هستیم.

این نسخه ادامه تغییر در آهنگ انتشار ما است، به‌دنبال این انتشار سالانه کیت توسعه نرم‌افزار اصلی در سه‌ماهه دوم با به‌روزرسانی کیت توسعه نرم‌افزار فرعی.

تجربه کاربری و میانای کاربر سیستم

حباب‌ها

«حباب‌ها» ویژگی حالت پنجره‌ای است که تجربه واسط کاربر شناور جدیدی را جدا از میانای برنامه‌سازی کاربردی حباب‌های پیام‌رسانی ارائه می‌دهد. کاربران می‌توانند با فشار طولانی روی نماد برنامه در راه‌انداز، حباب برنامه را در تلفن، دستگاه تاشو، یا رایانه لوحی خود ایجاد کنند. در صفحه‌نمایش‌های بزرگ، نوار حبابک به‌عنوان بخشی از نوار وظیفه وجود دارد که کاربران می‌توانند در آن حبابک‌ها را سازمان‌دهی کنند، بین آن‌ها جابه‌جا شوند، و آن‌ها را به نقاط لنگرانداخته‌شده در صفحه‌نمایش منتقل کنند یا از آن نقاط بردارند.

Bubbles.gif

باید دستورالعمل‌های پشتیبانی از حالت چندپنجره‌ای را دنبال کنید تا مطمئن شوید برنامه‌هایتان به‌درستی به‌عنوان حباب کار می‌کنند.

حباب‌ها هنوز به‌طور کامل در نسخه Beta 2 فعال نشده‌اند. در ساخت‌های آتی Android 17 منتظر آن‌ها باشید.

EyeDropper API

یک EyeDropper API جدید در سطح سیستم به برنامه شما اجازه می‌دهد رنگی را از هر پیکسل در نمایشگر درخواست کند، بدون اینکه به اجازه‌های حساس ضبط صفحه‌نمایش نیاز داشته باشد.

Eyedropper_Tester.webp
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
  result -> if (result.resultCode == Activity.RESULT_OK) {
    val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
    // Use the picked color in your app
  }
}

fun launchColorPicker() {
  val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
  eyeDropperLauncher.launch(intent)
}

انتخابگر مخاطبین

انتخابگر مخاطبین جدید در سطح سیستم ازطریق ACTION_PICK_CONTACTS دسترسی خواندن موقت و مبتنی بر جلسه را فقط به فیلدهای داده خاصی که کاربر درخواست کرده است اعطا می‌کند و نیاز به اجازه‌های گسترده READ_CONTACTS را کاهش می‌دهد. همچنین امکان انتخاب از نمایه‌های شخصی یا کاری دستگاه را فراهم می‌کند.

android-17-contact-picker.gif
val contactPicker = rememberLauncherForActivityResult(StartActivityForResult()) {
    if (it.resultCode == RESULT_OK) {
        val uri = it.data?.data ?: return@rememberLauncherForActivityResult
        // Handle result logic
        processContactPickerResults(uri)
    }
}

val dataFields = arrayListOf(Email.CONTENT_ITEM_TYPE, Phone.CONTENT_ITEM_TYPE)
val intent = Intent(ACTION_PICK_CONTACTS).apply {
    putStringArrayListExtra(EXTRA_PICK_CONTACTS_REQUESTED_DATA_FIELDS, dataFields)
    putExtra(EXTRA_ALLOW_MULTIPLE, true)
    putExtra(EXTRA_PICK_CONTACTS_SELECTION_LIMIT, 5)
}

contactPicker.launch(intent)

سازگاری آسان‌تر ضبط اشاره‌گر با صفحه‌های لمسی

قبلاً، وقتی برنامه‌ای اشاره‌گر را ضبط می‌کرد، صفحه‌های لمسی رویدادها را به‌شیوه‌ای بسیار متفاوت از موشواره گزارش می‌کردند، یعنی مکان انگشتان روی صفحه را گزارش می‌کردند نه حرکات نسبی را که موشواره گزارش می‌کرد. این امر پشتیبانی صحیح از صفحه‌های لمسی را در بازی‌های اول شخص بسیار دشوار می‌کرد. اکنون، به‌طور پیش‌فرض، وقتی صفحه لمسی ضبط می‌شود، سیستم حرکت اشاره‌گر و اشاره‌های پیمایش را تشخیص می‌دهد و آن‌ها را درست مانند رویدادهای موشواره گزارش می‌کند. هنوز می‌توانید با درخواست صریح ضبط در حالت «مطلق» جدید، داده‌های قدیمی و دقیق مکان انگشت را درخواست کنید. 

// To request the new default relative mode (mouse-like events)
// This is the same as requesting with View.POINTER_CAPTURE_MODE_RELATIVE
view.requestPointerCapture()

// To request the legacy absolute mode (raw touch coordinates)
view.requestPointerCapture(View.POINTER_CAPTURE_MODE_ABSOLUTE)

مرزهای استراحت «انتخابگر تعاملی»

با فراخوانی getInitialRestingBounds در ChooserSession Android، برنامه شما می‌تواند موقعیت هدفی را که «انتخاب‌گر» پس‌از تکمیل پویانمایی‌ها و بار کردن داده‌ها اشغال می‌کند شناسایی کند و تنظیمات بهتری در واسط کاربر انجام دهد.

اتصال‌پذیری و بین‌دستگاهی

انتقال برنامه بین‌دستگاهی

میانای برنامه‌سازی کاربردی Handoff جدید به شما امکان می‌دهد وضعیت برنامه را برای ازسرگیری در دستگاه دیگری، مثل رایانه لوحی Android، مشخص کنید. وقتی کاربر موافقت کند، سیستم وضعیت را ازطریق CompanionDeviceManager همگام‌سازی می‌کند و پیشنهاد واگذاری را در راه‌انداز دستگاه‌های اطراف کاربر نمایش می‌دهد. این ویژگی برای ارائه تداوم یکپارچه تکلیف طراحی شده است و به کاربران امکان می‌دهد دقیقاً از جایی که در گردش کار خود در بوم‌سازگان Android متوقف شده‌اند، ادامه دهند. به‌طور بحرانی، Handoff هم از انتقال‌های برنامه به برنامه بومی و هم از بازگشت برنامه به وب پشتیبانی می‌کند، حداکثر انعطاف‌پذیری را فراهم می‌کند و تجربه کاملی را تضمین می‌کند حتی اگر برنامه بومی روی دستگاه گیرنده نصب نشده باشد.

میاناهای برنامه‌سازی کاربردی فاصله‌یابی پیشرفته

درحال افزودن پشتیبانی از ۲ فناوری جدید فاصله‌یابی هستیم - 

  1. UWB DL-TDOA که به برنامه‌ها امکان می‌دهد از «فراپهن‌باند» برای ناوبری داخلی استفاده کنند. این سطح میانای برنامه‌سازی کاربردی با مشخصات FIRA (کنسرسیوم فاصله‌یابی دقیق) 4.0 DL-TDOA مطابقت دارد و ناوبری داخلی حافظ حریم خصوصی را فعال می‌کند  (جلوگیری از ردیابی دستگاه توسط لنگر).
  2. تشخیص مجاورت که به برنامه‌ها امکان می‌دهد از مشخصات جدید فاصله‌یابی که توسط WFA (اتحادیه WiFi) اتخاذ شده است استفاده کنند. این فناوری درمقایسه با مشخصات فاصله‌یابی موجود مبتنی بر Wifi Aware، قابلیت اطمینان و دقت بهبودیافته‌ای ارائه می‌دهد.

بهبودهای طرح داده

برای بهینه‌سازی کیفیت رسانه، برنامه‌تان اکنون می‌تواند بااستفاده از getStreamingAppMaxDownlinkKbps و getStreamingAppMaxUplinkKbps، حداکثر نرخ داده اختصاص‌داده‌شده توسط شرکت مخابراتی را برای برنامه‌های جاری‌سازی بازیابی کند.

عملکرد اصلی، حریم خصوصی، و عملکرد

دسترسی شبکه محلی

Android 17 اجازه زمان اجرای ACCESS_LOCAL_NETWORK را برای محافظت از کاربران دربرابر دسترسی غیرمجاز به شبکه محلی معرفی می‌کند. چون این مورد تحت گروه اجازه NEARBY_DEVICES موجود قرار می‌گیرد، از کاربرانی که قبلاً اجازه‌های NEARBY_DEVICES دیگر را اعطا کرده‌اند دوباره درخواست نخواهد شد. با اعلام و درخواست این اجازه، برنامه شما می‌تواند دستگاه‌های موجود در شبکه محلی (LAN) را، مثل دستگاه‌های خانه هوشمند یا گیرنده‌های ارسال محتوا، پیدا کند و به آن‌ها متصل شود. این کار از سوءاستفاده برنامه‌های مخرب از دسترسی نامحدود به شبکه محلی برای ردگیری مخفیانه کاربر و انگشت‌نگاری جلوگیری می‌کند. برنامه‌هایی که Android 17 یا بالاتر را هدف قرار می‌دهند، اکنون دو مسیر برای حفظ ارتباط با دستگاه‌های LAN خواهند داشت: استفاده از انتخاب‌گرهای دستگاه با واسطه سیستم و حافظ حریم خصوصی برای رد شدن از درخواست اجازه، یا درخواست صریح این اجازه جدید در زمان اجرا برای حفظ ارتباط شبکه محلی.

پخش تغییر فاصله زمانی منطقه زمانی

اکنون Android یک هدف همه‌فرستی قابل‌اعتماد، ACTION_TIMEZONE_OFFSET_CHANGED، ارائه می‌دهد که وقتی انحراف منطقه زمانی سیستم تغییر می‌کند، مثلاً درطول انتقال به «ساعت تابستانی»، راه‌اندازی می‌شود. این امر مکمل هدف‌های همه‌فرستی موجود ACTION_TIME_CHANGED و ACTION_TIMEZONE_CHANGED است که به‌ترتیب هنگام تغییر مُهر زمان یونیکس و هنگام تغییر شناسه منطقه زمانی راه‌اندازی می‌شوند.

مدیریت و اولویت‌بندی NPU

برنامه‌هایی که Android 17 را هدف قرار می‌دهند و نیاز به دسترسی مستقیم به NPU دارند، باید FEATURE_NEURAL_PROCESSING_UNIT را در مانیفست خود اعلام کنند تا از مسدود شدن دسترسی به NPU جلوگیری شود. این شامل برنامه‌هایی می‌شود که از نماینده LiteRT NPU، کیت‌های توسعه نرم‌افزار مختص فروشنده، و همچنین NNAPI منسوخ‌شده استفاده می‌کنند.

پشتیبانی از ICU 78 و Unicode 17

کتابخانه‌های بین‌المللی‌سازی اصلی به ICU 78 به‌روزرسانی شده‌اند که پشتیبانی از نویسه‌ها، نویسه‌گردانی‌ها، و بلوک‌های اموجی جدید را گسترش می‌دهد و قالب‌بندی مستقیم اشیای زمان را فعال می‌کند.

محافظت از گذرواژه یک‌بارمصرف پیامکی

Android با به‌تأخیر انداختن خودکار دسترسی به پیامک‌های حاوی گذرواژه یک‌بارمصرف، درحال گسترش محافظت از گذرواژه یک‌بارمصرف پیامکی است. قبلاً، این محافظت عمدتاً بر قالب «بازیابی پیامک» متمرکز بود که در آن، ارسال پیام‌های حاوی درهم‌ساز بازیابی پیامک برای اکثر برنامه‌ها به‌مدت سه ساعت به‌تأخیر می‌افتاد. بااین‌حال، برخی‌از برنامه‌ها مانند برنامه پیش‌فرض پیامک و غیره و برنامه‌ای که با درهم‌سازی مطابقت دارد از این تأخیر معاف هستند. این به‌روزرسانی محافظت را به همه پیامک‌های حاوی گذرواژه یک‌بارمصرف گسترش می‌دهد. برای اکثر برنامه‌ها، پیامک‌های حاوی گذرواژه یک‌بارمصرف فقط پس‌از سه ساعت تأخیر دردسترس خواهند بود تا از سرقت گذرواژه یک‌بارمصرف جلوگیری شود. پخش SMS_RECEIVED_ACTION متوقف خواهد شد و پُرسمان‌های پایگاه داده ارائه‌دهنده پیامک فیلتر خواهد شد. پیامک پس‌از تأخیر برای این برنامه‌ها دردسترس خواهد بود. 

دسترسی با تأخیر به پیامک‌های قالب WebOTP

اگر برنامه اجازه خواندن پیامک‌ها را داشته باشد اما گیرنده موردنظر گذرواژه یک‌بارمصرف نباشد (همان‌طور که با درستی‌سنجی دامنه تعیین می‌شود)، پیامک با قالب WebOTP فقط پس‌از گذشت سه ساعت قابل‌دسترسی خواهد بود. این تغییر برای بهبود امنیت کاربر طراحی شده است تا اطمینان حاصل شود که فقط برنامه‌های مرتبط با دامنه ذکرشده در پیام می‌توانند کد درستی‌سنجی را به‌صورت برنامه‌نویسی‌شده بخوانند. این تغییر برای همه برنامه‌ها، صرف‌نظر از سطح میانای برنامه‌سازی کاربردی هدف آن‌ها، اعمال می‌شود.

دسترسی با تأخیر به پیامک‌های استاندارد حاوی گذرواژه یک‌بارمصرف

برای پیامک‌های حاوی گذرواژه یک‌بارمصرف که از قالب‌های WebOTP یا «بازیابی پیامک» استفاده نمی‌کنند، پیامک گذرواژه یک‌بارمصرف برای اکثر برنامه‌ها فقط پس‌از سه ساعت دردسترس خواهد بود. این تغییر فقط برای برنامه‌هایی اعمال می‌شود که Android 17 (سطح میانای برنامه‌سازی کاربردی ۳۷) یا بالاتر را هدف قرار می‌دهند.

برخی‌از برنامه‌ها مانند برنامه پیامک پیش‌فرض، برنامه دستیار، به‌همراه برنامه‌های همراه دستگاه متصل، و غیره از این تأخیر معاف خواهند بود.

همه برنامه‌هایی که برای استخراج گذرواژه یک‌بارمصرف به خواندن پیامک متکی هستند باید به استفاده از میاناهای برنامه‌سازی کاربردی بازیابی پیامک یا رضایت کاربر پیامک منتقل شوند تا از تداوم عملکرد اطمینان حاصل شود.

برنامه زمانی Android 17

ما به‌سرعت از این نسخه بتا به نقطه عطف «پایداری پلاتفرم» خود که برای ماه مارس هدف‌گذاری شده است حرکت خواهیم کرد. در این نقطه عطف، میاناهای برنامه‌سازی کاربردی نهایی کیت توسعه نرم‌افزار/ کیت توسعه بومی را ارائه خواهیم کرد. از آن زمان به بعد، برنامه‌تان می‌تواند کیت توسعه نرم‌افزار ۳۷ را هدف قرار دهد و در Google Play منتشر شود تا به شما کمک کند آزمایش خود را تکمیل کنید و بازخورد کاربران را در چند ماه قبل‌از دردسترس قرار گرفتن عمومی Android 17 جمع‌آوری کنید.

Android Release Timeline.png

یک سال انتشار

برنامه ما این است که Android 17 همچنان در قالب مجموعه‌ای از نسخه‌های پخش سه‌ماهه به‌روزرسانی دریافت کند. نسخه پخش آتی در سه‌ماهه دوم تنها نسخه‌ای است که در آن تغییرات برنامه‌ریزی‌شده در رفتار برنامه را که باعث ازکارافتادن آن می‌شود معرفی می‌کنیم. قصد داریم در سه‌ماهه چهارم، نسخه جزئی کیت توسعه نرم‌افزار را با میاناهای برنامه‌سازی کاربردی و ویژگی‌های اضافی عرضه کنیم.

Android Release Timeline_2.png

شروع به کار با Android 17

می‌توانید هر دستگاه Pixel پشتیبانی‌شده‌ای را ثبت‌نام کنید تا این به‌روزرسانی و به‌روزرسانی‌های آتی Android Beta را به‌صورت بی‌سیم دریافت کنید. اگر دستگاه Pixel ندارید، می‌توانید از تصاویر سیستم ۶۴ بیتی با «شبیه‌ساز Android» در Android Studio استفاده کنید.

اگر درحال‌حاضر در برنامه Android Beta هستید، به‌روزرسانی بی‌سیم به Beta 2 به شما پیشنهاد خواهد شد.

اگر نسخه بتای Android 26Q1 را دارید و می‌خواهید نسخه پخش پایدار نهایی 26Q1 را دریافت کنید و از نسخه بتا خارج شوید، باید به‌روزرسانی بی‌سیم به نسخه بتای 2 از 26Q2 را نادیده بگیرید و منتظر انتشار 26Q1 بمانید.

منتظر بازخورد شما هستیم، بنابراین لطفاً مشکلات را گزارش کنید و درخواست‌های ویژگی را در صفحه بازخورد ارسال کنید. هرچه زودتر بازخوردتان را دریافت کنیم، بیشتر می‌توانیم آن را در کارمان روی نسخه نهایی لحاظ کنیم.

برای داشتن بهترین تجربه توسعه با Android 17، توصیه می‌کنیم از جدیدترین پیش‌نمایش Android Studio (Panda) استفاده کنید. پس‌از راه‌اندازی، در اینجا چند کار آورده شده است که باید انجام دهید:

  • با کیت توسعه نرم‌افزار جدید کامپایل کنید، در محیط‌های CI آزمایش کنید، و هرگونه مشکل را در ردیاب ما در صفحه بازخورد گزارش کنید.
  • برنامه فعلی‌تان را ازنظر سازگاری آزمایش کنید، ببینید آیا برنامه‌تان تحت‌تأثیر تغییرات Android 17 قرار می‌گیرد یا نه، و برنامه‌تان را در دستگاه یا شبیه‌سازی که Android 17 را اجرا می‌کند نصب کنید و آن را به‌طور گسترده آزمایش کنید.

ما به‌طور منظم تصاویر سیستم پیش‌نمایش/بتا و کیت توسعه نرم‌افزار را درطول چرخه انتشار Android 17 به‌روزرسانی خواهیم کرد. پس‌از نصب ساخت بتا، به‌روزرسانی‌های آینده را به‌طور خودکار دریافت خواهید کرد 

برای همه پیش‌نمایش‌ها و نسخه‌های بتای بعدی، به‌صورت بی‌سیم دریافت خواهید کرد.

برای اطلاعات کامل، به سایت توسعه‌دهنده Android 17 مراجعه کنید.

پیوستن به این مکالمه

درحالی‌که به‌سمت پایداری پلاتفرم و دردسترس بودن عمومی Android 17 در اواخر امسال پیش می‌رویم، بازخورد شما همچنان ارزشمندترین دارایی ما است. چه پذیرنده آغازین در کانال Canary باشید یا توسعه‌دهنده نرم‌افزار که درحال آزمایش نسخه بتا ۲ است، به انجمن‌های ما بپیوندید و بازخوردتان را ارسال کنید. به علاقه موسیقیایی شما توجه می‌کنیم.

نویسنده:
ادامه خواندن