گوگل یک پلتفرم موبایل متنباز منتشر کرده است. Android 17. Связанные с новым выпуском исходные тексты размещены в Git-репозитории проекта (ветка android-17.0.0_r1). Сборки прошивки подготовлены для устройств Pixel 6/6a/6 Pro, Pixel 7/7a/7 Pro, Pixel 8/8a/8 Pro, Pixel 9/9a/9 Pro/9 Pro XL/9 Pro Fold, Pixel 10/10 Pro/10 Pro XL/10 Pro Fold, Pixel Fold и Pixel Tablet. Предварительные сборки прошивок доступны для устройств HONOR, iQOO, Lenovo, OnePlus, OPPO, realme, Sharp, vivo и Xiaomi. В процессе формирования универсальные сборки GSI (Generic System Images), подходящие для разных устройств на базе архитектур ARM64 и x86_64.
Среди изменений (1, 2, 3):
- یک حالت چند پنجرهای جدید به نام «حبابها» اضافه شده است. این حالت به شما امکان میدهد هر برنامهای را در پنجرههای شناور اجرا کنید، مشابه اعلانهای روی هم افتاده برای ارسال پیام («حبابها»)، اما به یک API تخصصی وابسته نیست. باز کردن یک برنامه در یک پنجره شناور با فشار دادن طولانی مدت روی آیکون برنامه انجام میشود. در صفحه نمایشهای بزرگتر، آیکونهای پنجره شناور در یک ناحیه جداگانه در نوار وظیفه ظاهر میشوند. این پنجرهها را میتوان گروهبندی، جابجا و به صفحه پین کرد.

- توسعه پلتفرم برای دستگاههایی با صفحه نمایش بزرگ، مانند تبلتها، لپتاپها، سیستمهای رومیزی و تلفنهای هوشمند با صفحه نمایش تاشو، ادامه یافته است. گزینههایی که قبلاً برای غیرفعال کردن رفتار جدید در دستگاههایی با صفحه نمایشهای عریضتر از ۶۰۰ پیکسل (dp) فعال بودند، حذف شدهاند. این رفتار مربوط به نادیده گرفتن APIهای خاصی برای مدیریت تغییر اندازه و جهت صفحه نمایش (screenOrientation، resizeableActivity، [min|max]AspectRatio) و همچنین قرارگیری تطبیقی برنامهها در پنجرههای قابل تغییر اندازه و متحرک بود.


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

- Добавлен системный интерфейс выбора контакта из адресной книги, доступ к которому предоставляется при получении полномочия ACTION_PICK_CONTACTS. Интерфейс позволяет обойтись без предоставления полномочия READ_CONTACTS, позволяющего прочитать все контактные данные. При вызове нового интерфейса пользователь принимает решение о том, какую именно информацию из адресной книги передать приложению с возможностью выбора только отдельных полей.

- API مربوط به PhotoPickerUiCustomizationParams برای سفارشیسازی رابط کاربری انتخابگر عکس اضافه شده است و به آن اجازه میدهد تا با سبک برنامه فراخوانی بهتر مطابقت داشته باشد. برای مثال، میتوانید نسبت ابعاد تصاویر کوچک عکس را از ۱:۱ (مربع) به ۹:۱۶ (عمودی) تغییر دهید.

- مجوز USE_LOCATION_BUTTON اضافه شده است که به شما امکان میدهد یک دکمه سیستمی را در رابط برنامه خود تعبیه کنید تا به دادههای دقیق موقعیت مکانی دسترسی داشته باشید. این دکمه توسط سیستم رندر میشود و وقتی کاربر روی آن کلیک میکند، فقط برای مدت زمان جلسه فعلی به دادههای موقعیت مکانی دسترسی میدهد.

- تنظیمی اضافه شده است که به شما امکان میدهد نمایش نام برنامهها را در زیر آیکونهای آنها پنهان کنید.


- طراحی نوار ابزار ضبط اسکرینکست تغییر کرده است.

- Добавлена поддержка экранных реакций (Screen Reactions), совмещающих запись видео с передней камеры с созданием скринкаста для наложения своих комментариев к действиям на экране.
- Добавлен режим для игр на устройствах со складными экранами, при котором одна половина раскладного экрана используется для отображения игрового процесса, а другая для виртуального геймпада.

- API Handoff اضافه شد که به شما امکان میدهد وضعیت یک برنامه را به برنامه دیگری در نزدیکی آن منتقل کنید. Android-دستگاه (مثلاً تبلت) را انتخاب کنید و به کار خود در آنجا ادامه دهید.

- پنجرههای تعاملی متصل به هم پیادهسازی شدهاند که برخلاف پنجرههای سنتی تصویر در تصویر، هنگام اتصال به سایر برنامهها در حالت دسکتاپ، تعاملی باقی میمانند.
- دو API جدید اضافه شده است: API UWB DL-TDOA برای تعیین موقعیت دستگاه در داخل ساختمان با استفاده از Wi-Fi برای ناوبری داخلی؛ و API تشخیص مجاورت برای تشخیص دستگاههای نزدیک از طریق Wi-Fi.
- پشتیبانی از فرمت ویدیویی VVC (Versatile Video Coding) که با نام استاندارد فشردهسازی ویدیوی H.266 نیز شناخته میشود، اضافه شده است. این فرمت به طور مشترک توسط گروههای کاری MPEG (ISO/IEC JTC 1) و VCEG (ITU-T) با مشارکت شرکتهایی مانند اپل، اریکسون، اینتل، هواوی، مایکروسافت، کوالکام و سونی توسعه داده شده است. H.266 جایگزین H.265 (HEVC) میشود و انتقال و ذخیرهسازی با راندمان بالا را برای همه وضوحهای صفحه نمایش (از SD و HD گرفته تا 4K و 8K) فراهم میکند، از ویدیوی High Dynamic Range (HDR) و ویدیوی پانورامای 360 درجه پشتیبانی میکند.
- قابلیت ضبط ویدیو با سطح کیفیت ثابت اضافه شده است. این حالت در شیء MediaRecorder با استفاده از متد setVideoEncodingQuality() پیکربندی شده است و به شما امکان میدهد سطح کیفیت را صرف نظر از بیتریت قفل کنید.
- Добавлена поддержка формата изображений RAW14, применяемого в профессиональных цифровых камерах и обеспечивающего хранение 15 бит на цветовой канал.
- Добавлено поддержка формата HDR-видео Eclipsa Video.
- یک رمزگذار نرمافزاری برای فرمت صوتی HE-AAC (کدگذاری صوتی پیشرفته با راندمان بالا) اضافه شده است که از بیتریتهای پایین و بالا پشتیبانی میکند.
- یک مجوز جدید، ACCESS_LOCAL_NETWORK، برای محدود کردن دسترسی برنامهها به شبکه محلی اضافه شده است. این مجوز به برنامهها اجازه میدهد تا دستگاههای موجود در شبکه محلی، مانند دستگاههای خانه هوشمند و سیستمهای چندرسانهای را شناسایی و به آنها متصل شوند. این مجوز برای جلوگیری از اسکن منابع شبکه محلی توسط برنامههای مخرب، مثلاً برای شناسایی مخفیانه محیط کاربر، اضافه شده است.
- محافظت در برابر رهگیری رمزهای عبور یکبار مصرف (OTP) و کدهای تأیید ارسال شده از طریق پیامک گسترش یافته است. اکنون اکثر برنامهها فقط سه ساعت پس از دریافت این پیامها به آنها دسترسی مستقیم دارند. خواننده پیامک پیشفرض این پیامها را بلافاصله نمایش میدهد.
- Реализована защита от звонков мошенников, представляющихся сотрудниками банка. Платформа может взаимодействовать с установленными банковскими приложениями для подтверждения того, что звонок инициирован банком. Также банки могут определять номера телефонов на которых допускаются только входящие звонки.
- Добавлена возможность предоставления приложениям временного доступа к данным о точном местоположении, действующего только в течение текущего сеанса работы с программой.
- Механизм защиты динамической загрузки кода (DCL, Dynamic Code Loading) расширен для применения с нативными библиотеками, загружаемыми через метод System.load(), а не только
файлами в форматах DEX и JAR. DCL позволяет избежать подстановки вредоносного кода в динамически загружаемые исполняемые файлы, благодаря выставлению для подобных файлов прав доступа, допускающих только чтение. - مکانیزم شفافیت گواهی به طور پیشفرض فعال است و یک گزارش عمومی از تمام گواهیهای صادر شده و لغو شده را نگهداری میکند.
- قابلیت تأیید بستههای APK با امضای دیجیتال مبتنی بر یک الگوریتم ترکیبی که الگوریتم کلاسیک را با الگوریتم ML-DSA ترکیب میکند، معرفی شده است. این الگوریتم در برابر حملات بروت فورس روی یک کامپیوتر کوانتومی مقاوم است.
- Для приложений, работающих в фоновом режиме, ограничен доступ к API для воспроизведения звука, подключения к звуковым устройствам и изменения громкости. Подразумевается, что только активные приложения, с которыми в данный момент взаимодействует пользователь, могут начинать воспроизведение и менять громкость.
- پشتیبانی از رمزگذاری ترکیبی بر اساس مکانیزم HPKE (رمزگذاری کلید عمومی ترکیبی، RFC 9180) اضافه شده است، که سهولت انتقال کلید در رمزگذاری کلید عمومی را با عملکرد بالای رمزگذاری متقارن ترکیب میکند (دادهها با یک کلید متقارن سریع رمزگذاری میشوند و خود کلید با یک کلید نامتقارن کند رمزگذاری میشود).
- При вводе паролей и PIN-кодов при помощи физической клавиатуры по умолчанию отключено отображение последнего введённого символа по мере набора.
- برای سادهسازی پیادهسازی پشتیبانی از تاچپد در بازیها، مدیریت رویدادهای ماوس و تاچپد یکپارچه شده است. به طور پیشفرض، رویدادهای تاچپد مربوط به حرکات اشارهگر و حرکات اسکرول، اکنون درست مانند ماوس، به مختصات نسبی تبدیل میشوند. دسترسی به مختصات مطلق با مشخص کردن صریح حالت POINTER_CAPTURE_MODE_ABSOLUTE فراهم میشود.
- متد getInitialRestingBounds() به شیء ChooserSession اضافه شده است که به شما امکان میدهد موقعیت و اندازه نهایی کادر محاورهای Chooser را پس از توقف انیمیشن و بارگذاری دادهها پیدا کنید.
- متدهای getStreamingAppMaxDownlinkKbps و getStreamingAppMaxUplinkKbps برای تعیین حداکثر پهنای باند کانال ارتباطی به منظور انتخاب سطح کیفیت برای پخش، اضافه شد.
- یک رابط برنامهنویسی کاربردی (API) در اختیار تولیدکنندگان سختافزار قرار گرفته است تا افزونههایی برای دوربین ایجاد کنند که ویژگیهای خاص هر برنامه، مانند موتور بهبود جزئیات Super Resolution، حالتهای کاهش نویز و بهینهسازهای کیفیت هوش مصنوعی را فعال کنند.
- API برای دریافت اطلاعات در مورد نوع دوربین (دوربین داخلی، وبکم USB یا دوربین مجازی) اضافه شد.
- پشتیبانی از سمعکهای متصل از طریق بلوتوث کممصرف (BLE) اضافه شده است. این دستگاهها اکنون در دسته جدید TYPE_BLE_HEARING_AID طبقهبندی میشوند که به برنامهها اجازه میدهد بین سمعک و هدفون تمایز قائل شوند و پخش صدای سیستم را بهطور جداگانه کنترل کنند (برای مثال، میتوانید اعلانها، آهنگهای زنگ و آلارمها را بهجای پخش روی سمعک، روی بلندگوی داخلی گوشی خود پخش کنید).
- تنظیمات جداگانهای برای نمایش رمزهای عبور وارد شده روی صفحه کلید فیزیکی و صفحه لمسی اضافه شده است. به طور پیشفرض، کاراکترهای رمز عبور وارد شده با استفاده از صفحه کلید فیزیکی بلافاصله پنهان میشوند.
- نمایش ویجتهای برنامه در صفحات نمایش خارجی با در نظر گرفتن تفاوتهای DPI هنگام مقیاسبندی، بهبود یافته است.
- درخواست ACTION_VPN_APP_EXCLUSION_SETTINGS اضافه شد که میتواند برای باز کردن صفحه سیستم با تنظیماتی که به یک برنامه اجازه میدهد با دور زدن تونل VPN به شبکه دسترسی داشته باشد، استفاده شود.
- پشتیبانی از ویژگیهای زبان OpenJDK 25 و کلاسهای جاوا اضافه شد.
- قابلیتهای API دوربین گسترش یافته است. متد updateOutputConfigurations() به شیء CameraCaptureSession اضافه شده است تا بتوان بدون نیاز به پیکربندی مجدد کل جلسه ضبط دوربین، نواحی خروجی را در لحظه متصل یا جدا کرد. این تغییر امکان جابجایی یکپارچه بین حالتهای مختلف دوربین (به عنوان مثال، ضبط ویدیو و گرفتن عکس) را فراهم میکند. هنگام کار با دوربینهای منطقی که چندین حسگر فیزیکی را در بر میگیرند، قابلیت بازیابی فراداده برای هر حسگر، نه فقط حسگر اصلی، اضافه شده است.
- ویژگی android:usesCleartextTraffic که به برنامهها اجازه میداد ترافیک رمزگذاری نشده، مانند درخواستهای "http://" را منتقل کنند، منسوخ شده است. در صورت نیاز به ترافیک رمزگذاری نشده، باید از فایلهای پیکربندی امنیتی جداگانه استفاده شود.
- تنظیماتی برای مدیریت تاریخچه تماس VoIP اضافه شده است که به شما امکان میدهد کنترل کنید که آیا اطلاعات در گزارشها ذخیره شود و آیا اطلاعات مربوط به تماسهای تکمیلشده در رابط نمایش داده شود یا خیر.
- رابط برنامهنویسی کاربردی (API) مربوط به Wi-Fi RTT (زمان رفت و برگشت) گسترش یافته است تا تخمین مداوم نزدیکی به نقاط دسترسی و تشخیص امن گرههای نظیر به نظیر را فراهم کند.
- پروفایلهای جدیدی به CompanionDeviceManager اضافه شدهاند تا بتوانید درخواست مجوز کنید و تعامل برنامه با دستگاههای پزشکی و ردیابهای تناسب اندام را فعال کنید.
- В Android Runtime (ART) реализован поколенческий сборщик мусора (Generational Concurrent Mark-Compact Garbage Collector), использующий раздельную обработку «старых» и «молодых» объектов, что повышает эффективность очистки недавно созданных объектов с небольшим временем жизни. Применение поколенческого сборщика мусора уменьшает риск приостановок во время выделения ресурсов и снижает нагрузку на CPU, что повышает эффективность потребления энергии.
- Реализовано ограничение на максимальный объём оперативной памяти, которое может занимать приложение. При превышении лимита, вычисляемого на основе имеющегося в устройстве ОЗУ, приложение принудительно завершается. Для сокращения размера потребляемой памяти предложен R8 Optimizer, упаковывающий имена классов, методов и полей, а также удаляющий неиспользуемый код и ресурсы.
- При сборке ядра Linux включена оптимизация AutoFDO (Auto-Feedback-Directed Optimization), использующая результаты профилирования c информацией о частоте выполнения различных участков кода для повышения производительности часто выполняемых операций. В проведённых тестах включение AutoFDO для ядра привело к сокращению времени загрузки на 2.1%, ускорению первого запуска программ на 4.3%, повышению эффективности системных вызовов на 9.3%, сокращению времени выполнения mmap-транзакций Binder на 12.3%, HwBinder на 20% и Binder RPC на 21.7%.
- پیادهسازی جدیدی از صف پیام android.os.MessageQueue ارائه شده است که بدون قفل عمل میکند. این پیادهسازی جدید عملکرد را بهبود میبخشد و از دست دادن فریم را کاهش میدهد.
- Приложениям, заявляющим о поддержке Android 17 и более новых выпусков, запрещено изменять значения полей, помеченных как «static final», что позволяет задействовать более агрессивные оптимизации производительности в runtime.
- برای کاهش مصرف حافظه، اندازه طرحبندیهای نمایش اعلانهای سفارشی محدود شده است.
- محرکهای اضافی TRIGGER_TYPE_COLD_START، TRIGGER_TYPE_OOM و TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE به پروفایلر ProfilingManager اضافه شدهاند تا دادههای مفید برای اشکالزدایی مشکلات عملکرد را جمعآوری کنند.
منبع: opennet.ru












