Вышла Android 17 Beta 4 – последняя запланированная бета-версия в этом цикле выпуска. Это важный этап в обеспечении совместимости приложений и стабильности платформы. В Beta 4 вы можете тестировать приложение в условиях, максимально приближенных к реальным, чтобы улучшить его интерфейс, обеспечить корректное отображение контента на весь экран или начать использовать новые API.
Подготовьте свои приложения, библиотеки, инструменты и игровые движки.
Если вы разрабатываете Android SDK, библиотеку, инструмент или игровой движок, вам необходимо подготовить обновления, чтобы у разработчиков приложений и игр не возникло проблем с совместимостью и они могли использовать новейшие функции SDK. Сообщите разработчикам, которые используют ваши SDK, если для полной поддержки Android 17 требуются обновления.
Для тестирования установите рабочую или тестовую версию приложения, в которой используется ваша библиотека или игровой движок, на устройство или эмулятор с 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 прозрачность сертификатов доступна, но приложениям нужно было включить ее.)
- Защита локальной сети. В приложениях, предназначенных для Android 17 или более поздней версии, доступ к локальной сети по умолчанию заблокирован. По возможности перейдите на инструменты выбора, обеспечивающие конфиденциальность, и используйте новое разрешение ACCESS_LOCAL_NETWORK для широкого и постоянного доступа.
- Усиление защиты фонового аудио. Начиная с Android 17, аудиофреймворк применяет ограничения на фоновые аудиовзаимодействия, включая воспроизведение аудио, запросы на аудиофокус и API изменения громкости. На основе ваших отзывов мы внесли некоторые изменения в бета-версию 2, в том числе добавили проверку targetSDK при применении ограничений на запуск служб переднего плана во время использования приложения и исключили аудиосигналы будильника. Подробная информация доступна в обновленном руководстве.
Ограничения на объем памяти для приложений
Чтобы сделать среду более стабильной и детерминированной для приложений и пользователей Android, мы вводим ограничения на объем памяти, используемой приложениями, в зависимости от общего объема ОЗУ устройства. В Android 17 ограничения установлены консервативно, чтобы определить базовые показатели системы и устранить экстремальные утечки памяти и другие отклонения до того, как они вызовут нестабильность всей системы, что приведет к задержкам в работе интерфейса, повышенному расходу заряда батареи и принудительному закрытию приложений. Мы ожидаем, что это изменение практически не повлияет на большинство сеансов в приложениях, но рекомендуем вам ознакомиться с советами по работе с памятью, в том числе по определению базового уровня.
В текущей реализации getDescription в ApplicationExitInfo будет содержать строку "MemoryLimiter", если ваше приложение было затронуто. Вы также можете использовать профилирование на основе триггеров с TRIGGER_TYPE_ANOMALY, чтобы получать дампы кучи, собранные при достижении лимита памяти.
Чтобы вам было проще находить утечки памяти, в Android Studio Panda добавлена интеграция LeakCanary непосредственно в Профилировщик Android Studio в качестве отдельной задачи, контекстуализированной в IDE и полностью интегрированной с исходным кодом.
Меньший объем потребляемой памяти напрямую влияет на плавность работы, время работы от батареи и удобство использования на всех типах устройств. Давайте вместе сделаем экосистему Android быстрее и надежнее!
Триггеры профилирования для отклонений в работе приложений
В Android появился сервис обнаружения аномалий на устройстве, который отслеживает ресурсоемкие процессы и потенциальные проблемы с совместимостью. Этот сервис интегрирован с ProfilingManager и позволяет приложению получать артефакты профилирования, активируемые определенными событиями, которые обнаруживает система.
Используйте триггер TRIGGER_TYPE_ANOMALY, чтобы обнаруживать проблемы производительности системы, например слишком большое количество вызовов Binder или чрезмерное использование памяти. Когда приложение превышает установленные операционной системой ограничения на использование памяти, триггер аномалий позволяет разработчикам получать дампы кучи для конкретного приложения, чтобы выявлять и устранять проблемы с памятью. Кроме того, при чрезмерном спаме в Binder триггер отклонений предоставляет профиль выборки стека для транзакций 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) }
Постквантовая криптография в Android Keystore
В Android Keystore добавлена поддержка алгоритма цифровой подписи 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, протестируйте его в средах непрерывной интеграции и сообщите о проблемах в системе отслеживания ошибок на странице отзывов.
- Проверьте, совместимо ли ваше приложение с Android 17 и затронут ли его изменения в этой версии ОС. Для этого установите приложение на устройство или эмулятор с Android 17 и тщательно протестируйте его.
Мы будем регулярно обновлять предварительные и бета-версии образов системы и SDK на протяжении всего цикла выпуска Android 17. После установки бета-версии вы будете автоматически получать по беспроводной сети все последующие предварительные и бета-версии.
Полную информацию вы найдете на сайте для разработчиков Android 17.
Присоединиться к обсуждению
Ваши отзывы – это самое ценное, что у нас есть. Если вы участник программы раннего доступа на канале Canary или разработчик приложений, тестирующий бета-версию 4, присоединяйтесь к нашим сообществам и оставляйте отзывы. Мы предлагаем вам новую музыку на основе ваших предпочтений.
-
Новости о продуктахСегодня на Саммите для разработчиков Android мы объявляем о широкой доступности многих инструментов и API, которые помогут вам преодолевать повседневные трудности и дадут больше гибкости при создании отличных приложений для Android.
Matthew McCullough • Время на чтение: 4 минуты -
Новости о продуктахAndroid Studio Rabbit 2 теперь стабильна и готова к использованию в рабочей среде. В этом выпуске представлены ключевые функции, которые помогут вам в разработке, например Bring Your Own Agent, новые функции XR Emulator, обновление LeakCanary, новый инструмент управления навыками агента, код-ревью с помощью ИИ и многое другое.
Matthew Warner • Время на чтение: 3 минуты -
Новости о продуктахПриложения, предназначенные для предстоящего выпуска Android, больше не смогут напрямую записывать данные в контакты с помощью разрешения WRITE_CONTACTS.
Roxanna Aliabadi Walker • Время на чтение: 6 минут
Получайте еженедельную рассылку с последними новостями о разработке для Android.