Android Broadcast – Telegram
Android Broadcast
14.4K subscribers
3.68K photos
368 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
#AndroidKTX #Drawing #Kotlin

Android Canvas APIs with Kotlin and KTX

Библиотека Android KTX значительно упрощает разработку приложений на Kotlin, предоставляя Kotlin расширения для API из Android SDK.

Одно из таких удобных расширений - расширения для Canvas API.

Давайте посмотрим на результаты работы с новым API.
Без Android KTX:
val translateCheckpoint = canvas.save()
canvas.translate(200f, 300f)
canvas.drawCircle(...)
val rotateCheckpoint = canvas.save()
canvas.rotate(45f)
canvas.drawRect(...)
canvas.restoreToCount(rotateCheckpoint)
canvas.restoreToCount(translateCheckpoint)

С Android KTX
canvas.withTranslate(200f, 300f) {
drawCircle(...)
withRotate(45f) {
drawRect(...)
}
}

Плюсы от использования Android KTX - более читабельный код и невозможность избежать ошибки с вызовами save/restore().
👍1
Есть ли нативный (С/С++) код в вашем Android приложении?
Final Results
27%
Да
70%
Нет
4%
Не уверен
#Debug #Native

Debugging Native Crashes in Android Apps

По статистике на декабрь 2018 года 100 самых популярных приложений были установлены 54 миллиарда раз из 85 из них содержат нативный код.

Хотите сделать конкурента таким приложением или статью часть их команды? Без знания C/C++ уже не обойтись с ростом навыков, но любому разработчику будет полезно знать как дебажить такой код.

В статье вы найдете руководство с чего начать поиск проблемы, когда ваше приложение падает на уровне нативного кода.
👍1
#StrcitMode #Performance

StrictModeCompat Library

Я реализовал библиотеку StrictModeCompat для удобной работы с StrictMode на всех версиях Android. Она позволяет безопасно вызывать любой метод аналогично тому, как это сделано в AndroidX. В статье ниже вы найдете описание проблемы и как подключить библиотеку к вашему проекту.
👍1
#Material #Design #BottomSheet

Hands-on with Material Components for Android: Bottom Sheet

Третья статья из серии о компонентах Material Design и как их использовать в Android. В текущей рассматривается Bottom Sheet:
👉 Виды Bottom Sheet
👉 Базисы использования
👉 BottomSheetBehavior
👉 Состояния Bottom Sheet и как его сохранить
👉 Оповещение об изменение состояния
👉 Кастомизация
👍1
#Rx #Library #RxJava

Rxify: Retry with Exponential Backoff in RxJava

Библиотека для всех любителей RxJava, которая позволяет повторять выполнение Observable, при появление ошибке с экспоненциальным таймаутом повторения.

Rxify Github Repo
👍1
#Marbel #Emulator

Android Emulator : Project Marble Improvements

Project Marble шагает по инструментарию разработчиков. Настала очередь рассказа изменений в эмуляторе. Разработчики жаловались на то, что Android эмулятор потребляет много системных ресурсов. Googleры решили уменьшить потребление CPU ресурсов. Результаты этой работы можно посмотреть в Android Emulator 28.1, который доступен в Canary канале.

Что именно было сделано:
1️⃣ Теперь устройства в эмуляторе по умолчанию работают от батареи (а не от зарядки). Это связано с тем, что большая часть сервисов оптимизирована для экономного расхода заряда батареи. Эти оптимизации работают только если устройство не заряжается.
2️⃣ Возможность поставить эмулятор на паузу. Это позволяет уменьшить расход ресурсов, когда вы не используете эмулятор, например во время правок кода. Используйте adb emu avd pause/resume для теста.
3️⃣ Снижение затрат на отрисовку. Теперь отрисовка стала эффективнее (график приведен ниже) и повышена частота кадров
4️⃣ Оптимизация IO операций на macOS. Это позволило здорово сократить нагрузку на CPU c ~10% до ~3%
5️⃣ Headless Build (запуск эмулятора без UI). Это функция пригодится тем кто использует эмуляторы на CI или вам не нужно тестировать UI. Она позволяет сократить потребление RAM на 100 Mb
👍2
Использование CPU эмулятором с автообновлением приложений и без
👍1
OpenGL ES FPS тест на эмуляторах 28.0.23 и 28.1.10
👍1
Сравнение использования CPU на macOS в эмуляторах 28.0.23 и 28.1.10
👍1
Сравнения потребления памяти обычным и headless эмулятором
👍1
#AOSP

AOSP Application Updates

Чистка референсных приложений в AOSP. Упрощены музыкальный плеер, календарь и калькулятор и теперь они выполняют самый простейший функционал, например мызукалтный плеер поддерживает только проигрывание одного трека. Причина проста - оно не поддерживаются, функции их не соответствуют современным требованиям. В будущем чистка может задеть и другие приложения.
👍1
#GoogleIO

Google I/O 2019 schedule was released

Опубликовано расписание сессий на предстоящем Google I/O. Исходя из его анализа можно понять что нас ждет:
🔥библиотека AndroidX.Camera, которая решит проблемы с особенностями работы на особенностях реализации на устройствах разных производителей
🔥подробности темной темы в Android Q
🔥библиотека для бенчмарков в AndroidX
🔥релиз Constraint Layout 2.0 и Motion Layout
🔥обновления в Arch Components
🔥Что было сделано в рамках Project Marbel - обещанной оптимизации работы инструментов разработчика и устранению багов

ВАЖНО: информация неточная и построена на моих предположениях из описания докладов.

К сожалению, пока в расписании не видно докладов о Fuchsia OS (может они появятся на сайте после громких анонсов на Keynote)б
👍1
Интересные доклады по моему мнению следующие:

What's New in Android

Android:
👉 Understanding Android Runtime (ART) for Faster Apps
👉 Best Practices for Using Sign-In for Android Apps
👉 Security on Android: What's Next
👉 What's New in the Android OS User Interface
👉 Moving Away from the Light with Android Q
👉 Best Practices for Using Text in Android
👉 Demystifying Android Accessibility Development
👉 Improve Digital Wellbeing: Google's Approach and Tips for Developers
👉 Extend Your Android App to the Google Assistant

Android Jetpack:
👉 Android Jetpack: What's New in Navigation
👉 Android Jetpack: Understand the CameraX Camera-Support Library
👉 What's New in Architecture Components
👉 What's New with ConstaintLayout
👉 Improving App Performance with Benchmarking

Architecture:
👉 Build a Modular Android App Architecture
👉 Build Apps for Foldable, Multi-Display, and Large-Screen Devices
👉 Build Testable Apps for Android
👉 Build Apps for the Next Billion Users

Tools:
👉 Best Practices in Using the Android Emulator
👉 What's New in Android Studio UI Design and Debugging Tools
👉 What's New in the Android Studio Build System
👉 Android Studio: Tips and Tricks
👉 Build Bigger, Better: Gradle for Large Projects

Design:
👉 Material Theming: Build Expressively with Material Components
👉 How Material Design Can Be Adopted and Measured for Product Success
👉 How to Design a Dark Theme Using Material

Google Play:
👉 What's New in Google Play
👉 What's New with Google Play Billing
👉 What's Next for Your App Bundle: Customizable App and Games Delivery
👉 Best Practices in Boosting Optimized App Installs on Google Play
👉 Improve Your App and Game Quality with Android Vitals

Kotlin:
👉 Understand Kotlin Coroutines on Android
👉 What's New in Kotlin on Android
👉 Kotlin on Android: Understand the Internals

Firebase:
👉 What's New in Firebase
👉 Cloud Firestore Data Modeling
👉 Engage and Keep Your Users in Your App with Firebase
👉 ML Kit: Machine Learning for Mobile with Firebase

Machine Learning:
👉 What’s New in Android Machine Learning
👉 ML Kit x Material Design: Design Patterns for Mobile Machine Learning
👉 Introducing Google Coral: Building On-Device AI
👉 AI for Mobile and IoT Devices: TensorFlow Lite
👉 Machine Learning on Your Device: The Options
👍1
#FFmpeg #Audio #Performance

Using FFmpeg for faster audio decoding

Статья о том как использовать FFmpeg на Android. По сравнению со стандартными доступными средствами в Android NDK, FFmpeg позволяет повысить скорость обработки аудио в 10 раз (протестировано на Google Pixel XL).
👍1
#MobilePeople #Podcast #GoogleIO #EPAM

EPAM активно поддерживает около ITшные сообщества разработчиков по разным направлениям. Одно из таких сообществ - Mobile People. В рамках этой инициативы зародился подкаст Mobile People Talks - подкаст про мобильную разработку с взглядами из различным направлений.

Я очень рад что смог стать частью этого (спасибо Данису Тазетдинову за приглашение).

В первом выпуске мы обсудили предстоящий Google I/O: Android Q, куда все движется, чего каждый из нас ждет и как всегда похоливарили 😁
👍1
Какую библиотеку для загрузки изображений используете вы в своих последних приложениях?
Final Results
11%
0%
Facebook Fresco (frescolib.org)
0%
Другая библиотека
2%
Androiв SDK only
6%
Не работаю с изображениями
👍1
#Glide #Image #Cache

Best strategy to load images using Glide

Glide - это довольно популярное решение для загрузки изображений. Я использую именно за его широкие возможности, поддержку добавления загрузки и кэширования собственных типов данных и широкие возможности по пост обработки изображения перед показом картинки пользователю.

В статье выше нашел пару интересных моментов по использованию Glide:
👉 Добавляйте url превью картинки более мелкого размера (thumbnail), это позволит показать результат пользователю быстрее но в более низком качестве
👉 Выполняйте периодическую очистку кэша. Например, можно создать периодическую Work, использую WorkManager, которая будет очищать старый кэш.
👍1
Android Broadcast
Какую библиотеку для загрузки изображений используете вы в своих последних приложениях?
По итогам опроса о популярности библиотеки для загрузки изображений победителем стал Glide 🎉🎉🎉
👍1