Как стать автором
Обновить
180.78

Разработка под Android *

Пишем под самую популярную мобильную ОС

Сначала показывать
Порог рейтинга

Google выпустила тизер с моделью Pixel 9 Pro Fold всего через несколько часов после презентации нового смартфона Pixel 9 Pro. В видео упоминаются умные функции с поддержкой ИИ Gemini. 

Складной смартфон получит двойные линзы для модуля задней камеры, а также внешний экран и шарнир. 

Google представит больше подробностей на своём мероприятии 13 августа. В ходе него ожидается презентация линейки Pixel 9 Pro, Pixel Watch 3 и других устройств.

Теги:
+1
Комментарии1

Эксперты выяснили, почему важно обновлять ОС на смартфонах. Утечка документов компании Cellebrite показала, что последние версии iPhone на iOS 17.4. и выше не поддаются взлому специальным оборудованием.

С iPhone с iOS от 17.1 до 17.3.1 в Cellebrite извлекать информацию научились, но пока только до 11 модели включительно. Оборудование для взлома iPhone 12-14 в разработке.

Со смартфонами на Android всё оказалось проще, взлому поддаются все устройства Samsung, смартфоны Huawei, Pixel (XL, 3-5) и большинство устройств на базе Qualcomm.

Cellebrite — израильская компания, которая поставляет оборудование для извлечения данных с мобильных устройств правоохранительным органам более 150 стран.

Теги:
+3
Комментарии2

Anthropic запустила Android-приложение для чат-бота Claude AI. Его можно скачать из Google Play, приложение бесплатное и доступно для всех пользователей, включая подписчиков Pro и Team.

Приложение предоставляет пользователям Android доступ к самой мощной модели Claude 3.5 Sonnet. Оно предлагает:

  • поддержку нескольких платформ;

  • возможности машинного зрения для анализа изображений в реальном времени;

  • многоязычный перевод в реальном времени;

  • опцию расширенных рассуждений. 

В мае Anthropic уже выпустила приложение для iOS.

Теги:
0
Комментарии0

Мы создали свой инструмент для доставки сборок Android-приложений

В условиях блокировки официального сервиса Firebase App Distribution в России, перед нашим отделом мобильной разработки встала задача создать собственный инструмент для доставки сборок Android-приложений тестировщикам.

Да, мы могли бы пользоваться Firebase App Distribution с помощью VPN, но это не очень удобно. VPN-сервисы ненадежны, потому что подвержены блокировкам. К тому же создание собственного решения позволяет добавлять новые функции и адаптировать инструмент под конкретные нужды команды.

На многих проектах огромное количество времени уходило на то, чтобы достать сборку из GitLab или собрать ее вручную и отправить тестировщику. Также это сильно отвлекает от работы над задачами. Решением стала разработка инструмента, который будет принимать, хранить и раздавать файлы сборок.

Для его реализации выбрали фреймворк Ktor. Благодаря этому любой разработчик, знакомый с Kotlin, сможет быстро разобраться в кодовой базе, поддерживать инструмент и интегрировать его с различными проектами. А в качестве интерфейса решили выбрать Telegram. Наши рабочие чаты чаще всего находятся именно там. Кроме того, Telegram Bot API предоставляет много возможностей, хоть и имеет некоторые ограничения.

Делимся исходным кодом этого инструмента. А подробная инструкция по работе с ним — в отдельной статье.

Теги:
+7
Комментарии0

Энтузиаст запустил игру Grand Theft Auto V с помощью эмулятора Horizon на геймерском смартфоне Asus ROG Phone 8 Pro на базе восьмиядерного процессора Snapdragon 8 Gen 3 с 16 ГБ оперативной памяти, а также на Galaxy S24 Ultra и OnePlus 12, где стоит такой же чипсет.

Игра работала при разрешении 1600x720 и в основном выдавала примерно 40-50 FPS в городе и 50-60 FPS за городом. Максимум фреймрейт достигал 60-70 кадров в секунду, однако во время интенсивных перестрелок мог падать до 30 FPS.

Полного заряда батареи смартфона хватило примерно на час игры, а пиковая температура со специальным внешним кулером составила 47 градусов Цельсия.

«Эмулятор Horizon очень хорошо оптимизирован для Snapdragon 8 Gen 3, и
это показывает, насколько мощным является чипсет», — пояснил блогер.

Теги:
Всего голосов 5: ↑5 и ↓0+7
Комментарии1

Как открыть URL в нативном приложении

https://t.me/dolgo_polo_dev

Для этого есть 5 вариантов:
• WebView
• GeckoView
• CustomTabs
• TWA
• внешний браузер

WebView

Это обычная вьюшка, которая встраивается в вашу верстку

Плюсов много:
• можно контролировать каждый запрос (есть куча колбеков)
• можно передать любые куки и хедеры (в том числе токены пользователя, чтоб не заставлять пользователя заново авторизовываться)
• можно настроить JS Bridge (вызывать нативный код прямо с сайта)

GeckoView

Это аналог WebView от Firefox

Сам не использовал, ничего сказать не могу. Если кто пользовался, поделитесь опытом/эмоциями, пожалуйста)

CustomTab

CustomTab — это Activity браузера Chrome, открытое поверх вашего приложения в вашей Task-e

Из плюсов:
• в CustomTab доступен весь функционал браузера (кнопка "поделиться", поиск по странице...)
• общее с Chrome хранилище данных о юзере (если открыть ссылку, где юзер раньше авторизовывался, то он сразу окажется в своем аккаунте)

Минусы есть:
• нельзя встроить в верстку
• колбеков практически нет, настройки минимальные
• можно передать только определенные хедеры/куки
• нельзя вытащить куки обратно

TWA (Trusted Web Activities)

Обертка над CustomTab. Используется для связи PWA (progressive web app) и нативных возможностей приложения. Позволяет опубликовать PWA в Play Market.

Внешний браузер

Тут просто пуляем Intent с Intent.ACTION_VIEW в систему, а система уже находит приложение, которое этот URL может обработать. Из минусов — нет возможности передать/забрать хедеры/куки

@dolgo_polo_dev

Теги:
Всего голосов 5: ↑3 и ↓2+3
Комментарии0

На Android появится виджет Google Home Favorites, который обеспечит быстрый доступ к устройствам умного дома. Он позволит управлять устройствами, действиями и средствами автоматизации прямо с главного экрана смартфона. В Wear OS также появился виджет Favorites и расширение для доступа к часто используемым устройствам.

С помощью виджета можно будет включать свет, закрывать дверь или проверить температуру. Его размер можно регулировать. Виджет доступен тем, кто подписался на общедоступную предварительную версию приложения Google Home, начиная с 30 мая.

Favorites в Wear OS позволяет получить доступ к управлению максимум пятью устройствами. Его можно настроить на управление конкретным прибором прямо с циферблата.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Недавно Гугл плей в своем отчете поделился тем, что почистил много низкокачественных приложений.

Но возможно дело тут не только в заслугах модерации.

В общем я снимаю с публикации добровольно пару приложений. Дело в том, что трудозатраты на поднятие таргет сдк до 34 никогда не окупяться.

За пять лет было 650 покупок (134 возврата) и у другого 588 ( -79). Потраченное время будет окупаться несколько лет. А под меняющиеся требования гугла скорее всего придется еще дополнительно править еще несколько раз.

Теги:
Всего голосов 3: ↑3 и ↓0+6
Комментарии1

Google обновила требования к ОС для поддержки Wallet. С 10 июня кошелёк потребует Android 9 или выше на смартфоне и Wear OS 2.x или выше на умных часах.

Это необходимо, чтобы обеспечить большую безопасность функций, в том числе оплату касанием.

Ранее для работы Wallet было достаточно Android 7.0. Когда Google выпустила приложение кошелька в 2022 году, оно поддерживалось в версиях начиная с Android 5.0.

Обновление затронет пользователей Android Nougat (2016: 7.0, 7.1) и Oreo (2017: 8.0, 8.1). Wear OS 2 была основана на Android 8.0 Oreo, но позже была обновлена до Android 9.0 Pie.

Теги:
Всего голосов 3: ↑3 и ↓0+6
Комментарии0

2 мая 2024 года Mozilla сообщила о преодолении рубежа в 1000 дополнений, доступных для Android-версии Firefox в каталоге AMO (addons.mozilla.org).

В декабре 2023 года, после введения в строй инфраструктуры дополнений для Android-версии Firefox, в каталоге насчитывалось 489 дополнений. Менее чем за пять месяцев число дополнений, портированных для Android-версии Firefox, удвоилось.

Разработчики дополнений, уже поставляемых для настольной версии Firefox, могут адаптировать свои продукты для работы в мобильной версии, переведя дополнение с модели постоянного фонового выполнения (extension.getBackgroundPage) на режим обработки событий (browser.runtime.onMessage.addListener), а также задействовав методы адаптивной компоновки элементов интерфейса.

Источник: OpenNET.

Теги:
Всего голосов 5: ↑5 и ↓0+6
Комментарии0

В ходе работы над своим драйвером печати мне пришлось написать эмулятор IPP принтера. Оформил его как бесплатное приложение в гугл плее. Анонс сервиса в mDNS IppVirtual._ipp._tcp.local. Добился автоматического его распознования стандартной службы печати андроида. Поднял http сервер на порту 10631. отдаю иконку принтера и 404 страницы. При обращении по rp = p/virеual реализовал команды IPP протокола: получить свойства принтера, печать документа и другие. Проще всего было реализовать поддержу PDL для PCLm (по сути тотже aplication/pdf), полученный файл просто передается встроенному просмотровщику. Для urf,pwg и SPL(QPDL) написал декодеры в битмап с последующей конвертацией в pdf.

Не получилось полностью реализовать драйверлес для macOS и windows :(

На маках находит, но ставиться только при ручном указание ppd, который можно сформировать запуском

/System/Library/Printers/Libraries/ipp2ppd урл_принтера

На виндовс устанавливается через мастер установки Bonjour. Драйвер приходится выбирать в ручную. Подходят стандартные от майкрософт (н-р универсальный IPP).

Эмулятор может быть полезен программистам, которые решили внедрить в свою программу прямую печать на IPP принтеры.

Приложение в данный момент опубликовано для открытого тестирования

https://play.google.com/apps/testing/ru.a402d.ippprinter

Теги:
Всего голосов 4: ↑4 и ↓0+5
Комментарии0

В новую версию мобильного приложение «Госуслуги» (для RuSrore. Google Play и App Store) разработчики добавили сторис.

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

Из сторис на «Госуслугах» можно в краткой форме узнать о возможностях приложения. Например, как подключить уведомления о судебных решениях, быстро оформить онлайн-выписку или подключить вход по QR-коду.

Теги:
Всего голосов 3: ↑3 и ↓0+4
Комментарии3

Компания-разработчик Avroid («Авроид») выпустила обновление для мобильного приложения TavroТавро») — мобильного клиента мессенджера Telegram для ОС «Аврора».

В новой версии Tavro улучшена навигация, стали доступны дополнительные возможности администрирования групп и каналов. В приложении появились элементы навигации — табы в нижней части экрана, стала доступна возможность редактировать сообщения, закреплять чаты, управлять группами и каналами: удалять участников, менять названия и аватары.

Разработчики пояснили, что Tavro выполняет основные функции мессенджера: отображает списки чатов, может отправлять текстовые сообщения, изображения и видео, эмодзи, файлы, совершать звонки между пользователями Telegram, поддерживает различные системные уведомления в чатах, позволяет работать без подключения к интернету и многое другое.

В начале марта 2024 года «Авроид» открыла доступ (с ограничениями) для всех к мобильному приложению Tavro для ОС «Аврора». Так как этот клиент разработан не самим Telegram, он считается сторонним. Ранее «Авроид» официально зарегистрировала ID разработчика в Telegram.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии2

Ближайшие события

Первый предварительный релиз порта Foreign Function & Memory API для Android.

С выпуском стабильной версии JDK 22 в конце марта, вышла окончательная версия FFM API — современного переосмысления доступа к нативной памяти и функциям. Примечательно, что его история начиналась ещё в JDK 14 несколько лет назад, тогда же я и обратил на него своё внимание. Мне стало интересно, возможно ли без поддержки со стороны платформы полноценное портирование этого API, и ответ — ДА!

На скриншоте выше - пример из официальной документации, запущенный на android 8.0. В нём происходит вызов функции qsort из libc, при этом один из параметров — указатель на функцию сравнения. С помощью метода upcallStub можно создать указатель на MethodHandle как на нативную функцию, что и демонстрирует пример. Полная документация исходного апи доступна на официальном сайте oracle

Отдельно отмечу отличия:

  • Полностью воссоздать API не получилось т.к. до android 9.0 отсутствует его важный компонент — класс VarHandle, поэтому был создан другой класс с теми же методами, но без полиморфного поведения (чуть хуже оптимизация)

  • MemoryLayout`ы нулевого размера не разрешены (в исходном варианте их поведение не совпадает с фактическим в компиляторах C и C++)

  • Временно не работают upcall вызовы из потоков, не подключённых к jvm. Скоро исправлю, но ещё не придумал оптимальный путь

  • Вернул методы MemoryLayout.valueLayout и paddedStructLayout. Не знаю почему их убрали в конечной версии

  • Возможно что-то ещё

Весь исходный код доступен на github

Теги:
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Авторы популярной кастомной прошивки PixelExperience объявили о закрытии проекта. Сайт и старые сборки будут доступны для скачивания.

PixelExperience - это кастомная прошивка на базе AOSP для смартфонов, которая придает им удобный пользовательский интерфейс, аналогичный устройствам Google Pixel. Она стремится обеспечить стабильную работу, высокую производительность и безопасность системы, а также предоставлять регулярные обновления даже после прекращения официальной поддержки производителем.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Друзья! Может кто‑то из моих читателей продаёт HTC Dream aka T‑Mobile G1? Сейчас готовлю новый материал из серии «сам себе экосистема», где пилю клиенты современных сервисов под смартфоны 14+ летней давности. В идеале, конечно, показать работоспособность клиента на самом первом Android‑смартфоне:) Тг — @monobogdan

Теги:
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

ЭФФЕКТ ДОПЛЕРА против БРЮСА ЛИ - для теста нужен лишь Андроид

Этот пост - предвварительная проверка идеи или концепта и, может быть, НИОКР и/или попытка предварительного анализа востребованности, реакции читателей Хабра.

Концепт приложения для "диванных" каратистов - измерение скорости удара

Навеяно старым приложением (сейчас не могу его найти в google play) от известного бойца ММА. Старое видео на youtube >> Quinton "Rampage" Jackson demos his new app Rampage Punch

Приложение Джексона использовало интегрирование показаний акселерометра. Это проблемы с низкой частотой сэмплирования (не все хорошо по Найквисту-Котельникову), ограниченным динамическим диапазоном, калибровкой и дрейфом.

Существуют игровые автоматы для измерения силы удара. Но с ними есть проблема.

Известный боец смешанных единоборств Конор Макгрегор рассмешил фанатов своим ударом по силомеру. Об этом сообщило издание Tengri Sport. Ирландская звезда ММА решил показать сокрушительную мощь удара, но выбил лишь 1 очко из 999 возможных. >> Видео - лучшая анти-реклама измерителя силы удара

Я попробовал сделать >> ВИДЕО прототип измерителя скорости удара на основе эффекта Доплера, particle FFT на python и/или готовых "кубиков" (других приложений)

Ничего не продается и не рекламируется. В законченном виде его не существует. Нигде ничего скачать нельзя.
Ничего не продается и не рекламируется. В законченном виде его не существует. Нигде ничего скачать нельзя.

Теги:
Всего голосов 6: ↑4 и ↓2+2
Комментарии7

Apple в ответ на антимонопольный иск Министерства юстиции США сообщила, что инженеры компании пытались организовать поддержку работу умных часов Apple Watch со смартфонами на Android.

После трехлетних исследований и тестов в компании пришла к выводу, что выпуск Apple Watch с поддержкой Android невозможен из-за технических ограничений. Поэтому от этой идеи руководству компании пришлось отказаться.

По информации обозревателя Bloomberg Марка Гурмана, внутри Apple некоторое время работала команда Project Fennel, цель которой было распространить возможности Apple Watch и функций по отслеживанию здоровья и физической активности на сторонние платформы, включая приложение «Здоровье» для Android. Технически совместимость была почти реализована, но компания закрыла проект из‑за деловых соображений.

По словам источника Гурмана, руководство Apple посчитало, что Apple Watch являются драйвером продаж iPhone. А реализация совместимости с Android снизит ценность собственного смартфона компании у потребителей. 

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии1

Epic Games объявила о планах открыть магазины приложений для Android и iOS. Компания намерена брать комиссию в размере 12%, что меньше 30%, которые взимают Apple и Google.

Ранее Epic подала в суд на Apple и Google, обвинив их в антиконкурентном поведении относительно магазинов мобильных игр. Генеральный директор компании Тим Суини раскритиковал модель распределения доходов в соотношении 70% к 30%, которую установили ответчики.

Принятие Закона о цифровых рынках ЕС, который заработал в марте, открыло для Epic возможность запустить собственные магазины приложений и предложить разработчикам более выгодные условия.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Много внешних библиотек

by Dolgo.Polo Dev

После появления более трех модулей в приложении становится сложновато отслеживать, какие либы и какой версии были подключены

Существует несколько способов их упорядочить:

 • общий модуль с зависимостями

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

но если заменить его на api (например, api "androidx.core.coroutine:1.0.0"), то доступ к библиотеке получат все модули, которые подключат текущий модуль

минусы: чтобы расфасовать библиотеки по группам, нужно создавать несколько модулей-хранителей. больно

 • отдельный gradle-файл

создаем пустой gradle-файл. например, dependencies.gradle

записываем в него версии и названия либ через создание переменных:

ext.libs {

myLibVersion : "1.1.1",

myLib : "androidx.my.lib:$myLibVersion"

}

подключаем в нужный gradle-файл созданный список:

apply from: "${project.rootDir}/dependencies.gradle"

готово, можно подключать библиотеку, используя переменные из dependencies.gradle:

implementation libs.myLib

 • version catalog

тот же фокус, что и с отдельным gradle-файлом, но с другим синтаксисом и .toml файлами

• gradle plugin

если в двух словах — тут можно написать все на чистом Kotlin

наследуемся от org.gradle.api.Plugin<*> и... конфигурируем проект под себя

а после в нужном gradle-файле подключаем плагин через

plugins {

'my-custom-plugin'
}

....

другие посты

Теги:
Всего голосов 2: ↑1 и ↓10
Комментарии0