#AndroidStudio #SQLite #Room
Database Inspector - A live database tool we’ve been waiting for!
Android Studio 4.1 Canary 5 порадовала нас новым инструментом - Database Inspector.
В статье вы найдете разбор возможностей этого инструмента:
👉 Получение доступа к БД
👉 Модификация и отладка БД
Database Inspector - A live database tool we’ve been waiting for!
Android Studio 4.1 Canary 5 порадовала нас новым инструментом - Database Inspector.
В статье вы найдете разбор возможностей этого инструмента:
👉 Получение доступа к БД
👉 Модификация и отладка БД
Medium
Database Inspector
Creating and managing local databases is a core component of most mobile apps. But whether you’re using SQLite directly or through the…
#SQLite #Security #Room
Securing a Room Database With Passcode-Based Encryption
Обеспечение безопасности данных пользователя важно для любого приложения. Если в вашем приложении есть экран с кодом, значит пользователю есть что защищать. Поэтому берите ключ, который вводит пользователь и шифруйте им данные пользователя.
В статье вы найдёте как шифровать базу данный SQLite, и в случае когда у вас используется Room.
Securing a Room Database With Passcode-Based Encryption
Обеспечение безопасности данных пользователя важно для любого приложения. Если в вашем приложении есть экран с кодом, значит пользователю есть что защищать. Поэтому берите ключ, который вводит пользователь и шифруйте им данные пользователя.
В статье вы найдёте как шифровать базу данный SQLite, и в случае когда у вас используется Room.
Medium
Securing a Room Database With Passcode Based Encryption
Using available Java APIs
#SQLite #Performance
Android Room Hidden Costs
При использовании Room Android разработчики зачастую использую реактивные стримы (RxJava, Coroutines Flow) для получения всех изменений в данных. Важная особенность этого процесса, что при вставке любых данных выполняется повторный запрос в БД. В статье разбирается как можно оптимизировать это.
Полноценно сделать это не получилось, также автор не разобрал что будет в случае выполнения транзакций.
Android Room Hidden Costs
При использовании Room Android разработчики зачастую использую реактивные стримы (RxJava, Coroutines Flow) для получения всех изменений в данных. Важная особенность этого процесса, что при вставке любых данных выполняется повторный запрос в БД. В статье разбирается как можно оптимизировать это.
Полноценно сделать это не получилось, также автор не разобрал что будет в случае выполнения транзакций.
#SQLite
Полнотекстовый поиск FTS3, FTS4 и FTS5 в Android
Full Text Search (FTS) - инструмент, который позволит вам эффективно искать данный в SQLite БД. Одной из явных отличительных особенностей ее является поддержка Unicode, что позволяет делать текстовый поиск не только в латинице
В статье разбирается:
👉 как работать с FTS в Android
👉 что происходит под капотом (виртуальные таблицы)
👉 сравнение различных версий FTS
👉 интеграция FTS 5 через отдельную библиотеки (придется отдельно подключать SQLite)
Полнотекстовый поиск FTS3, FTS4 и FTS5 в Android
Full Text Search (FTS) - инструмент, который позволит вам эффективно искать данный в SQLite БД. Одной из явных отличительных особенностей ее является поддержка Unicode, что позволяет делать текстовый поиск не только в латинице
В статье разбирается:
👉 как работать с FTS в Android
👉 что происходит под капотом (виртуальные таблицы)
👉 сравнение различных версий FTS
👉 интеграция FTS 5 через отдельную библиотеки (придется отдельно подключать SQLite)
#Room #SQLite
Room auto-migrations
В следующей версией Room (2.4.0) появится использовать автоматическую миграции при изменении структуры БД. Поддерживаются простые случаи такие как обновление колонки и удаление/добавление таблицы, а для более сложных вам надо будет указать какие изменения произошли.
В статье разбираются все особенности работы новой возможности будущей версии Room
Room auto-migrations
В следующей версией Room (2.4.0) появится использовать автоматическую миграции при изменении структуры БД. Поддерживаются простые случаи такие как обновление колонки и удаление/добавление таблицы, а для более сложных вам надо будет указать какие изменения произошли.
В статье разбираются все особенности работы новой возможности будущей версии Room
#SQLite #Room
Используем join в SQLite-запросах Room для android
Демонстрация работы JOIN запросов, поддержка которых появилась в Room 2.4.0-alpha02
Используем join в SQLite-запросах Room для android
Демонстрация работы JOIN запросов, поддержка которых появилась в Room 2.4.0-alpha02
На сайте developers.android.com появился раздел с лучшими практиками для высокой производительности SQLite:
👉 Выставляем настройки SQLite (тут)
👉 Правильно проектируйте таблицы с лучшими практиками (тут)
👉 Правильно делайте запросы в БД (тут)
👉 Анализируйте с помощь тулинга работу SQLite (тут)
#sqlite #performance
👉 Выставляем настройки SQLite (тут)
👉 Правильно проектируйте таблицы с лучшими практиками (тут)
👉 Правильно делайте запросы в БД (тут)
👉 Анализируйте с помощь тулинга работу SQLite (тут)
#sqlite #performance
Если вы используете Room, то я рекомендую вам почитать статью (EN, 6 мин, ссылка без VPN) про то как устроена эта библиотека: вставка, обновление, удаление и получение данных из БД.
#sqlite #jetpack
#sqlite #jetpack
Улучшения SQLIte. Новое API для улучшения чтобы использовать больше возможностей движка SQLite:
👉 beginTransactionReadOnly() - транзакции только для чтения
👉 createRawStatement() - выполнение сырых SQL запросов
👉 getLastChangedRowCount() - количество строк которые были добавлены, обновлены, удалены
👉 getLastInsertRowId() - id посленей добавленой строки
👉 getTotalChangedRowCount() - общее количество измененных строк в рамках текущего сессии Базы Данных
#android15 #sqlite
👉 beginTransactionReadOnly() - транзакции только для чтения
👉 createRawStatement() - выполнение сырых SQL запросов
👉 getLastChangedRowCount() - количество строк которые были добавлены, обновлены, удалены
👉 getLastInsertRowId() - id посленей добавленой строки
👉 getTotalChangedRowCount() - общее количество измененных строк в рамках текущего сессии Базы Данных
#android15 #sqlite
На сайте Android Developers почитайте рекомендации про работе с SQLite:
👉 Конфигурация БД
👉 Эффективное объявление схемы БД
👉 Ускорение запросов в БД
👉 Инструменты для анализа
#sqlite #performance
👉 Конфигурация БД
👉 Эффективное объявление схемы БД
👉 Ускорение запросов в БД
👉 Инструменты для анализа
#sqlite #performance
🔥 Первая альфа Jetpack SQLite 2.5.0 с поддержкой Kotlin Multiplatform: нативно Android и iOS, а остальные платформы через собранный из исходников SQLite (
Добавлены новые API: SQLiteDriver, SQLiteConnection и SQLiteStatement для установки связи с БД и выполнением запросов
#sqlite #kmp #jetpack #jetpackupdate
bundled
версия)Добавлены новые API: SQLiteDriver, SQLiteConnection и SQLiteStatement для установки связи с БД и выполнением запросов
#sqlite #kmp #jetpack #jetpackupdate
Стартанула разработка версии 2.7.0 и это становится главной новостью.
Важные факты:
👉 Переход на генерацию на основе KSP по умолчанию и генерация Kotlin кода
👉 KAPT и APT будут генерировать Java код
👉 Переход на новые мультиплатформенные API из Jetpack SQLIte
👉 Удалили KTX артефакт так как основной артефакт будет полностью на Kotlin
👉 Все функции Room интерфейсов должны содержать либо suspend функции или возвращать Flow
Что не работает
Больше информации о Room в KMP читайте в документации
#sqlite #room #jetpack #jetpackupdate #kmp
Please open Telegram to view this post
VIEW IN TELEGRAM
Статья(12м) с изложением подхода как сделать трекинг скорости работы методов Room. Автор использует Trace и создание обертки на Dao через Java Dynamic Proxy.
#room #sqlite #оптимизация #производительность
#room #sqlite #оптимизация #производительность
Разработчик из мессенджера eXpress поделилась (15м) как они добивались минимальной задержки между нажатием кнопки отправки сообщения и показом этого в ленте сообщений. Одной из частей послужила оптимизация работы с БД SQLite черз Room:
🚀 Получать только необходимые столбцы (получили ускорение до 9 раз в отдельных сценариях)
🚀 Использование специальны операторов SQLite (например, EXISTS)
🚀 Использование транзакций (INSERT и UPDATE ускорили в несколько раз)
🚀 Обновление нескольких полей в рамках одной UPDATE операции
🚀 Игнорирование операций без результата (например, вставки пустого List)
Больше полезных советов в статье
#sqlite #оптимизации #room
🚀 Получать только необходимые столбцы (получили ускорение до 9 раз в отдельных сценариях)
🚀 Использование специальны операторов SQLite (например, EXISTS)
🚀 Использование транзакций (INSERT и UPDATE ускорили в несколько раз)
🚀 Обновление нескольких полей в рамках одной UPDATE операции
🚀 Игнорирование операций без результата (например, вставки пустого List)
Больше полезных советов в статье
#sqlite #оптимизации #room
Библиотека мигрирует на Kotlin 2.0+ и весь проект должен будет тоже использовать её. Хотите KMP - точно надо будет мигрировать на Kotlin 2.0
Это последний альфа релиз и дальше будет Beta и уже совсем скоро релиз.
#android #kmp #jetpack #jetpackupdate #sqlite
Please open Telegram to view this post
VIEW IN TELEGRAM
Это позволит использовать единую версию SQLite на всех устройствах и получать преимущества в скорости работы от новых функций. Причем эта возможность доступна для всех поддерживаемых платформ, которые поддерживает Room: Android, iOS, Desktop.
🔗 Подробности в документации
#android #sqlite #room #jetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
Выполнение запросов SQLite на множестве потоков может привести к замедлению вашего приложения 🤯
Разработчик делает классный разбор того, как работают запросы SQLite в Android и как их оптимизировать. Статья - параллельность в Android SQLite (EN,11м)
Основные выводы:
👉 Используйте забандленную версию SQLite (добавит около 1 Мб за каждый ABI)
👉 Если работает с несколькими БД через ROOM, то задавайте CoroutineContext или Executor для выполнения запросов
👉Больше полезного в статье, почитай. Она того стоит
#android #room #sqlite #jetpack
Разработчик делает классный разбор того, как работают запросы SQLite в Android и как их оптимизировать. Статья - параллельность в Android SQLite (EN,11м)
Основные выводы:
👉 Используйте забандленную версию SQLite (добавит около 1 Мб за каждый ABI)
👉 Если работает с несколькими БД через ROOM, то задавайте CoroutineContext или Executor для выполнения запросов
👉
#android #room #sqlite #jetpack
Please open Telegram to view this post
VIEW IN TELEGRAM