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

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

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

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

Развенчиваем мифы про Chrome OS

Время на прочтение8 мин
Количество просмотров57K

Многие считают, что всё знают о системе Chrome OS, ни разу не пользовавшись ей: «Ну я ж знаю Хром, а тут в ОС только браузер и есть, всё понятно». Но на самом деле даже в словах «только браузер» уже содержится ошибка.

В 2019-м я купил Google Pixelbook (не как основное устройство, а как мобильное дополнение к десктопу). Тогда же проехал с ним по всей России, как следует попользовавшись, и с тех пор на многие стереотипы о Chrome OS смотрю как на устаревшие мифы. И когда позавчера появилась новость «Google создаёт собственный Arm-процессор для хромбуков», в её интернет-обсуждениях снова увидел тот же набор стереотипов. Поэтому решил, что раз уж знаю больше, надо поделиться этим с Хабром.

Читать далее
Всего голосов 51: ↑44 и ↓7+37
Комментарии137

CalyxOS: лучший способ очистить Android от следов Google

Время на прочтение5 мин
Количество просмотров62K

Android Open Source Project — свободный проект. Однако в него очень глубоко проникла корпорация Google. К сожалению, всё больше API и библиотек Android теперь доступны только на смартфонах с предустановленными приложениями Google Apps (GApps). Таким способом Google эффективно привязывает сторонние приложения к своей закрытой экосистеме. В результате ряд популярных опенсорсных приложений уже не могут работать без библиотек Google.

По сути, Android представляет собой особый вид опенсорса типа «смотри, но не трогай», по модели Shared Source. Неудивительно, что набирают силу опенсорсные проекты, которые ставят целью полностью удалить Google из мобильной ОС. Один из последних примеров — прошивка CalyxOS, ориентированная на безопасность и приватность.
Читать дальше →
Всего голосов 59: ↑57 и ↓2+55
Комментарии95

Как за неделю до релиза переобуться и сократить размер билда в 3 раза

Время на прочтение8 мин
Количество просмотров6.3K

Современные AAA-тайтлы уже давно стали весить больше 100 ГБ, а их апдейт еще на 20 ГБ считается обычным делом. Тот же тренд разрастания билда постепенно просачивается в мидкорные и хардкорные мобильные игры. Впрочем, к тому, что уже не удивляет ПК- и консольных юзеров, мобильные геймеры все еще довольно чувствительны.

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

Читать далее
Всего голосов 34: ↑33 и ↓1+32
Комментарии5

Готовимся к Windows 11: добавляем поддержку полноценной клавиатуры в Android-приложение

Время на прочтение4 мин
Количество просмотров9.1K

Многие мобильные приложения уже могут конкурировать с полноценными десктопными вариантами, а иногда и превосходить их. Офисные пакеты, фоторедакторы и IDE вполне неплохо работают на портативных девайсах. Samsung, например, даже сделал специальный режим DeX Mode, который позволяет подключить к смартфону монитор и периферию.

А скорый релиз Windows 11 с возможностью устанавливать любые APK-файлы прямо намекает, что пора озаботиться поддержкой десктопных режимов в своих мобильных приложениях. Один из шагов к этому — добавить полноценную поддержку клавиатуры, чем сегодня и займёмся.

Под катом разберём навигацию по RecyclerView, привязку горячих клавиш к toolbar menu, добавим кастомные сочетания и покажем пользователям, как ими пользоваться.

Читать далее
Всего голосов 54: ↑53 и ↓1+52
Комментарии16

Работа с фоновыми задачами в Android 12: переезжаем с foreground service на expedited jobs

Время на прочтение4 мин
Количество просмотров10K

С релизом Android 12 приложения, где новая версия операционки будет указана в targetSdkVersion, получат запрет на запуск foreground-сервисов в бэкграунде. В качестве альтернативы Google предлагает WorkManager, который с появлением expedited jobs станет предпочтительным вариантом для запуска высокоприоритетных фоновых задач. 

О нём и пойдёт речь в статье — под катом обсудим новые возможности инструмента, подключим его к приложению и реализуем миграцию с foreground-сервиса.

Читать далее
Всего голосов 60: ↑60 и ↓0+60
Комментарии19

Делаем сервер из Android-телефона

Время на прочтение8 мин
Количество просмотров116K

Некоторое время назад мне пришла в голову интересная идея — превратить свои старые телефоны (их скопилось немало за десять лет) в серверы, в качестве альтернативы покупке Raspberry Pi.


image


На то было несколько причин: во-первых, у телефонов есть батарея, что для сервера практически бесплатный мини-UPS, во-вторых, внутренняя память смартфона (UFS) работает быстрее и надёжнее, чем SD-карта. В-третьих, у телефонов имеется экран, по которому можно отслеживать состояние сервера.


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


TL;DR: в этом посте будут разобраны вопросы установки PostmarketOS на смартфон,
поднятия на нём в качестве примера Docker и веб-приложения в нём.

За длинной версией под кат
Всего голосов 130: ↑129 и ↓1+128
Комментарии97

Android окукливается и сообщество потворствует этому

Время на прочтение6 мин
Количество просмотров52K

Disclaimer: Пост пятничный и холиварный. Есть шанс изменить мир к лучшему.

Помните, когда среди оригинальных OS производителей, таких как Symbian или Windows Phone, поднял голову и потянулся к свету Android?

В те времена, и ещё немало последующих лет, происходил невероятный движ. Система была открытой, способной к изменениям, предоставляющей своим пользователям и контрибьюторам пространство для улучшения их смартфонов программными средствами. И мы, миллионы людей, откликнулись на эту возможность, выдав аванс доверия новой системе. Да, андроид работал далеко не идеально, были фундаментальные изъяны безопасности, но у него образовалось сообщество, в котором все помогали всем и это было интересно. Каждый, вне зависимости от уровня технической подкованности, имел возможность разобраться что здесь к чему, как следует поступить, чтобы получить желаемый результат.

К сожалению мы вынуждены констатировать: к 2021 году андроид почти полностью окуклился и растратил всё, что мы в нём любили. Взамен мы получили более красивую графику со сносно работающими предустановленными приложениями и этого оказалось достаточно.

Как же мы это допустили и есть ли возможность исправить ошибку?

Читать далее
Всего голосов 62: ↑55 и ↓7+48
Комментарии301

Пишем свой профайлер для анализа производительности приложения на Android

Время на прочтение6 мин
Количество просмотров3K

По мере развития приложения стоит проводить её аудит для выявления неявных деградаций в производительности. Недавно я проводил аудит раздела комментариев iFunny и написал собственный профайлер. Он не заменит имеющиеся на рынке инструменты Android Profile из Android Studio, Battery Historian и Systrace, но обладает рядом плюсов:

1. Негативное влияние профилировщика на производительность приложения сводится к минимуму.
2. Документация итераций оптимизации работы приложения.
3. Гибкость в сборе метрик.

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

Читать далее
Всего голосов 33: ↑32 и ↓1+31
Комментарии0

Персонализация инвайтов в приложении с использованием AppsFlyer

Время на прочтение5 мин
Количество просмотров1.8K

Все, кто выстраивал взаимодействие пользователя с приложением, знают, какой это непростой процесс. Один из механизмов такого взаимодействия — Deep Linking. От его работы зависят пуши, привлечение пользователей и ретеншн.

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

Читать далее
Всего голосов 27: ↑27 и ↓0+27
Комментарии0

Долгая дорога к быстрым обновлениям Android

Время на прочтение9 мин
Количество просмотров14K

Поскольку это моя первая публикация на Хабр, давайте для начала представлюсь: меня зовут Федор, я из Нижнего Новгорода и работаю в компании Orion Innovation техническим менеджером/СТО. На практике это означает, что я отвечаю за направление Android Platform – написание прошивок для разных устройств под Android. Если вы, вдруг, меня знаете, то, скорее всего, по моим выступлениям на Mobius и других конференциях. А данная статья – это обобщение пары моих докладов, сдобренное разными деталями, ссылками и отступлениями от темы, на которые в рамках доклада обычно не хватает времени. С представлением закончили, дальше статья.

Для создания конфликта в каждом повествовании должен быть свой злодей. В моей истории злодей – Фрагментация Android. Как благородный рыцарь, Google сражается с нашим злодеем в ожесточенной схватке с самого начала существования операционной системы. В этой борьбе были победы и поражения, менялись тактики и приемы, но счастливый финал по-прежнему остается вне досягаемости.

Читать подробнее
Всего голосов 33: ↑31 и ↓2+29
Комментарии61

Обновляемся на новую версию API Android по наставлению Google

Время на прочтение7 мин
Количество просмотров14K

Скоро выходит Android 12, но в этом августе уже с 11-й версии разработчикам придётся использовать новые стандарты доступа приложений к внешним файлам. Если раньше можно было просто поставить флаг, что ваше приложение не поддерживает нововведения, то скоро они станут обязательными для всех. Главный фокус — повышение безопасности.

Переход на новую версию API — довольно трудоёмкая операция, требующая больших затрат на ее поддержку при введении крупных апдейтов. Под катом расскажу немного про наш переход и возникшие при этом трудности. 

Читать далее
Всего голосов 39: ↑39 и ↓0+39
Комментарии16

Создаем приложение для ANDROID быстро и просто

Время на прочтение5 мин
Количество просмотров90K

Сегодня я хотел бы поделиться с Вами, как быстро и просто можно создать приложение для Android с базовыми знаниями HTML CSS и JS. По данному примеру код на Java для Android будет минимальным. Благодаря платформе XAMARIN приложения для мобильных телефонов можно делать в Visual Studio.
Читать дальше →
Всего голосов 53: ↑42 и ↓11+31
Комментарии46

Банки ультимативно лезут к нам в ш̶т̶а̶н̶ы̶ личную жизнь

Время на прочтение5 мин
Количество просмотров132K

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

Банковские приложения и сами банки ведут себя очень наглым образом. Уже при установке они запрашивают права доступа, которые им необязательны или совсем не нужны для работы. Например, приложение Сбербанка сразу требует доступ к звонкам и фоткам. Я категорически против. Отказываю. А приложение не хочет работать при таком раскладе.

Читать далее
Всего голосов 209: ↑198 и ↓11+187
Комментарии428

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

Йога глазами дата-сайентиста: как мы строили computer vision в мобильном приложении

Время на прочтение10 мин
Количество просмотров13K

Привет! Я Денис Соколов, руковожу R&D в Zenia Yoga — первом приложении для йоги на основе ИИ. В этой статье я расскажу, из чего состоит современная система, работающая с компьютерным зрением: как влияет каждый элемент пайплайна на конечный результат, который видит пользователь. Мы пошагово разберем создание модели для human pose estimation и сравним ее с готовыми «коробочными» решениями от производителей мобильных платформ, а также открытыми аналогами.

Читать далее
Всего голосов 38: ↑38 и ↓0+38
Комментарии27

Давайте будем прямыми в своих intent

Время на прочтение5 мин
Количество просмотров4.8K

В Android 12 появится важное изменение, улучшающее безопасность платформы целиком и всех приложений, предназначенных для работы с этой версией ОС. Активити, сервисы и бродкаст ресиверы (broadcast receivers), в которых указаны интент-фильтры (intent-filters), должны явно обозначать, будут ли они доступны для других приложений или компонентов системы.

Под катом — перевод статьи про проблемы и решения, которые могут возникнуть при переходе на новую версию.

Читать далее
Всего голосов 32: ↑32 и ↓0+32
Комментарии2

Применение SQLiteOpenHelper и Database Inspector в Android-разработке

Время на прочтение6 мин
Количество просмотров13K
Автор статьи, перевод которой мы публикуем сегодня, хочет рассказать об использовании баз данных SQLite в Android-разработке. В частности — он коснётся тут двух вопросов. Во-первых — речь пойдёт о классе SQLiteOpenHelper, который применяется для работы с базами данных в коде приложений. Во-вторых — он уделит определённое внимание инструменту Database Inspector, инспектору баз данных, встроенному в Android Studio.


Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии5

Rust включили в список основных языков для разработки платформы Android

Время на прочтение3 мин
Количество просмотров14K

На днях компания Google сделала важный шаг, объявив о включении языка программирования Rust в число языков, которые допускаются для разработки платформы Android. Да, еще в 2019 году компилятор Rust включили в дерево исходных текстов Android, но это была экспериментальная поддержка.

Сейчас в Android планируется добавить первые компоненты на Rust, это будут новые реализации механизма межпроцессного взаимодействия Binder и Bluetooth-стека. Все это хорошо, но зачем весь этот сыр-бор с включением Rust?
Читать дальше →
Всего голосов 61: ↑61 и ↓0+61
Комментарии19

Доказательное программирование

Время на прочтение16 мин
Количество просмотров18K

Внимание!


  • Содержание данной статьи никак не связано с докладом академика А. П. Ершова "Научные основы доказательного программирования" 1984г.
  • Статья содержит утверждения, способные вызвать вспышки гнева и неконтролируемой агрессии. За последствия автор статьи ответственности не несет!
  • В тексте упоминаются следующие языки программирования: Java, Swift, Kotlin, Scala, Go, Haskell и др.
  • Эта статья — антитезис. Автор ставит вопросы, но не считает своим долгом на все из них дать ответы.

В момент своего появления в Европе доказательная медицина казалась скандальной, неприятной и отвергаемой почти всем медицинским сообществом идеей. Даже в США, которые сейчас являются оплотом доказательной медицины, долгое время не хотели ее принимать. Основная мысль — докажи, что то, что ты собираешься сделать, реально поможет. Сейчас большинство назначений доктора делают исходя из приобретенных знаний и опыта. Но что если для некоторых ситуаций можно создать такой протокол лечения, следуя которому с болезнью сможет справиться даже неспециалист, и будет доказано, что этот протокол работает? Можно ли покрыть такими протоколами все известные недуги? Все, конечно же, нет, но какие-то — определенно, да.


И вот тут невольно возникает вопрос: не обошла ли медицина другую, казалось бы, не менее прогрессивную индустрию разработки программного обеспечения?

Читать дальше →
Всего голосов 94: ↑62 и ↓32+30
Комментарии158

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

Время на прочтение13 мин
Количество просмотров35K

Главная сложность в разработке приложения – накодить его функционал. Например, сделать редактирование текста для приложения-блокнота. Так я полагал, когда был моложе и наивнее.

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

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

Читать далее
Всего голосов 58: ↑57 и ↓1+56
Комментарии20

Массовый сбой на Android (23.03.2021)

Время на прочтение1 мин
Количество просмотров72K

23.03.2021 Произошел массовый сбой на Android, связанный с WebView.

TLDR: Надо удалить (сбросить к заводской версии) Andoird System WebView

UPDATE: Google уже выпустил обновление с исправлением WebView, рекомендуется обновить его из Play Store, а не возвращаться к заводской версии, т.к. в ней могут быть уязвимости.

Читать далее
Всего голосов 31: ↑29 и ↓2+27
Комментарии38