Вышла бета-версия 4 Android 17. Это последняя запланированная бета-версия в цикле выпуска, и она имеет решающее значение для совместимости приложений и стабильности платформы. Бета-версия 4 предоставляет почти финальную среду для тестирования, которая поможет вам улучшить пользовательский интерфейс приложения, обеспечить корректное отображение контента на весь экран и использовать новейшие API.
Подготовьте приложения, библиотеки, инструменты и игровые движки
Если вы разрабатываете Android SDK, библиотеку, инструмент или игровой движок, вам необходимо подготовить все необходимые обновления, чтобы разработчики приложений и игр могли использовать новейшие функции SDK и не сталкивались с проблемами совместимости. Если для полной поддержки Android 17 требуются обновления, сообщите об этом разработчикам, использующим ваш SDK.
Для тестирования нужно установить на устройство или эмулятор с Android 17 Beta 4 ваше рабочее или тестовое приложение, в котором используется ваша библиотека или движок, с помощью Google Play или другим способом. Проверьте все сценарии использования приложения и найдите проблемы с функциями или интерфейсом. Каждая версия Android содержит изменения платформы, которые повышают конфиденциальность, безопасность и удобство использования. Чтобы сосредоточиться на тестировании, изучите изменения в поведении приложений, которые влияют на приложения, работающие и предназначенные для Android 17, в том числе следующие:
- Изменение размера на больших экранах. После того как вы начнете использовать Android 17, вы больше не сможете отказаться от поддержки ориентации, изменения размера и соотношения сторон на больших экранах.
- Динамическая загрузка кода. Если ваше приложение предназначено для Android 17 или более поздних версий, то защита Safer Dynamic Code Loading (DCL), представленная в Android 14 для файлов DEX и JAR, теперь распространяется и на нативные библиотеки. Все нативные файлы, загруженные с помощью System.load(), должны быть отмечены как доступные только для чтения. В противном случае система выдаст ошибку UnsatisfiedLinkError.
- Включить проверку сертификатов по умолчанию.Проверка сертификатов включена по умолчанию. (В Android 16 функция CT доступна, но приложения должны поддерживать ее.)
- Защита локальной сети. В приложениях, предназначенных для Android 17 или более поздней версии, доступ к локальной сети по умолчанию заблокирован. Если возможно, перейдите на использование инструментов выбора с сохранением конфиденциальности и используйте новое разрешение ACCESS_LOCAL_NETWORK для широкого постоянного доступа.
- Усиление защиты фонового аудио. В Android 17 аудиофреймворк обеспечивает соблюдение ограничений на взаимодействие с фоновым аудио, в том числе на воспроизведение аудио, запросы аудиофокуса и API изменения громкости. Мы учли ваши отзывы и внесли некоторые изменения в бета-версию 2, в том числе добавили ограничение targetSDK для принудительного использования сервисов переднего плана (FGS) во время использования приложения и исключили аудиосигналы будильника. Подробная информация приведена в обновленных инструкциях.
Ограничения на использование памяти приложениями
В Android вводятся ограничения на использование памяти приложениями в зависимости от общего объема ОЗУ устройства. Это позволит создать более стабильную и предсказуемую среду для приложений и пользователей Android. В Android 17 ограничения установлены консервативно, чтобы задать базовые показатели системы и выявлять экстремальные утечки памяти и другие отклонения до того, как они приведут к нестабильности системы, из-за которой интерфейс будет работать с перебоями, батарея будет разряжаться быстрее, а приложения будут закрываться. Мы ожидаем, что это изменение не повлияет на большинство сеансов работы с приложениями, но рекомендуем следовать передовым методам работы с памятью, в том числе установить базовый уровень использования памяти.
В текущей реализации getDescription в ApplicationExitInfo будет содержать строку "MemoryLimiter", если на работу приложения повлиял ограничитель памяти. Вы также можете использовать профилирование на основе триггеров с TRIGGER_TYPE_ANOMALY, чтобы получать дампы кучи, собранные при достижении лимита памяти.
Чтобы помочь вам найти утечки памяти, в Android Studio Panda добавлена интеграция LeakCanary непосредственно в профилировщик Android Studio в виде отдельной задачи, контекстуализированной в IDE и полностью интегрированной с исходным кодом.
Меньший объем памяти означает более высокую производительность, более длительное время работы от батареи и удобство использования на устройствах любого типа. Давайте вместе сделаем экосистему Android быстрее и надежнее!
Триггеры профилирования для аномалий в приложениях
В Android появился сервис обнаружения аномалий на устройстве, который отслеживает ресурсоемкие действия и потенциальные регрессии совместимости. Этот сервис интегрирован с ProfilingManager и позволяет приложению получать артефакты профилирования, созданные в результате определенных системных событий.
Используйте триггер TRIGGER_TYPE_ANOMALY, чтобы выявлять проблемы с производительностью системы, например чрезмерное количество вызовов Binder и чрезмерное использование памяти. Если приложение превышает заданные ОС ограничения памяти, триггер аномалии позволяет разработчикам получать дампы кучи для конкретного приложения, чтобы выявлять и устранять проблемы с памятью. Кроме того, при обнаружении спама в связке триггер аномалии предоставляет профиль выборки стека для транзакций связки.
Этот обратный вызов API выполняется до того, как система применит какие-либо ограничения. Например, это может помочь разработчикам собрать данные для отладки до того, как система завершит работу приложения из-за превышения лимита памяти. Чтобы узнать, как использовать триггер, ознакомьтесь с нашей документацией по профилированию на основе триггеров.
val profilingManager = applicationContext.getSystemService(ProfilingManager::class.java) val triggers = ArrayList<ProfilingTrigger>() triggers.add(ProfilingTrigger.Builder( ProfilingTrigger.TRIGGER_TYPE_ANOMALY)) val mainExecutor: Executor = Executors.newSingleThreadExecutor() val resultCallback = Consumer<ProfilingResult> { profilingResult -> if (profilingResult.errorCode != ProfilingResult.ERROR_NONE) { // upload profile result to server for further analysis setupProfileUploadWorker(profilingResult.resultFilePath) } profilingManager.registerForAllProfilingResults(mainExecutor, resultCallback) profilingManager.addProfilingTriggers(triggers) }
Постквантовая криптография (PQC) в хранилище ключей Android
В хранилище ключей Android добавлена поддержка алгоритма цифровой подписи на основе решетки модулей (ML-DSA), стандартизированного NIST. На поддерживаемых устройствах можно генерировать ключи ML-DSA и использовать их для создания квантово-устойчивых подписей, полностью в защищенном оборудовании устройства. Android Keystore предоставляет варианты алгоритмов ML-DSA-65 и ML-DSA-87 через стандартные API архитектуры Java Cryptographic Architecture: KeyPairGenerator, KeyFactory и Signature. Более подробную информацию можно найти в документации для разработчиков.
KeyPairGenerator generator = KeyPairGenerator.getInstance( “ML-DSA-65”, "AndroidKeyStore"); generator.initialize( new KeyGenParameterSpec.Builder( “my-key-alias”, KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY) .build()); KeyPair keyPair = generator.generateKeyPair();
Как начать работу с Android 17
Вы можете зарегистрировать любое поддерживаемое устройство Pixel, чтобы получать это и другие обновления бета-версии Android по беспроводной сети. Если у вас нет устройства Pixel, вы можете использовать 64-битные системные образы с эмулятором Android в Android Studio.
Если вы участвуете в Программе бета-тестирования Android, вам будет предложено обновить ОС до бета-версии 4 по беспроводной сети.
Вы по-прежнему можете сообщать о проблемах и отправлять запросы на добавление функций на странице отзывов. Чем раньше мы получим ваш отзыв, тем больше сможем учесть при работе над финальной версией.
Чтобы разработка для Android 17 была максимально удобной, рекомендуем использовать последнюю предварительную версию Android Studio (Panda). После настройки выполните следующие действия:
- Скомпилируйте код с помощью нового SDK, протестируйте его в средах CI и сообщите о любых проблемах в системе отслеживания на странице отзывов.
- Проверьте, совместимо ли ваше приложение с Android 17, узнайте, затронули ли его изменения в этой версии ОС, установите приложение на устройство или эмулятор с Android 17 и тщательно протестируйте его.
Мы будем регулярно обновлять образы систем для предварительной и бета-версий и SDK в течение всего цикла выпуска Android 17. После установки бета-версии вы будете автоматически получать все последующие обновления по беспроводной сети.
Подробную информацию можно найти на сайте для разработчиков Android 17.
Присоединяйтесь к обсуждению
Ваши отзывы по-прежнему очень важны для нас. Если вы участник программы раннего доступа на канале Canary или разработчик приложений, тестирующий на бета-версии 4, присоединяйтесь к нашим сообществам и оставляйте отзывы. Мы прислушиваемся к вашим отзывам.
-
Новости продуктовУ разработчиков Android есть множество вариантов выбора агентов, больших языковых моделей (LLM), инструментов и интерфейсов командной строки (CLI), которые можно использовать для разработки приложений. Наша цель – помочь вам создавать красивые и качественные приложения для Android, независимо от того, как вы это делаете.
Simona Milanovic • Время на чтение: 4 минуты -
Новости продуктовМы постоянно расширяем возможности платформы подписок в Google Play, чтобы помочь вам развивать бизнес, адаптироваться к новым бизнес-моделям и привлекать пользователей.
Sheenam Mittal • Время на чтение: 4 минуты -
Новости продуктовВ прошлом году мы открыли Android Studio для любых моделей ИИ. Сегодня мы делаем следующий шаг и добавляем поддержку агентов для написания кода.
Matthew Warner • Время на чтение: 3 минуты
Получайте свежие новости о разработке приложений для Android на свою электронную почту каждую неделю.