Android разработка
5.14K subscribers
448 photos
25 videos
1 file
548 links
все о Android разработке

@itchannels_telegram - 🔥 лучшие it каналы

@ai_machinelearning_big_data -ML

@ArtificialIntelligencedl -AI

@datascienceiot - ml 📚

@pythonlbooks -📚books
Download Telegram
Media is too big
VIEW IN TELEGRAM
Опасности в Android: уязвимости и защитные меры

Увлекательное путешествие в мир безопасности Android! Разобрали самые интересные и коварные уязвимости, такие как Path Traversal, SQL-инъекции и Tapjacking. Но основное внимание уделили WebView: неправильной валидации данных, уязвимостям в библиотеке для парсинга URL, JavaScript Interface и загрузке диплинков.

Безопасность — это не только важно, но и захватывающе! Она необходима в каждом приложении, чтобы обеспечить уверенность пользователей в безопасности их данных. Не стоит перекладывать эту ответственность на безопасников.

В докладе нет скучных терминов и монотонных объяснений. Вместо этого — захватывающая история поиска уязвимостей и их устранения, основанная на личном опыте при разработке приложений.

Будет полезно всем тем, кто интересуется безопасностью Android-приложений.

источник

#Android
🔥51
📱🤖 Умный помощник для Android на базе AutoGLM

Open-AutoGLM предлагает мобильный интеллектуальный ассистент, который понимает содержимое экрана и выполняет задачи по командам на естественном языке. Используя ADB для управления устройством, система может автоматически интерпретировать запросы и выполнять действия, такие как поиск в приложениях.

🚀Основные моменты:
- Многофункциональный ассистент для Android.
- Поддержка естественного языка для выполнения команд.
- Автоматизация действий на экране устройства.
- Возможность удаленного управления через Wi-Fi.
- Встроенные механизмы подтверждения для чувствительных операций.

📌 GitHub: https://github.com/zai-org/Open-AutoGLM

#python
1👍1
🔥 Новый курс на Stepik: Linux - апгрейд твоих скиллов до уровня инженера

Хватит быть “кликавшим по GUI”. Пора понимать систему изнутри.

Что освоишь:
• Bash, grep, sed, awk - инструменты взрослых админов
• Процессы, сеть, права, логирование и починка поломок
• SSH, firewall, systemd, cron, автозапуск сервисов

После курса: Linux перестаёт быть загадкой - ты будешь работать с ним уверенно.

30% скидка на 48 часов

👉 Начни учиться на Stepik.
1👍1🔥1
ColorTokensKit — мощная система цветовых маркеров

Собственная цветовая система Swift обеспечивает только базовую функциональность для представления цвета. Собственные цвета ограничены RGB и HSL, которые не обеспечивают единообразия восприятия. Это может привести к непоследовательному цветовому восприятию на разных устройствах и в разных средах. Кроме того, собственные цвета изначально не поддерживают доступные коэффициенты контрастности, темный режим или темы, что затрудняет поддержание целостной системы дизайна. ColorTokensKit устраняет эти ограничения, используя цветовую систему LCH, которая обеспечивает более интуитивный и гибкий подход к управлению цветом.

ColorTokensKit — мощная система цветовых маркеров для платформ Apple. ColorTokensKit расширяет возможности Swift, предлагая эргономичный доступ к цветовой системе LCH (Lightness, Chroma, Hue) и тысячам доступных цветов.

Фичи:
Простой в использовании API цветовых маркеров
Предопределенные цветовые палитры LCH
Встроенная поддержка доступных коэффициентов контрастности
Встроенная поддержка темного режима
Встроенная тематика для всех приложений
Легкое преобразование между пространствами RGB/HSL/LCH/LAB/XYZ
Отсутствие зависимостей

https://github.com/metasidd/ColorTokensKit-Swift

#Android
4👍1
This media is not supported in your browser
VIEW IN TELEGRAM
✔️ OpenAI создала Android-версию Sora за 28 дней.

В ноябре 2025 года OpenAI выпустила приложение Sora для Android, пройдя путь от прототипа до глобального релиза всего за 1 месяц. Над проектом работали 4 инженера и ранняя версия GPT-5.1-Codex.

Результаты эксперимента показали новый стандарт эффективности: 85% кода было сгенерировано ИИ, при этом стабильность версии держалась на уровне 99,9%.

В первые сутки Sora для Android возглавило чарты Play Store, а пользователи создали более миллиона видео. В OpenAI отмечают, что ИИ-ассистенты берут на себя рутину, однако архитектурное проектирование и контроль качества по-прежнему требуют участия людей.
openai.com
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥2
🚀 AI Agents for Android Apps

Библиотека для автоматизации работы с нативными Android-приложениями. Идеально подходит для мобильных рабочих процессов в логистике, экономике на заказ и других отраслях, где ноутбук неуместен. Позволяет значительно ускорить выполнение задач и сократить затраты.

🚀 Основные моменты:
- Автоматизация процессов на Android-устройствах
- Снижение затрат на 95% по сравнению с традиционными методами
- Поддержка различных мобильных приложений
- Быстрая реакция — менее 1 секунды на действие
- Идеально для логистики и мобильного обслуживания

📌 GitHub: https://github.com/actionstatelabs/android-action-kernel
4
🤖 Автоматизация Android с AI: Roubao

Roubao — это открытый AI помощник для автоматизации задач на Android без необходимости подключения к компьютеру. Он использует визуальные языковые модели и работает на нативном Kotlin, позволяя пользователям легко выполнять команды с помощью естественного языка.

🚀 Основные моменты:
- Полностью открытый проект без необходимости в компьютере
- Интуитивно понятный интерфейс с поддержкой нескольких языков
- Поддержка различных AI моделей и API
- Высокая безопасность с шифрованием ключей
- Возможность работы в режиме Root для расширенных функций

📌 GitHub: https://github.com/Turbo1123/roubao

#kotlin
Forwarded from Mobile VK Hub
This media is not supported in your browser
VIEW IN TELEGRAM
Конец года, и снова заканчиваются все подписки 😱

Узнали? Согласны? Не беда — мы как раз разыгрываем промокоды на год от Облака Mail и VK Музыки!

Условия участия простые:
🔹 подпишитесь на наш канал @mobilehubvk
🔹нажмите кнопку «Участвовать»
🔹 дождитесь 30 декабря — в этом посте мы выберем случайным образом 6 победителей

Информацию об организаторе, правилах и призах ищите по ссылке.

Удачи!
Локализация в Jetpack Compose

Локализация относится к изменению текста приложения, форматов валют и других визуальных элементов для соответствия локали пользователя на основе его региональных предпочтений.

С введением языковых предпочтений для каждого приложения (Per-app Language Preference) в Android 13 (API уровня 33) управление языками, специфичными для приложений, стало намного проще.

https://blog.kotlin-academy.com/localization-in-jetpack-compose-71b7f7233243

#Android
😁195👍1🤬1
Руководство по языку Kotlin

📚 Read
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥1🥰1
⚡️ Docker-Android - запуск Android-эмулятора в Docker-контейнере

Минимальный и настраиваемый Docker-образ с Android-эмулятором, который запускается в контейнере как сервис.

Он особенно полезен для автоматизации, CI/CD и тестирования мобильных приложений, когда нужен работающий эмулятор в изолированной среде без физического устройства.

Это Docker-образ на базе лёгкого Linux, со встроенным Android-эмулятором, поддержкой аппаратной виртуализации (KVM) и Java Runtime. Внутри контейнер поднимает эмулятор, ADB-сервер и инструменты виртуализации. Работа происходит в headless-режиме, то есть без графического интерфейса — удобно для серверов и CI.

Основные возможности:
• минималистичный образ с Android-эмулятором и ADB
• поддержка KVM и аппаратного ускорения
• выбор версии Android и типа образа
• проброс портов для ADB
• работа без GUI
• возможность подключать инструменты удалённого управления экраном

Плюсы:

изолированная, воспроизводимая среда
не нужен GUI
удобно для автоматизации тестов
поддержка аппаратного ускорения

docker-android — это удобный способ запускать Android-эмулятор как сервис внутри контейнера. Он упрощает автоматизацию тестирования и делает окружение предсказуемым и повторяемым.

https://github.com/HQarroum/docker-android
👍5🔥31💊1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥Awesome-Android-Reverse-Engineering

Подборка лучших материалов и инструментов для реверс-инжиниринга Android.

Что есть:
- 📚 обучение: курсы, видео, книги
- 🛠 инструменты: статический и динамический анализ
- 🔎 декомпиляторы: JADX, Apktool, dex2jar
- 🧪 CTF/CrackMe для практики
- 📘 статьи и ресурсы по безопасности

Зачем:
— всё в одном месте
— удобно для обучения и аудита безопасности
— хорошая база для практики

Полезный старт для разработчиков и security-инженеров.

📌 GitHub: https://github.com/user1342/Awesome-Android-Reverse-Engineering
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
🚀 Spring Boot: настрой graceful shutdown с таймаутом

Когда сервис перезапускается (deploy / autoscaling / rolling update), без graceful shutdown часть HTTP-запросов может:
- оборваться на полпути
- вернуть 5xx
- прервать фоновые потоки слишком рано

В Spring Boot это решается одной настройкой - задаёшь таймаут на “мягкое” завершение:

сервер перестанет принимать новые запросы
но даст текущим запросам и бинам закончить работу
и только потом завершится

Пример:

server:
shutdown: graceful

spring:
lifecycle:
timeout-per-shutdown-phase: 20s


Идеально для продакшена, особенно если у тебя:
- Kubernetes rolling update
- долгие запросы
- async обработчики / очереди
- фоновые задачи
3👍2
💡 Java совет: избегай шаринга данных между потоками

Одна из главных причин багов в многопоточке - общий изменяемый state (shared mutable state). Чем больше потоков трогают одни и те же объекты - тем выше шанс словить race condition, deadlock или “плавающие” ошибки.

Что делать правильно:

1) Используй immutable-объекты
Если объект нельзя изменить - потокам нечего “делить”, и синхронизация почти не нужна.
В Java это удобно делать через record, final поля и неизменяемые коллекции.

2) Общайся через сообщения, а не через общую память
Вместо того чтобы менять общий объект - передавай события через очередь:
- BlockingQueue
- ConcurrentLinkedQueue
- Actor-style подход

Это снижает связанность и делает поведение системы предсказуемым.

Простой принцип:
Не “разделяй память”, а “разделяй сообщения”.
#Java #SoftwareDevelopment
3👍1🔥1
🚀 LiteRT - универсальная основа для AI прямо на устройстве

Google представил LiteRT — новый универсальный фреймворк для on-device AI, который развивается из TensorFlow Lite и становится базой для высокопроизводительного ML и генеративного AI на устройствах.

🔥 Что важно

До 1.4× быстрее GPU-ускорение
LiteRT показывает прирост производительности на GPU по сравнению с TensorFlow Lite, снижая задержку и улучшая отклик моделей.

🌐 Кроссплатформенность
Работает на Android, iOS, macOS, Windows, Linux и Web. Использует OpenCL, OpenGL, Metal и WebGPU через новый движок.

🤖 Поддержка NPU
Добавлено ускорение на нейропроцессорах с единым API, что упрощает разработку под разные чипы и повышает скорость инференса.

⚙️ Модели из PyTorch и JAX
Есть удобная конвертация моделей, что упрощает перенос современных AI-моделей на устройство.

📦 Open-source
Фреймворк открыт и подходит для продакшена — можно строить реальные on-device AI-приложения.

LiteRT позволяет запускать современные AI и GenAI модели прямо на устройстве — быстрее, с меньшей задержкой и лучшей приватностью, без постоянной зависимости от облака.

https://developers.googleblog.com/litert-the-universal-framework-for-on-device-ai/
👍52🔥1
💡 Java-совет: WeakHashMap для кэша без утечек памяти

Если ты используешь HashMap как кэш - будь осторожен. Пока карта жива, ключи и значения не будут удалены GC, даже если они больше нигде не используются.

WeakHashMap решает эту проблему:

• Ключи хранятся через weak reference

• Если на ключ нет сильных ссылок в коде - GC может его удалить

• Запись автоматически исчезает из мапы

• Отлично подходит для кэшей, метаданных, listener-ов

Пример идеи:

• Положил объект в WeakHashMap

• Убрал на него все обычные ссылки

• GC очистил объект → запись исчезла сама

Когда использовать:

• Кэш, который не должен раздувать память
• Вспомогательные данные, завязанные на жизненный цикл объекта
• Framework-код, плагины, reflection-кэши

Когда не стоит:

• Если ключи должны жить строго контролируемо

• Если логика зависит от стабильного наличия записи

Коротко:
HashMap - контроль у тебя
WeakHashMap — контроль у GC 🧹

Полезный инструмент, если понимаешь его семантику.
👍32🔥1
⚡️Spring Boot: отправка email за 5 минут

Если нужно быстро добавить отправку писем в Java-приложение — используйте spring-boot-starter-mail.

Он уже содержит всю необходимую конфигурацию и зависимости, поэтому не нужно вручную настраивать SMTP-клиенты.

Что нужно сделать:

1. Добавить зависимость


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
Настроить SMTP (например, Gmail)

spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=your_email@gmail.com
spring.mail.password=your_app_password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true

Отправить письмо через JavaMailSender


@Autowired
private JavaMailSender mailSender;

public void sendEmail(String to, String subject, String text) {
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(to);
message.setSubject(subject);
message.setText(text);
message.setFrom("your_email@gmail.com");

mailSender.send(message);
}

Когда это полезно:

• регистрация пользователей
• подтверждение email
• уведомления
• отчёты и алерты

Главный плюс - минимум кода и быстрая интеграция. Spring Boot берёт всю сложность настройки на себя.
👍3
🚀 CLI для управления iOS и Android устройствами

agent-device — это инструмент командной строки для управления мобильными устройствами, позволяющий AI-агентам взаимодействовать с приложениями на iOS и Android. Проект находится на ранней стадии разработки и открыт для вкладов.

🚀 Основные моменты:
- Поддержка iOS (симулятор) и Android (эмулятор).
- Основные команды: открытие приложений, взаимодействие с элементами интерфейса.
- Минимальные зависимости и работа напрямую с Node.js.
- Возможность создания и управления сессиями.

📌 GitHub: https://github.com/callstackincubator/agent-device

#typescript
👍2🔥1
🚀 Spring Boot: когда использовать static-классы, а когда Bean

Частая ошибка в Spring - использовать static-утилиты там, где нужен управляемый компонент.

Правило простое

Используйте static-классы только если:
- они не хранят состояние
- у них нет зависимостей
- не требуется mock в тестах
- не нужен AOP (логирование, транзакции и т.д.)

Во всех остальных случаях — лучше Spring Bean.

Почему это важно

Пример с static-кэшем:


public class CacheUtils {
private static Map<String, String> cache = new HashMap<>();
}


Такой кэш:
• общий для всех потоков
• может случайно изменяться
• сложно контролировать и тестировать

нет управления жизненным циклом

Правильный подход — Bean со scope:

@Component
@Scope("request")
public class CacheService {
private Map<String, String> cache = new HashMap<>();
}
Теперь:

Spring управляет жизненным циклом

можно задать scope (request, session, singleton)

легко тестировать и мокать

можно добавить AOP

Главная мысль

Static — только для чистых функций.
Состояние и логика — пусть управляет Spring.

Spring лучше всего работает, когда управляет stateful-объектами.
1👍1🔥1