TGTGInsighttelegram intelligenceLIVE / telegram public index
Retour aux chaînes
Android Broadcast avatar

TGINSIGHT CHAT

Android Broadcast

@android_broadcast

Technologies

Подборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab#MQRZR

Abonnés1.4万Abonnés actuels de la chaîne
Posts indexés1,000Nombre de posts indexés
Portée récente76,180Somme des vues récentes
Posts récents

Posts récents

Tag : #android · 490 posts

当前筛选 #android清除筛选

🔨Play Billing Lab — крутой инструмент от Google, который поможет быстро внедрить и протестировать покупки в Android-приложениях без лишних сложностей. Теперь не нужно ломать голову над тестированием подписок или внутренних покупок вручную. Play Billing Lab позволяет: ✅ Создавать и управлять тестовыми покупками ✅ Легко симулировать разные сценарии оплаты ✅ Быстро находить ошибки интеграции Play Billing Library ✅ Проверять поведение приложения при отмене подписок, возобновлении и других сценариях И всё это — без реальных платежей и рисков для пользователей. Приложение прошло мимо меня, а вы уже пользовались этим инструментом? Делитесь впечатлениями и опытом в комментариях! #android#googleplay

7,070 views

Мы с вами говорили про отличия между платформами, но что говорить о мультиплатформе, если даже на разных Android-устройствах могут быть отличия в поведении, и явным рекордсменом по количеству особенностей являются устройства Xiaomi 🧡 Сегодня поговорим про регулярные выражения и букву ё. Кто ее только не отменял, но Xiaomi пошли дальше всех. К нам прилетел баг, что при введении ФИО буква ё не проходит валидацию по регулярному выражению. Первое, что приходит в голову, это, что мы написали кривой regex, ведь на самом деле, если использовать такое регулярное выражение ^[а-яА-Я]*$ то буква ё не попадает в этот диапазон и нужно определять ее отдельно, но нет, дело было не в этом. Дальше мы подумали, а что если клавиатура на Xiaomi использует какой-то другой символ ё и мы оказались правы. Действительно стандартная клавиатура использовала \u00eb символ юникода вместо \u0401 Все дело в клавиатуре, которая выбрана по умолчанию, если поменять клавиатуру на Gboard, то все будет окей. Так что перед проверкой данных нам пришлось делать замену данного символа, чтобы пройти валидацию и на бекенде 👍 Давайте порадуемся за Семëна с Xiaomi, теперь у него все будет хорошо 🫡 #Android#Regex#Xiaomi

6,210 views

🚀Jetpack Credentials 1.5.0 позволяют переносить учетные данные на новое Android-устройство. Google выпустила обновленную библиотеку Jetpack Credentials 1.5.0, и вот главные изменения, которые вам стоит знать: 🤖Вторичный интерфейс для выбора учетных данных Теперь при использовании Credential Manager API вы можете связать запрос получения учетных данных (GetCredentialRequest) с конкретным UI-элементом вашего приложения (например, поле логина или пароля). В результате, после того как пользователь закроет основной селектор и перейдет к заполнению полей вручную, он увидит дополнительные предложения учетных данных прямо на клавиатуре или в выпадающем списке. Это значительно улучшит UX вашего приложения и облегчит процесс входа. 🤖Восстановление учетных данных (Restore Credentials) Новый тип RestoreCredential позволяет автоматически переносить учетные данные пользователя со старого устройства на новое при настройке Android. Если пользователь выберет ваше приложение для переноса, ему не придется заново вводить данные — все произойдет автоматически. Подробности тут. Как здорово, что такие возможности появляются, но их проблема — полагаться на разработчиков, которые вряд ли станут затягивать это API. #android#jetpack#backup

6,720 views

🚀Jetpack Room 2.7.0 RC02 с фиксами Всё также идет подготовка к первому стабильному релизу Room с поддержкой KMP, самые важные: 🔥 Исправлено падение компилятора с NPE при обработке не JVM исходников через KSP 🛠 Исправлены Авто Миграции при добавление новой колонки в FTS таблице #android#jetpack#room#sql#kmp

6,570 views

🚀Jetpack Core i18n 1.0 - библиотека для качественной интернационализации приложения Google представила новую библиотеку c фокусом на 2 основных областях: 👉 Форматирование даты и времени, следуя лучшим практикам, опираясь на настройки пользователя и предоставляя доступ на новых и старых версиях Android 👉 Backport android.icu.text.MessageFormat - API для подготовки строк для показа пользователю с опциональными аргументами 👉 Библиотека будет портировать новые i18n API на старые версии Android #android#jetpack

7,120 views

‼️Vulkan становится обязательным для Android В рамках Game Developer Conference Google объявила что все чипы, которые будут выходить с Android 17+ (выйдет летом 2026 года) как первый релиз будут обязаны поддерживать Vulkan API 1.4. Вендоры при выпуске устройств с Android 17+ (не обновления) должны будут поддерживать ANGLE ANGLE (Almost Native Graphics Layer Engine) — это реализация OpenGL ES поверх Vulkan или Direct3D, используемая в Android для запуска приложения без поддержки Vulkan #android#android17

5,520 views

Сравнение Dagger 2, Dagger Hilt и Koin (4м) Быстрый рассказ про популярные DI для Android. Полезно тем, кто выбирает свой первый DI или сомневается в выборе #android#di

5,960 views

Hashtags

🚀Улучшили API для работы с Foldable Добавили возможность получения больше о физическом состоянии складного устройства. Новое API WindowInfoTracker.supportedPostures позволит понять поддерживает ли устройство режим tabletop (устройство частично сложено, складной экран разделён на 2 зоны) val currentSdkVersion = WindowSdkExtensions.getInstance().extensionVersion val message = if (currentSdkVersion >= 6) { val supportedPostures = WindowInfoTracker.getOrCreate(LocalContext.current).supportedPostures buildString { append(supportedPostures.isNotEmpty()) if (supportedPostures.isNotEmpty()) { append(" ") append( supportedPostures.joinToString( separator = ",", prefix = "(", postfix = ")")) } } } else { "N/A (WindowSDK version 6 is needed, current version is $currentSdkVersion)" } #jetpack#android#foldable

5,440 views

🤖Лимиты памяти в Android: как они работают и можно ли их обойти? В Android каждому приложению выделяется ограниченный объем оперативной памяти и это может стать неожиданной проблемой для разработчиков. Разберём, какие лимиты существуют и как на них можно повлиять. Какие есть лимиты? 1. Heap Size (размер кучи) для кода, исполняющегося в JVM - Android ограничивает объём памяти, доступный одному процессу (приложение может иметь их несколько). - Лимит зависит от устройства: размера его оперативной памяти, разрешения и размера экрана, версии ОС и прочих характеристик. - Узнать доступный объём можно так: val maxMemoryMb = Runtime.getRuntime().maxMemory() / (1024 * 1024) Log.d("MemoryInfo", "Max heap size: ${maxMemory}MB") 2. Large Heap Mode - Можно попросить систему выделить больше памяти через задание в в AndroidManifest android:largeHeap="true", но увеличение не гарантируется. Узнать доступный размер можно так: val activityManager = getSystemService<ActivityManager>() val largeMemoryClass = activityManager.largeMemoryClass Log.d("MemoryInfo", "Large Heap: ${largeMemoryClass}MB") Для Pixel 9 Pro XL с 16 Гб оперативной памяти стандартный лимит - 512 Мб, а c флагом large heap - 1 Гб. Google Play никак не ограничивает вас в выставлении этого флага и сможете смело опубликоваться, но использовать опцию без явной причины не стоит! Как можно использовать больше памяти? ✅Запуск нескольких процессов Каждый процесс имеет свой heap limit. Можно вынести часть логики в сервис с android:process=":extra_process". Каждый Android компонент связан с определённым процессом и динамически из кода создать/задать не получится. ✅NDK (Native Code, C++) Обход heap-лимитов возможен через выделение памяти в C++: void* bigMemory = malloc(500 * 1024 * 1024); // 500MB Но при этом важен контроль утечек памяти. ✅Перенос части нагрузки на видеопамять Можно использовать GPU для хранения и обработки данных, например: - Текстуры и буферы в OpenGL/Vulkan GLuint buffer; glGenBuffers(1, &buffer); glBindBuffer(GL_ARRAY_BUFFER, buffer); glBufferData(GL_ARRAY_BUFFER, size, data, GL_STATIC_DRAW); - Аппаратное декодирование видео через MediaCodec val decoder = MediaCodec.createDecoderByType("video/avc") - Использование Hardware Bitmaps для рендеринга изображений val options = BitmapFactory.Options().apply { inPreferredConfig = Bitmap.Config.HARDWARE } val bitmap = BitmapFactory.decodeResource(resources, R.drawable.image, options) ❌Злоупотребление Large Heap Запрос большого heap-а не даёт гарантий – Android всё равно ограничит память при нехватке ресурсов. Некоторые производители вовсе игнорируют этот флаг из манифеста #android#подкапотом

6,320 views

🔨AI Assistant от JetBrains теперь и в Android Studio Плагин предоставит вам AI-функции для автодополнения, пояснения кода, рефакторинга, генерации сообщений к коммитам и многого другого. Из России и Беларуси сервис работать не будет, но если вы настроите, то сможете использовать и бесплатный Gemini. Скорее всего, он будет лучше интегрирован. Кроме того, сервис платный, даётся 7 дней пробного периода, что кажется очень мало для полноценной проверки. #android#androidstudio#jetbrains#ai

5,770 views

🤖ServerSocket для IPC в Android и примеры межпроцессного взаимодействия (6 мин) Разработчик решил разобраться, как организовать общение между браузером и Android-приложением для передачи данных. В поисках удобного решения он обратил внимание на ServerSocket — простой и гибкий способ локального взаимодействия без лишних сложностей. Что из этого вышло, читайте в статье. Практическое применение статья будет иметь для малого количества разработчиков, но для лучшего понимания Android ОС и работы её принципов однозначно сделает вас сильнее. #android#подкапотом

6,350 views
12•••10•••20•••30•••3233343536•••4041