Forwarded from Mobile AppSec World (Yury Shabalin)
Как написать собственный эмулятор
Огненная статья по написанию самого худшего эмулятора Android в мире (да, она именно так и называется).
Статья очень информативная и интересная, покрывает широкий спектр различных тем, ведь чтобы написать эмулятор, нужно абсолютно точно понимать, как работает операционная система, которую мы собираемся эмулировать. В данном случае в статье покрыты темы:
• Базовая архитектура операционной системы Android
• Что такое системные вызовы
• Как обрабатываются системные вызовы в AArch64
• Как работает сопоставление памяти
• Как операционная система загружает ELF в память и запускает его
• Как эмулировать поведение операционной системы для загрузки ELF в память и его запуска
Советую всем неравнодушным к Android!
#android #emulator #rust
Огненная статья по написанию самого худшего эмулятора Android в мире (да, она именно так и называется).
Статья очень информативная и интересная, покрывает широкий спектр различных тем, ведь чтобы написать эмулятор, нужно абсолютно точно понимать, как работает операционная система, которую мы собираемся эмулировать. В данном случае в статье покрыты темы:
• Базовая архитектура операционной системы Android
• Что такое системные вызовы
• Как обрабатываются системные вызовы в AArch64
• Как работает сопоставление памяти
• Как операционная система загружает ELF в память и запускает его
• Как эмулировать поведение операционной системы для загрузки ELF в память и его запуска
Советую всем неравнодушным к Android!
#android #emulator #rust
fuzzing.science
Rudroid - Writing the World's worst Android Emulator in Rust 🦀 | fuzzing.science
Introduction
👍1
Forwarded from Mobile Compose
#Article #Medium
Introducing Jetpack Compose’s New Layout: “LookaheadLayout”
Вместе с появлением новой альфа версии Jetpack Compose (1.3.0-alpha01) API фреймворка пополнился новым и уже горячо обсуждаемым layout-ом — LookaheadLayout. Если кратко, это первый layout в Compose, способный отслеживать кадры используемой анимации, при помощи чего, к примеру, легко можно реализовать анимацию типа “Shared Element Transition”. Подробнее о том, как работает этот компонент — в сегодняшней статье.
Introducing Jetpack Compose’s New Layout: “LookaheadLayout”
Вместе с появлением новой альфа версии Jetpack Compose (1.3.0-alpha01) API фреймворка пополнился новым и уже горячо обсуждаемым layout-ом — LookaheadLayout. Если кратко, это первый layout в Compose, способный отслеживать кадры используемой анимации, при помощи чего, к примеру, легко можно реализовать анимацию типа “Shared Element Transition”. Подробнее о том, как работает этот компонент — в сегодняшней статье.
👍2
Forwarded from StartAndroid
В Android Studio Electric Eel была добавлена интеграция с Firebase Crashlytics.
Теперь креши можно смотреть прямо в студии. Кроме того, студия будет подсвечивать строки кода, которые приводят к крешам.
#androidstudio #firebase #crashlytics
https://developer.android.com/studio/preview/features#aqi
Теперь креши можно смотреть прямо в студии. Кроме того, студия будет подсвечивать строки кода, которые приводят к крешам.
#androidstudio #firebase #crashlytics
https://developer.android.com/studio/preview/features#aqi
👍1
Forwarded from Android Good Reads (Egor Tolstoy)
Разбор всех этапов совершения сетевого вызова, способов их инструментации, сбора метрик перфоманса и различных способов оптимизации времени совершения запроса. Кейс интересен тем, что для авторов производительность сетевых запросов особенно важна – они делают приложение, основные пользователи которого живут в сельской местности в Индии со слабым сетевым соединением.
Medium
How OkCredit Android App boosted Network Performance by 30%
By instrumenting network calls on production and following best practices, we can make huge improvements to an app’s network performance…
👍1
Forwarded from Mobile Developer (Алексей Гладков)
Кстати, если кто-то хочет начать делать проект на КММ, но не хочет заморачиваться с собственными решениями, то есть репозиторий, где собраны почти все либы, которые работают для КММ
https://github.com/terrakok/kmm-awesome
https://github.com/terrakok/kmm-awesome
GitHub
GitHub - terrakok/kmp-awesome: An awesome list that curates the best Kotlin Multiplatform libraries, tools and more.
An awesome list that curates the best Kotlin Multiplatform libraries, tools and more. - GitHub - terrakok/kmp-awesome: An awesome list that curates the best Kotlin Multiplatform libraries, tools a...
👍3
Forwarded from Android Broadcast (Кирилл Розов)
This media is not supported in your browser
VIEW IN TELEGRAM
#compose
Compose Image on Steroids - набор Compose API для расширения ваших возможностей по работе с изображениями в новомодном UI фреймворке от Google
Compose Image on Steroids - набор Compose API для расширения ваших возможностей по работе с изображениями в новомодном UI фреймворке от Google
👍1
Forwarded from Android Good Reads (Egor Tolstoy)
Еще один скриншот нового легкого UI IntelliJ, который появится и в Android Studio.
👍3👎2
Forwarded from Mobile AppSec World (Yury Shabalin)
Как установить более старую версию приложения поверх нового и не потерять данные в Android
По умолчанию, Android-система не позволяет устанавливать более старую версию поверх новой для одного приложения. В целом, это правильный подход, так и должно быть, потому что внутренние базы и структуры данных уже могут быть изменены под новую версию и старая может работать некорректно.
Но, иногда такая необходимость возникает. И тут на помощь нам придет статья, в которой описано несколько способов как это совершенно легально провернуть и оставить данные на месте.
Это может быть крайне полезно!
#android #downgrade
По умолчанию, Android-система не позволяет устанавливать более старую версию поверх новой для одного приложения. В целом, это правильный подход, так и должно быть, потому что внутренние базы и структуры данных уже могут быть изменены под новую версию и старая может работать некорректно.
Но, иногда такая необходимость возникает. И тут на помощь нам придет статья, в которой описано несколько способов как это совершенно легально провернуть и оставить данные на месте.
Это может быть крайне полезно!
#android #downgrade
🔥1
Forwarded from Голос из-под шторки | Миша Левченко
Почти 3 года назад я “продал” TEA своей команде в Авто.ру. С тех пор наша команда написала 180 TEA-компонентов - от простых экранов с парой кнопок до сложных форм-визардов с кучей логики. Тогда одним из ключевых требований дизайна, которые я перед собой ставил, был интероп с тогдашним стеком приложения - MVP + Clean Architecture, RxJava, Dagger 2. С тех пор я много думал о том, как бы выглядела архитектура, если убрать ограничение на совместимость с наследием эпохи Clean Architecture. Эта статья - компиляция моих заметок на эту тему.
t.me
The Elm Architecture в Android проекте: 3 года спустя
Почти 3 года назад я “продал” TEA своей команде в Авто.ру. С тех пор наша команда написала 180 TEA-компонентов - от простых экранов с парой кнопок до сложных форм-визардов с кучей логики. Тогда одним из ключевых требований дизайна, которые я перед собой ставил…
👍2
Forwarded from Mobile Compose
#Article #Blog #UI
Drawing custom text spans in Compose UI
Автор статьи, ориентируясь на разнообразные подчеркивания текста в приложении BuzzKill, решил вручную реализовать их в Jetpack Compose. Результат - небольшая готовая библиотека ExtendedSpans. Об этапах реализации, а также достигнутых результатах — в сегодняшней статье.
Drawing custom text spans in Compose UI
Автор статьи, ориентируясь на разнообразные подчеркивания текста в приложении BuzzKill, решил вручную реализовать их в Jetpack Compose. Результат - небольшая готовая библиотека ExtendedSpans. Об этапах реализации, а также достигнутых результатах — в сегодняшней статье.
Saket Narayan
Drawing custom text spans in Compose UI
Exploring how squiggly underlines and rounded corners can be drawn without any official APIs for drawing custom spans.
👍2
Forwarded from Mobile AppSec World (Yury Shabalin)
Детальный разбор эволюции троянского приложения Flubot
Очень здоровская статья про развитие и эволюцию банковского зловреда под Андроид.
Основной особенностью на мой взгляд, является то, что это современный (первая версия датирована 2020 годом), написанный самостоятельно (а не скопированный с других зловредов) проект, который эволюционирует и развивается получше и побыстрее многих коммерческих приложений 😁
Очень интересно почитать про те приемы, которые они использовали, чтобы оставаться менее заметными и их было сложнее определить.
В общем, рекомендую почитать, может даже мы что-то у них позаимствуем :)
#malware #android #analisys
Очень здоровская статья про развитие и эволюцию банковского зловреда под Андроид.
Основной особенностью на мой взгляд, является то, что это современный (первая версия датирована 2020 годом), написанный самостоятельно (а не скопированный с других зловредов) проект, который эволюционирует и развивается получше и побыстрее многих коммерческих приложений 😁
Очень интересно почитать про те приемы, которые они использовали, чтобы оставаться менее заметными и их было сложнее определить.
В общем, рекомендую почитать, может даже мы что-то у них позаимствуем :)
#malware #android #analisys
Fox-IT International blog
Flubot: the evolution of a notorious Android Banking Malware
Authored by Alberto Segura (main author) and Rolf Govers (co-author) Summary Flubot is an Android based malware that has been distributed in the past 1.5 years inEurope, Asia and Oceania affecting …
👍1
Forwarded from Android Good Reads (Egor Tolstoy)
Обновленные рекомендации по использованию Compose в RecyclerView
Начиная с
Начиная с
RecyclerView 1.3.0-alpha02 и Compose UI 1.2.0-beta02, Composables больше не уничтожаются при выходе за границы экрана. Вместо этого они сохраняются и переиспользуются. Благодаря такому подходу исчез большой перфоманс-оверхед из-за необходимости постоянно пересоздавать composables.👍3💯1
Forwarded from Mobile Developer (Алексей Гладков)
Просто мегастатья, посвящённая оптимизации сборки, уменьшению веса и тд
https://habr.com/ru/post/533578/
Что внутри:
🤌 Как работает компиляция сборки
🤌 Как работает ProGuard
🤌 Что такое D8, R8
🤌 Как это помогает в оптимизации
Если хотите пройти собес на синьора - не пропустите эту статью
https://habr.com/ru/post/533578/
Что внутри:
🤌 Как работает компиляция сборки
🤌 Как работает ProGuard
🤌 Что такое D8, R8
🤌 Как это помогает в оптимизации
Если хотите пройти собес на синьора - не пропустите эту статью
Хабр
Оптимизация сборок Android приложений: ProGuard, D8, R8. Тайны обфускации
Оптимизация сборки — вишенка на торте мобильного приложения. К счастью, существуют инструменты, проверенные временем и заслужившие доверие сообщества. К сожалению, ее не всегда воспринимают всерьез и...
👍3
Forwarded from Mobile Compose
#Article #Blog
movableContentOf and movableContentWithReceiverOf
Не так давно Jorge Castillo (автор книги Jetpack Compose Internals) создал блог “Effective Android”, в котором он публикует различные полезные материалы по Android разработке (естественно большая часть посвящена Compose).
В одной из таких статей разбираются функции movableContentOf и movableContentWithReceiverOf, которые позволяют нам сохранять состояние UI-контента и передавать его в последующие вызовы.
▫️P.S. В одном из предыдущих постов мы уже частично разбирали movableContentOf , может помочь для лучшего понимания
▫️P.S.S. В своем недавнем докладе я также уделял внимание этому механизму (ссылка с таймкодом)
movableContentOf and movableContentWithReceiverOf
Не так давно Jorge Castillo (автор книги Jetpack Compose Internals) создал блог “Effective Android”, в котором он публикует различные полезные материалы по Android разработке (естественно большая часть посвящена Compose).
В одной из таких статей разбираются функции movableContentOf и movableContentWithReceiverOf, которые позволяют нам сохранять состояние UI-контента и передавать его в последующие вызовы.
▫️P.S. В одном из предыдущих постов мы уже частично разбирали movableContentOf , может помочь для лучшего понимания
▫️P.S.S. В своем недавнем докладе я также уделял внимание этому механизму (ссылка с таймкодом)
Effective Android
movableContentOf and movableContentWithReceiverOf
Tracking compositions in Jetpack Compose
👍3
Forwarded from Mobile Developer (Pavel Kachan)
Мы многократно упоминали о важности копирования существующих приложений для становления крутым разработчиком. Но бывает сложно найти подробный дизайн известных приложений и выбрать готовый не сильно легче — либо бесплатно и не очень, либо здорово и относительно дорого.
Поэтому вот хороший и бесплатный дизайн мобильного банка от замечательного дизайнера Анастасии.
Дизайн мобильного банка:
https://www.figma.com/file/lu7nTUMx3k3mgQ9Hwjs4mj/Bank-App?node-id=0%3A1
Другие работы Анастасии:
https://www.behance.net/84be0c32
Поэтому вот хороший и бесплатный дизайн мобильного банка от замечательного дизайнера Анастасии.
Дизайн мобильного банка:
https://www.figma.com/file/lu7nTUMx3k3mgQ9Hwjs4mj/Bank-App?node-id=0%3A1
Другие работы Анастасии:
https://www.behance.net/84be0c32
Figma
Bank App
Created with Figma
👍2
Forwarded from Android Good Reads (Egor Tolstoy)
Интерактивный гайд по работе со стейтом с помощью Flow
Страница со статьей собрана на Compose for Web. Благодаря этому, можно не только смотреть на примеры кода, но и на ходу играть со стейтом и смотреть, как обрабатываются его изменения. Автор разбирает:
- Как реализовать UDF с помощью Flows
- Как прокидывать действия пользователя до стейта
- Как мерджить изменения в стейте
- Как решать конфликты при изменениях
Страница со статьей собрана на Compose for Web. Благодаря этому, можно не только смотреть на примеры кода, но и на ходу играть со стейтом и смотреть, как обрабатываются его изменения. Автор разбирает:
- Как реализовать UDF с помощью Flows
- Как прокидывать действия пользователя до стейта
- Как мерджить изменения в стейте
- Как решать конфликты при изменениях
👍2
Forwarded from Android Broadcast (Кирилл Розов)
Customize Android Studio to run third-party tools (without plugins) (3 мин)
Автор статьи делится тем как интегрировать любую внешнюю тулзу (без разработки плагинов!) в интерфейс Android Studio и работать с ней прямо из панели
#androidstudio
Автор статьи делится тем как интегрировать любую внешнюю тулзу (без разработки плагинов!) в интерфейс Android Studio и работать с ней прямо из панели
#androidstudio
👍1
Forwarded from Android Live 🤖
UDF с Kotlin Flow
#kotlin
Классный пример визуализации поведения Kotlin Flow в Android.
Автор рассмотрел основные кейсы работы
Получилась крутая визуализация, что будет полезно, если вы хотите лучше разобраться с
#kotlin
Классный пример визуализации поведения Kotlin Flow в Android.
Автор рассмотрел основные кейсы работы
Flow в контексте состояний, пользовательских действий и различных типов.Получилась крутая визуализация, что будет полезно, если вы хотите лучше разобраться с
Flow 🤓👍2
Forwarded from Разработка ждёт балета
Вообще мы у себя давно так делаем, оно появилось как-то само собой, чисто интуитивно, но оказывается у этого подхода есть умное название: Stacked PRs. Вкратце: не выкатываешь всю фичу разом на ревью, а отправляешь небольшими порциями в виде зависимых PRов. С github это всё довольно хорошо работает, но всё ещё приходится кое-что делать ручками. И вот тут в статье автор описывает, что хочется уметь делать минимальными усилиями, и какие тулы в этом могут помочь.
#git #tool
#git #tool
benjamincongdon.me
In Praise of Stacked PRs
Managing sets of small, dependent PRs enables faster review and increased developer velocity
👍1
Forwarded from Mobile Native ️️
Android Developer Options that you probably forgot
Полезная статья с обзором возможностей Developer Options.
От себя наиболее полезные опции выделяю: Strict Mode, Вытеснение активити, Debug GPU overdraw, Show view updates.
Иногда кстати, на собесах спрашивают например про отладку списков и в этом вопросе так же ожидают услышать про Developer Options, отрисовку кадров, перерисовку и вот это вот всё.
Читать (En)
Полезная статья с обзором возможностей Developer Options.
От себя наиболее полезные опции выделяю: Strict Mode, Вытеснение активити, Debug GPU overdraw, Show view updates.
Иногда кстати, на собесах спрашивают например про отладку списков и в этом вопросе так же ожидают услышать про Developer Options, отрисовку кадров, перерисовку и вот это вот всё.
Читать (En)
👍2