Один из самых удобных способов записать данные это использование готовых форматов, такие как JSON или YAML.
Из плюсов такого подхода стоит отметить вот что:
🔸 готовый, повсеместно используемый и поддерживаемый формат
🔸 простой и понятный файл, удобочитаемый для человека
🔸 можно легко редактировать в любом текстовом редакторе без специальных программ и библиотек
Но есть и минусы
🔹 затраты времени при записи файла (кодирование данных в нужный формат строки)
🔹 затраты времени при чтении файла (декодирование данных в Python объекты)
🔹 размер файла увеличивается из-за разметки данных (скобки, запятые, переносы, отступы...)
🔹 перед записью все данные должны быть помещены в память в полном объёме (не всегда)
🔹 при чтении необходимо считать весь файл в память и только потом декодировать данные
Если нужно писать немного данных в несколько файлов, то затраты по времени не ощутимы. Обычно это файлы конфига или какие-либо метаданные. Это отличный вариант под такие задачи.
Есть и другой поход к записи файлов - это бинарные файлы. Используется, когда данных достаточно много и никто их не собирается читать глазками😳.
🔸 очень быстрая запись
🔸 чтение значительно быстрей чем JSON, YAML итд
🔸 размер файла значительно меньше, так как нет разметки
🔸 можно записывать данные по мере поступления не загружая всё в память
🔸 можно извлечь любую часть данных независимо
Из минусов
🔹 нужно определить свой формат записи данных (если не используете готовую спецификацию определённого формата)
🔹 не получится открыть файл и визуально понять что там записано, а для чтения файла потребуется знать его спецификацию.
🔹 не так-то просто создать такой файл без специальной библиотеки
В таком виде удобно записывать большой массив любых однородных данных. Например, мониторинг валютной биржи или кэшированная анимация 3D геометрии.
(Это не означает что нельзя записать данные разного типа, просто это будет не так удобно)
Представьте себе JPG-картинку. По сути это немного мета-информации и большой массив пикселей. Тоже самое со звуком или видео файлом. Поэтому, если вы попробуете открыть картинку в текстовом редакторе вы увидите что-то вроде такого
f15d cd29 a564 4578 ...
09e2 9bc4 a696 1253 ...
84e9 4de1 3b23 c24a ...
2534 5161 28e0 709d ...
...
Это и есть записанные байтики. И для их чтения требуется определённый софт который знает что с ними делать. Под каждый тип файла.
К чему это я? Читайте в следующем посте...
#tricks#basic
🤖Android принудительно запрещает делать запросы в сеть в фоне вне жизненного цикла приложения
Теперь если вы делаете сетевой запрос при уходе приложения в фон, когда вы не используете WorkManager или Foreground Service, то такой запрос будет остановлен с исключением UnknownHostException (стандартно выбрасывается если нет сети или сервер невозможно найти) или другой IOException. ✔️ Ранее, пока был жив процесс приложения, можно было успеть выполнить запросы.
Я отмечу изменений как положительное для пользователей и общего состояния устройства. Google форсирует переход разработчиков API, предназначенные для определенных целей и слежением за выполняемой работой.
Изменение применяется на Android 15 и выше для всех приложений с targetSdk=35+
Источник тут
#android15
🤖Google повысила требования сертификации для устройств на Android 15
Теперь все устройства на Android 15 и выше должны иметь не меньше 32 Гб памяти на диске и не меньше 75% из них должны быть свободно под data раздел
#android15
📹 НОВОЕ ВИДЕО. Разбор возможностей меню разработчика на Android устройстве
Меню Android разработчика таит в себе много полезных настроек, которые нужны, чтобы качественно протестировать работу приложения на устройстве и сделать то, что не получится делать из Android Studio.
Советую посмотреть всем разработчикам и специалистам по тестированию
#android#android15
New Release of Project Infinity X v2.9 for Xiaomi 12T Pro / Redmi K50 Ultra (diting) is Up!
By Jezzay97
▫️ Variant: GAPPS (Google Apps Included)
▫️ File: Project_Infinity-X-2.9-diting-20250704-2051-GAPPS-OFFICIAL.zip
▫️ Size: 2.43 GB
▫️ Date: 5th July 2025
▫️ MD5: ace3b92d71404269f4ca53fac267aeed
▫️ Donate: PayPal | Ko-fi
⭐ Wanna have a look at some ROM Screenshots? - Click Here
💬 Reach Support If have any queries - Click Here
#Android15#diting@ProjectInfinityX
New Release of Project Infinity X v2.9 for Xiaomi 12T Pro / Redmi K50 Ultra (diting) is Up!
By Jezzay97
▫️ Variant: GAPPS (Google Apps Included)
▫️ File: Project_Infinity-X-2.9-diting-20250618-1602-GAPPS-OFFICIAL.zip
▫️ Size: 2.47 GB
▫️ Date: 19th June 2025
▫️ MD5: 5f8dfadb619f83c771a9edd284df4824
▫️ Donate: PayPal | Ko-fi
⭐ Wanna have a look at some ROM Screenshots? - Click Here
💬 Reach Support If have any queries - Click Here
#Android15#diting@ProjectInfinityX
New Release of Project Infinity X v2.9 for Xiaomi 12T Pro / Redmi K50 Ultra (diting) is Up!
By Jezzay97
▫️ Variant: GAPPS (Google Apps Included)
▫️ File: Project_Infinity-X-2.9-diting-20250611-0235-GAPPS-OFFICIAL.zip
▫️ Size: 2.48 GB
▫️ Date: 11th June 2025
▫️ MD5: 71993dd343f141461a2ac7dbd3fb11b5
▫️ Donate: PayPal | Ko-fi
⭐ Wanna have a look at some ROM Screenshots? - Click Here
💬 Reach Support If have any queries - Click Here
#Android15#diting@ProjectInfinityX
👩💻Android 15 Official Developer Preview (Beta -1) is here for Phone (2)!
❗️DIsclaimer:
- This build of Android 15 is still in an early stage of development and some features might be missing or not working. The build is primarily for developers and other advanced users. Installation is not recommended for ordinary users.
- This is not Nothing OS!
- Your device storage will be formatted, and all of your data will be erased. Take backup before proceeding!
- Users must be on NOS 2.5.5 (Build No: Pong-U2.5-240418-1248 OR Pong-U2.5-240419-0138 - IND/EEA/GLO/JPN) before installation
- Once the rollback package is used, reverting to Developer Preview is not possible.
- Future betas are exclusive to pixel devices only.
- Bootloader unlocked users can rollback / update by flashing the stock rom directly via fastboot
⚠️ Issues:
- Fingerprints can’t be registered
- Face unlock unavailable
- No pre-installed Nothing X/Weather/Launcher/Recorder/Widgets
🔽 Download: Incremental update over 2.5.5 Build No. [ Pong-U2.5-240418-1248 | Pong-U2.5-240419-0138 ] | Rollback Package
✍️ Feedback Link: Here
⚙️ Instructions: Here
🔖 Tags: #Android15#Android#Nothing#NothingPhone2
🔔 Updates: @NothingPhone2Updates
💬 Chat: @NothingPhone2
🤖Важность HDR в приложениях для передачи естественных цветов
Почитал интересную статью от Google про важность использования HDR. Самое важное - HRD не только про яркость, а именно про правильность передачи цветов в приложениях, особенно когда дело касается фото.
В Android 15 появилось API для контроля того смешивания HDR и SDR контента:
// Требуется, чтобы Windows учитывало желаемый HDR headroom.
// Обратите внимание, что эквивалентный API в SurfaceView НЕ требует
// COLOR_MODE_HDR для ограничения headroom,
// если на SurfaceView отображается HDR-контент.
window.colorMode = ActivityInfo.COLOR_MODE_HDR
// разные значения headroom могут
// использоваться в зависимости от
// желаемого headroom контента
// И особенностей UI-дизайна приложения.
window.desiredHdrHeadroom = when {
/* только SDR */ -> 0f
/* Смешанный, в основном SDR */ -> 1.5f
/* Смешанный, в основном HDR */ -> 3f
/* только HDR */ -> 5f
else -> 0f
}
#android#hdr#android15
👩💻Android 15 Official Developer Preview | Beta 2 | Nothing Phone (2)
❗️DIsclaimer:
- This build of Android 15 is still in an early stage of development and some features might be missing or not working. The build is primarily for developers and other advanced users who wanna test their app compatibility with A15. Installation is not recommended for ordinary users.
- This is not Nothing OS!
- Your device storage will be formatted, and all of your data will be erased. Take backup before proceeding!
- Once the rollback package is used, reverting to Developer Preview is not possible.
- Future betas are exclusive to pixel devices only.
- Bootloader unlocked users can rollback / update by flashing the stock rom directly via fastboot
⚠️ Issues:
- Using recorder to play audio keeps crashing
- Settings crash sometimes
- No pop-up notification when low battery (<10%)
- No Glyph Menu in Settings
- No vibration effect
- Face unlock/Fingerprint/App Locker/Clone apps/Pop-up view does not work
🔽 Downloads: Incremental update over : NOS 2.5.6 | Dev Preview (Beta- 1)
⚙ Rollback Package: Here
✍️ Feedback Link: Here
⚙️ Instructions: Here
🔖 Tags: #Android15#DeveloperPreview#NothingPhone2
🔔 Updates: @NothingPhone2Updates
💬 Chat: @NothingPhone2
Android 15 is finally here! 🎉 Get ready for a wave of new ports, including hyperOS2.0! 📱 I will also porting all moto, one ui, Oxygen/ColorOS as soon as possible when they will arrive. And guess what? They'll all be non-root! 🙌 Share the news and help us keep the project alive by sending stars! 🌟#Android15#NewPorts#NonRoot