Последняя публичная бета Дальше — релиз |
Эта статья является переводом второй половины вот этой: https://developer.android.com/preview/behavior-changes.html. Как всегда, я рекомендую читать оригинал.
Перевод первой половины: https://myachinqa.blogspot.com/2018/04/android-p-1.html
Теги сокетов
До Android P, если сокет был затеган методомsetThreadStatsTag()
, то при использовании binder
IPC с
ParcelFileDescriptor
контейнером для отправки сокета другому процессу, тег слетал.В Android P это поведение изменилось и теперь в этом сценарии тег сохраняется. Такое изменение может повлиять на оценки статистик сетевого трафика, если, например, получить их у метода
queryDetailsForUidTag()
. Чтобы вернуть старое поведение вам нужно вызвать untagSocket()
перед отправкой сокета другому процессу
.Сообщение о доступном объёме байтов в сокете
Если вызвать методavailable()
после shutdownInput(),
то будет возвращён 0
.Больше данных о сетях для VPN клиентов
До версии платформы ниже Android P классNetworkCapabilities
сообщал ограниченный набор данных для VPN. Например, сообщал TRANSPORT_VPN
, но не NET_CAPABILITY_NOT_VPN
. Из-за этого разработчикам было трудно понимать, приведёт ли использование VPN к расходу средств пользователя. К примеру, проверка NET_CAPABILITY_NOT_METERED
не определяла, поднят VPN на сети с оплатой трафика или же на безлимитной сети.Начиная с Android P, когда VPN вызывает метод
setUnderlyingNetworks()
, система просуммирует транспорты и свойства всех сетей, на которых запущено подключение и вернёт нормальную совокупность свойств этих сетей.