Media is too big
VIEW IN TELEGRAM
Виртуальная машина ART появилась в 5.0, а затем прошла огромную эволюцию и улучшается каждый релиз ОС. В новом видео рассказываю про то, как прокачали компиляцию кода приложения, что
Все видео для платных подписчиков можно найти тут
Если вам нравится что мы всей командой делаем для вас - ваше поддержка деньгами очень для нас важна.
#AndroidBroadcast #Android #AndroidDev #подкапотом
Please open Telegram to view this post
VIEW IN TELEGRAM
👍20🤯6❤1
Media is too big
VIEW IN TELEGRAM
#android16 #android #androiddev
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔15👍9🏆3🤯2
where: Элегантное ограничение типов для чистоты и безопасностиКак часто в Android-разработке вы видели сомнительные
as-приведения? 🤔Вот пример, который недавно попался мне на глаза:
class Sample(private val activity: Activity) {
fun doSomething() {
// Опасно! Может упасть с ClassCastException,
// если activity не реализует LifecycleOwner
(activity as LifecycleOwner).lifecycle.addObserver(...)
}
}Опустим тот факт, что здесь стоит использовать слабую ссылку (
WeakReference) на Activity. Меня больше смутила необходимость вручную приводить Activity к LifecycleOwner.Да, в современной Android-разработке
AppCompatActivity и FragmentActivity реализуют этот интерфейс. Но наша цель — писать чистый и стабильный код, который не полагается на слепую веру, а гарантирует безопасность на уровне типов.💡Решение: Ограничение типов с помощью
whereВ Kotlin мы можем использовать условие
where для универсальных параметров, чтобы указать: «класс A должен быть одновременно и Activity, и LifecycleOwnerclass Sample<A>(private val activity: A)
where A : Activity,
A : LifecycleOwner {
fun doSomething() {
// Теперь activity можно использовать как LifecycleOwner
// БЕЗОПАСНО и без приведения типов
activity.lifecycle.addObserver(...)
}
}
Этот же подход отлично работает и для функций:
fun <A> doSomethingWith(activity: A)
where A : Activity,
A : LifecycleOwner {
// Полная типобезопасность
activity.lifecycle.addObserver(...)
}
В чем выигрыш?
Безопасность: Компилятор гарантирует, что в класс
Sample или функцию doSomethingWith можно передать только объект, который удовлетворяет обоим условиям:ClassCastException в рантайме.as.Используйте силу системы типов Kotlin на полную! Это делает код не только чище, но и стабильнее. 💪
#kotlin #android #androiddev
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍161🔥36❤22
Media is too big
VIEW IN TELEGRAM
Узнайте, как ИИ-агент в Android Studio может значительно повысить вашу эффективность и качество приложений. Познакомьтесь с практическими возможностями на базе искусственного интеллекта: интеллектуальным преобразованием кода, автоматическим обновлением версий и новым набором инструментов для работы с интерфейсом, которые помогут создавать лучшие приложения быстрее.
#androidstudio #ai #ии #android #androiddev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥4❤3
Работаете с WorkManager? Тогда вам точно пригодится встроенный в Android Studio инструмент — Background Task Inspector. Это ваш главный помощник для визуального мониторинга и отладки фоновых задач.
Что вы видите в инспекторе:
- Все WorkManager задачи в одном месте
- Текущие статусы: Running, Enqueued, Failed, Succeeded
- Детальную информацию о каждом воркере
Особенно мощно инструмент работает с цепочками задач:
// Например, у вас есть такая цепочка:
val workA = OneTimeWorkRequestBuilder<CleanupWorker>().build()
val workB = OneTimeWorkRequestBuilder<WaterColorFilterWorker>().build()
val workC = OneTimeWorkRequestBuilder<BlurEffectFilterColor>().build()
workManager
.beginWith(workA)
.then(workB)
.then(workC)
.enqueue()
Визуализация графа выполнения покажет:
- Какая задача завершилась успешно (Succeeded)
- Какая упала (Failed) и почему
- Как это повлияло на последующие задачи
Типичный сценарий отладки:
Видите статус «Enqueued»? Значит задача в очереди, но не запускается. Возможные причины:
- Ограничения не выполняются (нет сети, не заряжается устройство)
- Предыдущая задача в цепочке не завершилась
- Достигнут лимит параллельных задач
Преимущества использования:
- Экономия времени на логирование и отладку
- Наглядное представление сложных цепочек задач
- Быстрая диагностика проблем с выполнением фоновых операций
Инструмент уже ждет вас в Android Studio → View → Tool Windows → App Inspection → Background Task Inspector.
#AndroidStudio #Android #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤30👍8🤔1